Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 19, 2025 10:27

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mo Sep 08, 2003 08:17 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 16, 2003 15:20
Beiträge: 198
Ich würde mir gerne ein Programm schreiben, mit dem ich mit der Tastertur oder anderen Geräten die Maus ( den Mauszeiger) steuern kann.
Die Position der Maus kann ich ja mit setCursorPos verändern, allerdings kann ich noch nicht klicken und das Mausrad simulieren.
1.Wie geht das ?
2.Muss ich mich selbst um doppelklicke kümmern oder tut das Windows ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 08, 2003 08:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Womit arbeitest du denn?Wenn du die VCL nutzt, dann kannst du beim Tastendruck ganz einfach das OnClick-Ereignis der Form aufrufen (und natürlich auch OnDblClick und OnMouseWheelDown/Up).
Wenn du mit der API arbeitest, dann solltest du dir mal folgende Windowsnachrichten in der Windows-SDK-Hilfe ansehen : WM_MOUSEWHEEL, WM_MBUTTONDBLCLK und WM_MBUTTONDOWN/UP.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 08, 2003 08:29 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 16, 2003 15:20
Beiträge: 198
Damit kann ich aber nur meine Anwendung steuern (oder irre ich mich da?). Ich möchte aber alle Anwendungen und Windows steuern können.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 08, 2003 08:52 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Hättest evtl. gleich sagen sollen, das du mit deiner Anwendung globale Ereignisse abfangen willst.
Das macht die Sache nämlich bedeutend schwerer, und du solltest dir mal die Verwendung von WindowsHooks ansehen (z.B. in diesem Artikel, der hier sollte auch helfen).Wie der Name Hook bereits vermuten lässt, hängt sich dieser Hook AFAIK in die Nachrichtenschleife von Windows, und gibt dir so die Möglichkeit auf globale Ereignisse zu reagieren.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 08, 2003 09:12 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ich glaube mit Hooks brauchst du da gar nicht mal anfangen. Die reagieren "nur" auf Ereignisse. Du möchtest aber gerne welche Senden.
Für die Maus reicht es vollkommen aus, wenn du dir das Fensterhandle von der aktuellen Mausposition nimmst (WindowFromPoint) und dann dort per SendMessage deinen (doppel)Click hinschickst.

PS: Windows reagiert teilweise recht komisch auf seine Messages. Um genau zu wissen, welche Messages du wann senden solltest ist es besser wenn du mal WinSign (Delphi) oder Spy++ (C++) startest und deine aktionen mal genau anschaust (was wo wie passiert) und auch genau so nachbildest. Windows benötigt teilweise eine genau Reihenfolge von Messages.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 08, 2003 12:51 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Alle Mausereignisse kann man global mit der Funktion mouse_event auslösen. Das ist auch genau die gleiche Funktion, die der Maustreiber aufruft.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 08, 2003 15:16 
Offline
DGL Member

Registriert: Mo Jan 20, 2003 20:10
Beiträge: 424
Wohnort: nähe Starnberg
Hi,

aus der MSDN:

Zitat:
The mouse_event function synthesizes mouse motion and button clicks.

Windows NT/2000/XP: This function has been superseded. Use SendInput instead.


Nur zu Info.

Guß
KidPaddle

_________________
http://www.seban.de


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 4 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 16 Queries | GZIP : On ]