friendchp
یک شنبه 15 خرداد 1390, 03:03 صبح
سلام دوستان عزیز...
من یه برنامه دارم مینویسم که یه ورودی دریافت کنه از کیبرد..سپس اونو دوباره انجام بده..یعنی یه ورودی دوباره انجام داده بشه.یا به عبارتی انگار دوبار فشار دادع شدع کلید ورودی
یه چیزایی از اینور و انور خوندم...تا اینجا که متوجه شدم باید از شیوه ی هوک کردن تمامی ورودی ها زمانی که فوکس حتی روی برنامه ما نیست ..استفاده کنم..و برای اینکه برنامه من چیزی رو نشون نده ..یعنی به صورت یه dllکه از خود استارت آپ اجرا بشه....
فعلا یه dllنوشتم..که اینجا قرار میدم ...دوستان لطف کنید راهنمایی کنید که کدم برای dllچی کم داره یا کجاش دارای مشکل هست...و راهنمایی کنید که چطوری پیش برم...ممنون پیشاپیش:
.486
option casemap :none
include \masm32\include\masm32rt.inc
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
.DATA?
HookHandle DWORD ?
FHandle DWORD ?
BytesWritten DWORD ?
Inst DWORD ?
szCurApp BYTE 300 dup (?)
szCurAppNm BYTE 300 dup (?)
szFBuf BYTE 350 dup (?)
.CODE
KeyboardHookProc PROC nCode:DWORD, wParam:WPARAM, lParam:LPARAM
;..........
.IF (nCode == HC_ACTION) && (wParam != 0)
mov eax, lParam
shr eax, 16
mov FHandle, eax
invoke GetModuleHandle, NULL
cmp eax, 0
invoke CloseHandle, FHandle
.ENDIF
.ENDIF
;..........
invoke CallNextHookEx, HookHandle, nCode, wParam, lParam
ret
KeyboardHookProc ENDP
;......nasbe.hook....
Hookingproc proc
invoke SetWindowsHookEx, WH_KEYBOARD, addr KeyboardHookProc, Inst, NULL
mov HookHandle, eax
ret
Hookingproc Endp
;....hooklib.dll....
hooklib PROC hInstance:HINSTANCE, Reason:DWORD, Reserve:DWORD
mov eax, hInstance
mov Inst, eax
mov eax, TRUE
ret
hooklib ENDP
END hooklib
من یه برنامه دارم مینویسم که یه ورودی دریافت کنه از کیبرد..سپس اونو دوباره انجام بده..یعنی یه ورودی دوباره انجام داده بشه.یا به عبارتی انگار دوبار فشار دادع شدع کلید ورودی
یه چیزایی از اینور و انور خوندم...تا اینجا که متوجه شدم باید از شیوه ی هوک کردن تمامی ورودی ها زمانی که فوکس حتی روی برنامه ما نیست ..استفاده کنم..و برای اینکه برنامه من چیزی رو نشون نده ..یعنی به صورت یه dllکه از خود استارت آپ اجرا بشه....
فعلا یه dllنوشتم..که اینجا قرار میدم ...دوستان لطف کنید راهنمایی کنید که کدم برای dllچی کم داره یا کجاش دارای مشکل هست...و راهنمایی کنید که چطوری پیش برم...ممنون پیشاپیش:
.486
option casemap :none
include \masm32\include\masm32rt.inc
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
.DATA?
HookHandle DWORD ?
FHandle DWORD ?
BytesWritten DWORD ?
Inst DWORD ?
szCurApp BYTE 300 dup (?)
szCurAppNm BYTE 300 dup (?)
szFBuf BYTE 350 dup (?)
.CODE
KeyboardHookProc PROC nCode:DWORD, wParam:WPARAM, lParam:LPARAM
;..........
.IF (nCode == HC_ACTION) && (wParam != 0)
mov eax, lParam
shr eax, 16
mov FHandle, eax
invoke GetModuleHandle, NULL
cmp eax, 0
invoke CloseHandle, FHandle
.ENDIF
.ENDIF
;..........
invoke CallNextHookEx, HookHandle, nCode, wParam, lParam
ret
KeyboardHookProc ENDP
;......nasbe.hook....
Hookingproc proc
invoke SetWindowsHookEx, WH_KEYBOARD, addr KeyboardHookProc, Inst, NULL
mov HookHandle, eax
ret
Hookingproc Endp
;....hooklib.dll....
hooklib PROC hInstance:HINSTANCE, Reason:DWORD, Reserve:DWORD
mov eax, hInstance
mov Inst, eax
mov eax, TRUE
ret
hooklib ENDP
END hooklib