Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#16

Re: Maus beschränken

  Alt 28. Feb 2007, 08:36
Was die Monitore angeht, da kann ich nicht helfen ... hab ja nur einen Monitor ;(

Allerdings ist dieses ja schon 'ne neue Frage ... also in 'nem eigenem/neuen Thread nochmals nachfragen ... falls die Suche nicht schon irgendwo was dazu ausspuckt ^^


Ich denk mal mit Screen.MonitorFromWindow(Form1) sollte es gehn.
Man könnte ja auch mal prüfen welchen Monitor man direkt über Screen (nicht Screen.Monitors) bekommt?

Bei 2 Monitoren könnte es vermutlich aber auch schon ausreichen, wenn du den (sekundären) Monitor suchst.

If not Screen.Monitors[...].Primary Then ... Der "normale" Monitort wird ja bestimmt als Primärer eingerichtet sein.


@Luckie:

Hmm, ich hätt jetzt zwar gedacht, daß es da auch so ist, da sich ja anscheinend Windows um das Freigeben kümmert ... schließlich wird doch nichts für's Freigeben im Programm registriert, aber


Erstmal zu SirThornberry's "Strg + Alt + Entf"-Thease:
anscheinend kommt es wohl nicht (unbedingt) auf's Drücken von "Strg + Alt + Entf" an, sondern der WindowsTaskManager gibt den Bereich immer frei, wenn er den Eingabefokus bekommt.

Daher kann man das mit diesem TaskManager nicht versuchen.


Also ein Versuch mit'm Process Explorer, welcher nicht von sich aus den Bereich freigibt.
Und da war es genauso, sobald der Versuchsprozess abgeschoßen wurde war auch der Mauszeiger wieder frei.


In der Konsole scheint es genauso, nur daß dort auch so schon recht schnell der Bereich wieder freigegeben wird ... z.B. auch dann wenn die Konsole "nur" den Eingabefokus zurückbekommt.


Auf WinXP getestet.


QuellCode zu den Anhängen:
Delphi-Quellcode:
// Project1

Procedure TForm1.Button1Click(Sender: TObject); // einsperren
  Var Maus: TRect;

  Begin
    Maus.Left := Left;
    Maus.Top := Top;
    Maus.Right := Left + Width;
    Maus.Bottom := Top + Height;
    ClipCursor(@Maus);
  End;

Procedure TForm1.Button2Click(Sender: TObject); // freigeben
  Begin
    ClipCursor(nil);
  End;
Delphi-Quellcode:
Program Project2;

{$APPTYPE CONSOLE}

Uses Windows;

Var Maus: TRect;

Begin
  Maus.Left := 100;
  Maus.Top := 100;
  Maus.Right := 500;
  Maus.Bottom := 400;
  ClipCursor(@Maus);
  ReadLn;
  WriteLn('end');
End.
Angehängte Dateien
Dateityp: exe project2_678.exe (9,5 KB, 3x aufgerufen)
Dateityp: exe project1_197.exe (150,5 KB, 3x aufgerufen)
$2B or not $2B
  Mit Zitat antworten Zitat