Guten Tag,
mein Ziel ist etwas komisch. Ich möchte Wacraft III im Fenster-Modues spielen, um ab und an auch noch etwas chatten zu können. Außerdem fummel ich gern rum und es macht mir Spaß sowas umzusetzten, deshalb folgende Fragen:
1. Ich habe es geschafft, dass der Cursor nach dem klick auf meinen Button nur noch im Wacraft III Fenster bewegt werden kann. (Siehe Code) Allerdings geht das nur solange, solange ich NIRGENDS auf meinem Desktop hinklicke, nach dem ersten klick, egal wo hin ist die Wirkung aufgehoben. Warum?
Delphi-Quellcode:
procedure Mousefreeze (wHandle : HWND);
var Rect : TRect;
begin
GetWindowRect(wHandle, Rect);
ClipCursor(@Rect);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
h: hwnd;
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.','
');
h := FindWindowByTitle(Result);
if h <> 0
then // if we found the Window-Handle
begin
ShowMessage('
Window-Handle found');
// ShowWindow(h, SW_Maximize);
Mousefreeze(h);
end
else
ShowMessage('
not found.');
end;
2. Leider kann man mit dieser Methode zwar nicht außerhalb des Fenstes mit der Maus agieren, aber die Windows-Balken wie zB Maximieren und Minimieren sind weiterhin erreichbar. Wie schaffe ich es, dass die Maus wirklich im Fenster und nicht nur "auf dem Fenster" bleibt? Das quasi nur der Inhalt, aber nicht das eigentliche Fenster erreibar ist?
MFG