var
Form1: TForm1;
hHook:dword;
lpPrevWndProc:FARPROC;
implementation{$R *.dfm}function InstallHook(hwnd:HWND): dword; external 'HookDll.dll';
function GetPsw: dword; external 'HookDll.dll';
procedure UninstallHook ; external 'HookDll.dll';
procedure unhook ;
begin
UninstallHook ;
SetWindowLong(form1.Handle ,GWL_WNDPROC, longint(lpPrevWndProc)) ;
end;function MyProc(Hwnd:HWND;iCode:UINT;wParam:WPARAM;lParam:LPARAM):integer; //stdcall;
begin
Result := 0 ;
if hHook=0 then
begin
hHook:= InstallHook(Hwnd);
end
else if icode=$406 then
begin
SendMessage ( form1.edit1.handle , WM_SETTEXT, 255, GetPsw) ;
exit ;
end
else if icode =$10 then
unhook;
result:=CallWindowProc(lpPrevWndProc,Hwnd,iCode,wParam,lParam);
end;procedure TForm1.FormCreate(Sender: TObject);
VAR
rect:TRECT ;
begin
GetWindowRect(form1.Handle ,rect) ;
SetWindowPos(form1.Handle ,HWND_TOPMOST,rect.Left ,rect.Top ,0 ,0,SWP_SHOWWINDOW +SWP_NOSIZE) ;
lpPrevWndProc:= FARPROC(SetWindowLong(form1.Handle ,GWL_WNDPROC,longint(@MyProc))) ;
end;
end.
那个DLL里是获得窗体标题的几个函数~~~~用SetWindowLong过后在自己的消息处理那里老是出错~~~~不知道那里有问题~~~高手请指教!~谢谢~~~
Form1: TForm1;
hHook:dword;
lpPrevWndProc:FARPROC;
implementation{$R *.dfm}function InstallHook(hwnd:HWND): dword; external 'HookDll.dll';
function GetPsw: dword; external 'HookDll.dll';
procedure UninstallHook ; external 'HookDll.dll';
procedure unhook ;
begin
UninstallHook ;
SetWindowLong(form1.Handle ,GWL_WNDPROC, longint(lpPrevWndProc)) ;
end;function MyProc(Hwnd:HWND;iCode:UINT;wParam:WPARAM;lParam:LPARAM):integer; //stdcall;
begin
Result := 0 ;
if hHook=0 then
begin
hHook:= InstallHook(Hwnd);
end
else if icode=$406 then
begin
SendMessage ( form1.edit1.handle , WM_SETTEXT, 255, GetPsw) ;
exit ;
end
else if icode =$10 then
unhook;
result:=CallWindowProc(lpPrevWndProc,Hwnd,iCode,wParam,lParam);
end;procedure TForm1.FormCreate(Sender: TObject);
VAR
rect:TRECT ;
begin
GetWindowRect(form1.Handle ,rect) ;
SetWindowPos(form1.Handle ,HWND_TOPMOST,rect.Left ,rect.Top ,0 ,0,SWP_SHOWWINDOW +SWP_NOSIZE) ;
lpPrevWndProc:= FARPROC(SetWindowLong(form1.Handle ,GWL_WNDPROC,longint(@MyProc))) ;
end;
end.
那个DLL里是获得窗体标题的几个函数~~~~用SetWindowLong过后在自己的消息处理那里老是出错~~~~不知道那里有问题~~~高手请指教!~谢谢~~~
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货