| Autor | Beitrag | 
| Nilsener 
          Beiträge: 26
 
 
 D4
 
 | 
Verfasst: Do 30.10.03 21:34 
 
Hallo,
 ich möchte in meinem Prog gerne die Maus deaktivieren und nachdem das Prog einige Aktivitäten ausgeführt hat die Maus wieder aktivieren.
 Ist sowas möglich ?
 
 Danke für Eure Hilfe, Gruss Nils
 | 
|  | 
| Luckie Ehemaliges Mitglied
 Erhaltene Danke: 1
 
 
 
 
 | 
Verfasst: Do 30.10.03 22:15 
 
Äh, kurze Frage: Warum?
 Du kannst deine Maus in einem Rechteck einfangen. API Funktion habe ich wieder vergessen, da ich sie nie brauche und auch keinen Sinn darin sehe.
 
 Wenn der Bneutzer wärend dein Programm was macht, nichts anklicken soll, weil sonst alles durcheinander gerät, dann deaktiviere die entsprechenden Controls und Menüpunkte.
 | 
|  | 
| Maggi 
          Beiträge: 160
 
 WIN XP, WIN 2003
 D5 Enter D 2006
 
 | 
Verfasst: Fr 31.10.03 08:56 
 
Hi,
 ich denke auch das soetwas keinen Sinn macht, da hat der Luckie schon recht.... Bill Gates verbiegen ist schwierig!     Aber solange dein Prog diese Aktionen durchführt kannst du die gewünschten Controls (Buttons,Edits, u.s.w.) doch Disablen!
 Gruß
 Maggi_________________ "Wir haben den Kontakt zur Realität verloren, aber die findet uns schon wieder"
 | 
|  | 
| matze 
          Beiträge: 4613
 Erhaltene Danke: 24
 
 XP home, prof
 Delphi 2009 Prof,
 
 | 
Verfasst: Fr 31.10.03 10:16 
 
die funktion geht so:
 Maus einfangen:
 		                       Delphi-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 
 | varRec: TRect;
 begin
 Rec.Left := Left;
 Rec.Top := Top;
 Rec.Right := Left + Width;
 Rec.Bottom := Top + Height;
 ClipCursor(@Rec);
 end;
 |  Um den alten Mausbereich wiederherzustellen:
 		                       Delphi-Quelltext 
_________________ In the beginning was the word. 
 And the word was content-type: text/plain.
 | 
|  | 
| Nilsener  
          Beiträge: 26
 
 
 D4
 
 | 
Verfasst: Di 04.11.03 22:04 
 
Hallo Leute,
 vielen Dank für Eure Tipps, wollte schon viel eher Antworten aber die Zeit gab es nicht her. Ich möchte die Maus deaktivieren um dann eine Mausbewegung zu simulieren, ohne dass der Benutzer die simulierte Bewegung mit der Maus stören kann. Mein Prog klickt automatisch in ein anderes Prog, sobald man die Maus dabei bewegt geht das natürlich schief.
 		                       Delphi-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 
 |   Maus Deaktivieren
 setcursorpos(x1, y1);
 mouse_event(MOUSEEVENTF_leftUP,x1,y1,0,0);
 Maus Aktivieren
 |  Gruss Nils
Moderiert von  Tino: Code- durch Delphi-Tags ersetzt. | 
|  | 
| BungeeBug 
          Beiträge: 901
 
 
 
 
 | 
Verfasst: Di 04.11.03 22:46 
 
Hi,
 ich meine ne "bessere" Idee zuhaben ... ich weis aber nich ob es sinnvoll ist hier zu posten ... ich machs einfach und wenns nicht passt bitte sofort löschen
 		                       Delphi-Quelltext 
 									| 1:
 | ShellExecute(handle,'open',PChar('rundll32.exe'),PChar('Mouse,Disable'),SW_ShowNormal);					 |  | 
|  | 
| matze 
          Beiträge: 4613
 Erhaltene Danke: 24
 
 XP home, prof
 Delphi 2009 Prof,
 
 | 
Verfasst: Mi 05.11.03 18:41 
 
mach einfach folgendes:
 deklarier folgende funktion  		                       Delphi-Quelltext 
 									| 1:2:
 
 | Function BlockInput(fBlock: boolean): boolean; stdcall;external 'user32.dll'
 |  bevor du den mausklick machst führst du dann BlockInput(true);  us und danach das selbe aber mit false  !!!_________________ In the beginning was the word. 
 And the word was content-type: text/plain.
 | 
