نمایش نتایج 1 تا 5 از 5

نام تاپیک: کتابخانه vb6

  1. #1
    کاربر دائمی آواتار aleas2
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    بم
    پست
    903

    کتابخانه vb6

    سلام خسته نباشید دوستان از این سه تا api میخوام استفاده کنم

    Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

    Public Declare Function GetProcessImageFileName Lib "psapi.dll" Alias "GetProcessImageFileNameA" _
    (ByVal hProcess As Long, _
    ByVal lpImageFileName As String, _
    ByVal nSize As Long) As Long

    Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long


    هر چی میگردم kernel32 و psapi نمی بینم تو منو project>References
    با چه نامی هستن؟
    آخرین ویرایش به وسیله aleas2 : چهارشنبه 21 بهمن 1394 در 13:43 عصر

  2. #2
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    MsgBox barnamenevis.org
    پست
    540

    نقل قول: کتابخانه vb6

    سلام

    این ها توابع API هستند و فقط قابلیت فراخوانی دارند و به کتابخانه یا رفرنس نیاز ندارند...

    بعنی نمیشه به صورت:
    Dim As New
    تعریف بشن...

  3. #3
    کاربر دائمی آواتار aleas2
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    بم
    پست
    903

    نقل قول: کتابخانه vb6

    من این کد تو نت پیدا کردم
    Public Declare Function OpenProcess Lib "kernel32" ( _
    ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
    ByVal dwProcessId As Long) As Long

    Public Declare Function GetProcessImageFileName Lib "psapi.dll" Alias "GetProcessImageFileNameA" _
    (ByVal hProcess As Long, _
    ByVal lpImageFileName As String, _
    ByVal nSize As Long) As Long

    Public Declare Function CloseHandle Lib "kernel32" ( _
    ByVal hObject As Long) As Long

    Private Function ExePathFromProcID(idProc As Long) As String
    Const MAX_PATH = 260
    Const PROCESS_QUERY_INFORMATION = &H400
    Const PROCESS_VM_READ = &H10

    Dim sBuf As String
    Dim sChar As Long, l As Long, hProcess As Long
    sBuf = String$(MAX_PATH, Chr$(0))
    hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, idProc)
    If hProcess Then
    sChar = GetProcessImageFileName(hProcess, sBuf, MAX_PATH)
    If sChar Then
    sBuf = Left$(sBuf, sChar)
    ExePathFromProcID = sBuf
    Debug.Print sBuf
    End If
    CloseHandle hProcess
    End If
    End Function


    که آدرس پروسه بهم میده وقتی اجرا میکنه به api ها خطا میده اجرا نمیشه مشکل چیه ؟
    a.jpg
    دنبال یه راه حل هستم که دستگیر یا همون هندل بهش بدم
    نام فایل اجرایی مثلا barname.exe
    و ادرس محل اجرا
    c:/new/barname.exe
    بهم بده

  4. #4

    نقل قول: کتابخانه vb6

    با سلام
    باید اونها رو فراخونی کنید مثلابرای کار با فایل ها (اگر مقلا کرنل نیاز شد)به صورت زیر میشه :
    Private Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, ByVal lpOverlapped As Long) As Long
    Private Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal lpOverlapped As Any) As Long
    Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long
    Private Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
    Private Declare Function FlushFileBuffers Lib "kernel32" (ByVal hFile As Long) As Long

  5. #5

    نقل قول: کتابخانه vb6

    نقل قول نوشته شده توسط aleas2 مشاهده تاپیک
    من این کد تو نت پیدا کردم
    Public Declare Function OpenProcess Lib "kernel32" ( _
    ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
    ByVal dwProcessId As Long) As Long

    Public Declare Function GetProcessImageFileName Lib "psapi.dll" Alias "GetProcessImageFileNameA" _
    (ByVal hProcess As Long, _
    ByVal lpImageFileName As String, _
    ByVal nSize As Long) As Long

    Public Declare Function CloseHandle Lib "kernel32" ( _
    ByVal hObject As Long) As Long

    Private Function ExePathFromProcID(idProc As Long) As String
    Const MAX_PATH = 260
    Const PROCESS_QUERY_INFORMATION = &H400
    Const PROCESS_VM_READ = &H10

    Dim sBuf As String
    Dim sChar As Long, l As Long, hProcess As Long
    sBuf = String$(MAX_PATH, Chr$(0))
    hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, idProc)
    If hProcess Then
    sChar = GetProcessImageFileName(hProcess, sBuf, MAX_PATH)
    If sChar Then
    sBuf = Left$(sBuf, sChar)
    ExePathFromProcID = sBuf
    Debug.Print sBuf
    End If
    CloseHandle hProcess
    End If
    End Function


    که آدرس پروسه بهم میده وقتی اجرا میکنه به api ها خطا میده اجرا نمیشه مشکل چیه ؟
    a.jpg
    دنبال یه راه حل هستم که دستگیر یا همون هندل بهش بدم
    نام فایل اجرایی مثلا barname.exe
    و ادرس محل اجرا
    c:/new/barname.exe
    بهم بده

    سلام
    کد رو به این صورت استقاده کنید

    Private Declare Function OpenProcess Lib "kernel32.dll" ( _
    ByVal dwDesiredAccess As Long, _
    ByVal bInheritHandle As Long, _
    ByVal dwProcessId As Long) As Long


    Private Declare Function GetProcessImageFileName _
    Lib "psapi.dll" _
    Alias "GetProcessImageFileNameA" (ByVal hProcess As Long, _
    ByVal lpImageFileName As String, _
    ByVal nSize As Long) As Long

    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

    Private Function ExePathFromProcID(idProc As Long) As String

    Const MAX_PATH = 260

    Const PROCESS_QUERY_INFORMATION = &H400

    Const PROCESS_VM_READ = &H10

    Dim sBuf As String

    Dim sChar As Long, l As Long, hProcess As Long

    sBuf = String$(MAX_PATH, Chr$(0))
    hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, idProc)

    If hProcess Then
    sChar = GetProcessImageFileName(hProcess, sBuf, MAX_PATH)

    If sChar Then
    sBuf = Left$(sBuf, sChar)
    ExePathFromProcID = sBuf
    Debug.Print sBuf

    End If

    CloseHandle hProcess

    End If

    End Function

    Private Sub Form_Load()
    ExePathFromProcID (3356)
    End Sub


    ولی مشکلی که داره اینه که آدرس رو به صورت زیر بر می گردونه
    \Device\HarddiskVolume1\Windows\explorer.exe
    برای حل این مشکل
    از برنامه پیوست استفاده کنید
    سوالی بود بپرسید
    موفق باشید
    فایل های ضمیمه فایل های ضمیمه

تاپیک های مشابه

  1. مشکل ADO در vb6
    نوشته شده توسط arminela در بخش VB.NET
    پاسخ: 1
    آخرین پست: شنبه 29 شهریور 1382, 07:57 صبح
  2. سوال در باره vb.net , Vb6.0
    نوشته شده توسط sh در بخش VB.NET
    پاسخ: 8
    آخرین پست: دوشنبه 27 مرداد 1382, 16:09 عصر
  3. مشکل فارسی نویسی با wiundowsXP و VB6
    نوشته شده توسط arsafari در بخش VB.NET
    پاسخ: 0
    آخرین پست: چهارشنبه 15 مرداد 1382, 07:28 صبح
  4. تفاوت vb6 و vb.net
    نوشته شده توسط morteza_dehghan در بخش VB.NET
    پاسخ: 9
    آخرین پست: دوشنبه 23 تیر 1382, 15:52 عصر
  5. ساختن object های vb6 به تعداد دلخواه
    نوشته شده توسط jannati در بخش برنامه نویسی در 6 VB
    پاسخ: 6
    آخرین پست: دوشنبه 23 تیر 1382, 15:46 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •