-
در خواست یک کد
می خواستم بدونم چطوری می شه فهمید که کاربر در حال حاظر مشغول استفاده از چه نرم افزاری هستش
مثلا در کیلاگر ها نوشته میشه که این کلید های فشرده شده مربوط به نرم افزار notepad.exe هستش
این هم یه مثال :
[Sign In] - "C:\Program Files\Yahoo!\Messenger\YPager.exe" - 1:00:17 AM 1/21/2000
mn[Right Shift]_jinjoonjan[Right Shift]_[Num 6][Num 8][Num 1][Num 2][Num 3][Num 4][Num 5][Num 6][Enter]
-
خوب
این کلیدهای زده شده را در جای ذخیره می کنه!
شاید در یک فایل txt و ...
-
توی فرم یک Timer بگذار :
کد:
Option Explicit
Private Const MAX_PATH = 260
Private Const TH32CS_SNAPMODULE = &H8
Private Type MODULEENTRY32
dwSize As Long
th32ModuleID As Long
th32ProcessID As Long
GlblcntUsage As Long
ProccntUsage As Long
modBaseAddr As Long
modBaseSize As Long
hModule As Long
szModule As String * 256
szExePath As String * 260
End Type
Private Declare Function Module32First Lib "kernel32" (ByVal hSnapshot As Long, uProcess As MODULEENTRY32) As Long
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Function GetFilePathFromPID(ByVal pID As Long) As String
Dim hSnap As Long, Module As MODULEENTRY32
Dim appPath As String
hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pID)
Module.dwSize = Len(Module)
Call Module32First(hSnap, Module)
appPath = Left(Module.szExePath, InStr(1, Module.szExePath, Chr(0)) - 1)
CloseHandle hSnap
GetFilePathFromPID = appPath
End Function
Private Sub Form_Load()
Me.AutoRedraw = True
Timer1.Interval = 100
End Sub
Private Sub Timer1_Timer()
Dim hForegroundWindow As Long
Dim pID As Long
hForegroundWindow = GetForegroundWindow()
Call GetWindowThreadProcessId(hForegroundWindow, pID)
Cls
Print GetFilePathFromPID(pID)
End Sub
با گرفتن هندل پنجره ی فعال و بعد از اون گرفتن Process ID مربوط به اون هندل و بعد با تابعی که نوشتم آدرس فایل مربوط به اون هندل یعنی آدرس برنامه ای که فعال هست روی فرم چاپ میشه.