ich habe es jetzt per timer gelöst. Intervall alle 0,1 sekunde. Ist zwar nicht die beste Lösung, funktioniert aber.
Delphi-Quellcode:
procedure Mousefreeze (wHandle : HWND);
var Rect : TRect;
begin
GetWindowRect(wHandle, Rect);
//Die Werte dann eventuell etwas anpassen
Rect.Left:=Rect.Left+10;
Rect.Right:=Rect.Right-20;
Rect.Top:=Rect.Top+30;
Rect.Bottom:=Rect.Bottom-10;
ClipCursor(@Rect);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Result :
string;
Rect : TRect;
begin
Result := inputbox('
Handle finden', '
Geben Sie bitte den Namen des Fensters '
+ '
ein, von dem das Window-Handle ermittelt werden soll.','
');
wHandle := FindWindowByTitle(Result);
if wHandle <> 0
then // if we found the Window-Handle
begin
ShowMessage('
Window-Handle found');
// ShowWindow(h, SW_Maximize);
Mousefreeze(wHandle);
Timer1.Enabled := true;
end
else
ShowMessage('
not found.');
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Mousefreeze(wHandle);
end;
Hat jemand noch ne Verbesserungsmöglichkeit (außer Hook)?