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过后在自己的消息处理那里老是出错~~~~不知道那里有问题~~~高手请指教!~谢谢~~~