|  | 
| Nilsener  
          Beiträge: 26
 
 
 D4
 
 | 
Verfasst: Do 06.11.03 20:23 
 
Hallo Bungee,
 ich hab deinen Vorschlag ausprobiert
 		                       Quelltext 
 									| 1:
 | ShellExecute(handle,'open',PChar('rundll32.exe'),PChar('Mouse,Disable'),SW_ShowNormal);					 |  mein prog sagt: undeclared identifier:'shellexecute'
 muss ich noch mit der uses Anweisung irgend etwas einbinden ?
 Gruss Nils | 
|  | 
| Nilsener  
          Beiträge: 26
 
 
 D4
 
 | 
Verfasst: Do 06.11.03 20:25 
 
Hallo Matze,
 die 'echte' Maus wird tatsächlich deaktiviert. Mein Prog bewegt dann den Mauszeiger, kann aber offenbar keine Klicks mehr ausführen.
 
 Hast Du noch eine Idee woran das liegen könnte ?
 
 Gruss Nils
 | 
|  | 
| Raphael O. 
          Beiträge: 1596
 
 
 VS 2013
 
 | 
Verfasst: Do 06.11.03 20:39 
 
	  | Nilsener hat folgendes geschrieben: |  	  | mein prog sagt: undeclared identifier:'shellexecute' muss ich noch mit der uses Anweisung irgend etwas einbinden ?
 | 
 ja, du musst "Shellapi" einbinden...   | 
|  | 
| Nilsener  
          Beiträge: 26
 
 
 D4
 
 | 
Verfasst: Fr 07.11.03 19:38 
 
Danke Fiji,
 nach Einbinden der 'ShellApi' schluckt er das 'ShellExecute', meckert jetzt aber über das 'handle'. Undeclared Identifier:'handle'. Noch eine idee ?
 		                       Quelltext 
 									| 1:
 | ShellExecute(handle,'open',PChar('rundll32.exe'),PChar('Mouse,Disable'),SW_ShowNormal);					 |  Gruss Nils | 
|  | 
| Luckie Ehemaliges Mitglied
 Erhaltene Danke: 1
 
 
 
 
 | 
Verfasst: Fr 07.11.03 20:11 
 
Wird Shellexecute in einer Methode von TForm aufgerufen? Wahrscheinlich nicht, deswegen sollte es heißen Form1.Handle.
 Aber mal davon abgesehen, was passiert, wenn dein Programm abstürzt? Ich halte es für ganz schlechte Idee Maus und / oder Tastatur zu deaktivieren.
 
 In deinem Fall, sag dem Benutzer vorher (Messagebox oder ähnliches), dass er die Maus nicht bewegen soll. Und auf was wird da geklickt? Ein Button? Dann hol dir das Handle und schick eine Nachricht an das fenster, die den Klick auslöst.
 | 
|  | 
| Nilsener  
          Beiträge: 26
 
 
 D4
 
 | 
Verfasst: Mi 12.11.03 20:21 
 
Vielen Dank Luckie,
 so funktionierts
 		                       Quelltext 
 									| 1:
 | ShellExecute(form1.handle,'open',PChar('rundll32.exe'),PChar('Mouse,Disable'),'',SW_ShowNormal);					 |  wie kann die Maus wieder aktivieren ? So gehts nicht (obwohl es compiliert wird):
 		                       Quelltext 
 									| 1:
 | ShellExecute(form1.handle,'open',PChar('rundll32.exe'),PChar('Mouse,Enable'),'',SW_ShowNormal);					 |  Gruss Nils | 
|  | 
| Luckie Ehemaliges Mitglied
 Erhaltene Danke: 1
 
 
 
 
 | 
Verfasst: Do 13.11.03 15:42 
 
Maus-Hook und Mausnachrichten nicht weiterleiten. | 
|  | 
| obbschtkuche Gast
 Erhaltene Danke: 1
 
 
 
 
 | 
Verfasst: Do 13.11.03 16:03 
 
bevor jetzt die Frage kommt wie das geht:
www.assarbad.org/stuff/tutorials/hooks/ Mouse,Disable deaktiviert übrigens generell die Maus bis zum nächsten Windowsstart. | 
|  | 
| SQLException 
          Beiträge: 89
 
 WinXP + D5 Enterprise
 Win2k + D6 Personal
 
 | 
Verfasst: Fr 29.04.05 12:13 
 
hat sich erledigt.
 *löschmich*
 | 
|  |