Thema: Delphi Maus in Fenster halten

Einzelnen Beitrag anzeigen

MaToBe

Registriert seit: 2. Aug 2008
162 Beiträge
 
#1

Maus in Fenster halten

  Alt 15. Nov 2009, 13:06
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
  Mit Zitat antworten Zitat