Autor Beitrag
Nilsener
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26


D4
BeitragVerfasst: Do 30.10.03 22: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



BeitragVerfasst: Do 30.10.03 23: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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 160

WIN XP, WIN 2003
D5 Enter D 2006
BeitragVerfasst: Fr 31.10.03 09:56 
Hi,

ich denke auch das soetwas keinen Sinn macht, da hat der Luckie schon recht.... Bill Gates verbiegen ist schwierig! :wink:

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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Fr 31.10.03 11:16 
die funktion geht so:

Maus einfangen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var
  Rec: TRect;
begin
  Rec.Left := Left;
  Rec.Top := Top;
  Rec.Right := Left + Width;
  Rec.Bottom := Top + Height;
  ClipCursor(@Rec);
end;



Um den alten Mausbereich wiederherzustellen:
ausblenden Delphi-Quelltext
1:
ClipCursor(nil);					

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Nilsener Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26


D4
BeitragVerfasst: Di 04.11.03 23: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.
ausblenden 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 user profile iconTino: Code- durch Delphi-Tags ersetzt.
BungeeBug
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 901



BeitragVerfasst: Di 04.11.03 23: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

ausblenden Delphi-Quelltext
1:
ShellExecute(handle,'open',PChar('rundll32.exe'),PChar('Mouse,Disable'),SW_ShowNormal);					
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Mi 05.11.03 19:41 
mach einfach folgendes:

deklarier folgende funktion
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26


D4
BeitragVerfasst: Do 06.11.03 21:23 
Hallo Bungee,

ich hab deinen Vorschlag ausprobiert

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26


D4
BeitragVerfasst: Do 06.11.03 21: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.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1596


VS 2013
BeitragVerfasst: Do 06.11.03 21: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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26


D4
BeitragVerfasst: Fr 07.11.03 20:38 
Danke Fiji,

nach Einbinden der 'ShellApi' schluckt er das 'ShellExecute', meckert jetzt aber über das 'handle'. Undeclared Identifier:'handle'. Noch eine idee ?

ausblenden Quelltext
1:
ShellExecute(handle,'open',PChar('rundll32.exe'),PChar('Mouse,Disable'),SW_ShowNormal);					


Gruss Nils
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 07.11.03 21: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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26


D4
BeitragVerfasst: Mi 12.11.03 21:21 
Vielen Dank Luckie,

so funktionierts

ausblenden 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):


ausblenden Quelltext
1:
ShellExecute(form1.handle,'open',PChar('rundll32.exe'),PChar('Mouse,Enable'),'',SW_ShowNormal);					


Gruss Nils
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 13.11.03 16:42 
Maus-Hook und Mausnachrichten nicht weiterleiten.
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: Do 13.11.03 17: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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 89

WinXP + D5 Enterprise
Win2k + D6 Personal
BeitragVerfasst: Fr 29.04.05 13:13 
hat sich erledigt.

*löschmich*