关于窗体消息拦截的问题~~

000008 2004-05-03 11:44:08
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过后在自己的消息处理那里老是出错~~~~不知道那里有问题~~~高手请指教!~谢谢~~~
...全文
48 2 点赞 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
000008 2004-05-04
~~~~CSDN的牛哥都不屑回答这种小问题~~~~无语~~~~~潜水员又多一个了~~~~
  • 打赏
  • 举报
回复
000008 2004-05-03
自己顶起来~~~!~~~~郁闷~~~
  • 打赏
  • 举报
回复
相关推荐
发帖
Delphi
加入

4967

社区成员

Delphi 开发及应用
申请成为版主
帖子事件
创建了帖子
2004-05-03 11:44
社区公告
暂无公告