function HookOn(lpHwnd:HWND;lpType:Longint):Longint;stdcall;export;
begin
mhwnd:=lpHwnd;
if hHk<>0 then UnHookWindowsHookEx(hHk);
hThread:=GetWindowThreadProcessId(mhwnd,hmod);
hHk:=SetWindowsHookEx(lpType,@HookProc,hInstance,hThread);
Result:=hHk ;
end;function HookProc(nCode:integer;WParam:WPARAM;LParam:LPARAM):LRESULT;stdcall;
begin
Result:=0;
if nCode<0 then
begin
CallNextHookEx(hHk,nCode,WParam,LParam);
Result:= 0;
end
else
begin
GetKeyboardState(kbArray); if (bShow=False) And (kbArray[mykey]=1) then //myKey=VK_F7;
begin
bShow:=True;
Form1:=TForm1.Create(Application);
ShowCursor(True);
try
Form1.Caption:='my dll windows';
SetWindowPos(Form1.Handle ,HWND_TOPMOST,0,0,0,0,SWp_NOMOVE Or SWP_NOSIZE);
Result:=1;
SuspendThread(hThread);
Form1.ShowModal ;
ShowCursor(True);
ResumeThread (hThread);
kbArray[mykey]:=0;
SetKeyboardState(kbArray); finally
Form1.Free;
end;
end
else
begin
Result:=CallNextHookEx(hHk,nCode,WParam,LParam);
end;
end;
end;这是我的DLL代码。注入成功了,但是注入之后目标程序无法接收键盘/鼠标消息了,哪里出了问题啊?
begin
mhwnd:=lpHwnd;
if hHk<>0 then UnHookWindowsHookEx(hHk);
hThread:=GetWindowThreadProcessId(mhwnd,hmod);
hHk:=SetWindowsHookEx(lpType,@HookProc,hInstance,hThread);
Result:=hHk ;
end;function HookProc(nCode:integer;WParam:WPARAM;LParam:LPARAM):LRESULT;stdcall;
begin
Result:=0;
if nCode<0 then
begin
CallNextHookEx(hHk,nCode,WParam,LParam);
Result:= 0;
end
else
begin
GetKeyboardState(kbArray); if (bShow=False) And (kbArray[mykey]=1) then //myKey=VK_F7;
begin
bShow:=True;
Form1:=TForm1.Create(Application);
ShowCursor(True);
try
Form1.Caption:='my dll windows';
SetWindowPos(Form1.Handle ,HWND_TOPMOST,0,0,0,0,SWp_NOMOVE Or SWP_NOSIZE);
Result:=1;
SuspendThread(hThread);
Form1.ShowModal ;
ShowCursor(True);
ResumeThread (hThread);
kbArray[mykey]:=0;
SetKeyboardState(kbArray); finally
Form1.Free;
end;
end
else
begin
Result:=CallNextHookEx(hHk,nCode,WParam,LParam);
end;
end;
end;这是我的DLL代码。注入成功了,但是注入之后目标程序无法接收键盘/鼠标消息了,哪里出了问题啊?
解决方案 »
- 关于删除TStringList中的重复项目
- TBitmap加载PNG然后画到其他画布上的透明问题
- 新手,请教各位大虾有关于THTML的问题
- 关于delphi连接domino的问题。
- 动态二维数组问题(回者均有分)
- delphi 怎么调用C#编写好的WEBSERVICES??????????
- 点击某树节点后让该节点以及子节点隐藏起来?千万别告诉我把该节点delete掉!再线等,揭贴!~~
- 网络传输问题(Serversocket/ClientSocket)
- delphi的unit的字体能否更改?
- 我的困惑我给分...
- 关于TListView多选
- paradox 中有一字段名为'index',在QUERY中如何调用
----------
停在这一句?