Hallo,
verwende erst seit heute Autohotkey, um meine CNC-Maschine leichter zu bedienen.
Möchte über beliebige Tasten von einem externen numerischen Keypad mit 18 Tasten
verschiedene Pushbutton in einem geöffneten Window drücken können. Über Window Spy habe ich die ClassNN
der Pushbutton ausfindig gemacht.
Mit welchem Befehl kann ich es schaffen, dass der jeweilige Pushbutton gedrückt wird?
Kann man dabei gezielt das externe Keypad ansprechen und die Laptoptastatur bei dem
geöffneten Window deaktivieren?
Besten Dank
Pushbutton drücken
Moderator: jNizM
- divanebaba
- Posts: 804
- Joined: 20 Dec 2016, 03:53
- Location: Diaspora
Re: Pushbutton drücken
Hallo.
Alle Befehle, die mit Control anfangen, also z. B. ControlSend, ControlSetText etc., solltest Du Dir mal anschauen. Die Hilfe-Datei listet diese übersichtlich auf.
Sollte die classNN Deines Pushbuttons mit Button beginnen, probier folgenden Befehl:Musst nur noch, statt Button7 und Fenstertitel die treffenden Bezeichnungen finden, dann kannst Du einen Button auslösen und manches mehr.
Ergänzend zu der Aussage in der Hilfe, kann man mit obigem Befehl nicht nur Checkboxen oder RadioButtons aktivieren, sondern auch Knöpfe (echte Buttons) drücken, wie z. B. einen Ok- oder einen Abbrechen-Knopf.
Alle Befehle, die mit Control anfangen, also z. B. ControlSend, ControlSetText etc., solltest Du Dir mal anschauen. Die Hilfe-Datei listet diese übersichtlich auf.
Sollte die classNN Deines Pushbuttons mit Button beginnen, probier folgenden Befehl:
Code: Select all
Control, Check,, Button7, Fenstertitel
Ergänzend zu der Aussage in der Hilfe, kann man mit obigem Befehl nicht nur Checkboxen oder RadioButtons aktivieren, sondern auch Knöpfe (echte Buttons) drücken, wie z. B. einen Ok- oder einen Abbrechen-Knopf.
Re: Pushbutton drücken
Moin,
wenn es sich um Pushbuttons handelt, sollte es auch die Anweisung ControlClick tun. Es sollte reichen, die ersten beiden Parameter zu füllen.
Damit das Ganze funktioniert, brauchst Du im Skript Hotkeys für die Tasten Deines Keypads. Die Unterscheidung zwischen Keypad und Tastatur ist schwierig. Wenn Du die Tastatur aber abschalten kannst, sollten daraus keine Probleme entstehen können.
Was AHK erkennt, wenn Du eine Taste auf dem Keypad drückst, kannst Du mit einem einzeiligen Testkript herausfinden:Nachdem Du das gestartet hast, kannst Du eine Taste auf dem Keypad drücken und dann per Doppelklick auf das AHK Icon im Tray das versteckte AHK Hauptfenster öffnen. Dort findest Du über das Menü View -> Key history and script info die Tastennamen, die AHK erkannt hat.
wenn es sich um Pushbuttons handelt, sollte es auch die Anweisung ControlClick tun. Es sollte reichen, die ersten beiden Parameter zu füllen.
Damit das Ganze funktioniert, brauchst Du im Skript Hotkeys für die Tasten Deines Keypads. Die Unterscheidung zwischen Keypad und Tastatur ist schwierig. Wenn Du die Tastatur aber abschalten kannst, sollten daraus keine Probleme entstehen können.
Was AHK erkennt, wenn Du eine Taste auf dem Keypad drückst, kannst Du mit einem einzeiligen Testkript herausfinden:
Code: Select all
#InstallKeybdHook
Re: Pushbutton drücken
Hallo zusammen,
der Befehl ControlClick klappt gut für einen Pushbutton. Wie erscheint der Befehl in blauer Farbe im Forum?
Vielen Dank
der Befehl ControlClick klappt gut für einen Pushbutton. Wie erscheint der Befehl in blauer Farbe im Forum?
Vielen Dank
Re: Pushbutton drücken
Die blaue Farbe kennzeichnet einen Link, in diesem Fall
Code: Select all
[url=https://ahkde.github.io/docs/commands/ControlClick.htm][b]ControlClick[/b][/url]
Re: Pushbutton drücken
Was just me gezeigt hat ist die narrensichere variante der einbettung/formatierung eines links, welche phpBB (die foren-software) entsprechend korrekt umsetzt.
Bei manchen links klappt das nicht. Microsoft liefert ganz gerne solche kandidaten ...
Hier der original-link ohne formatierung, welcher von phpBB nicht korrekt umgesetzt wird.
https://msdn.microsoft.com/en-us/librar ... px#Calling DLL Functions and Commands from VBA
Hier derselbe link eingekürzt. Wobei dieser auch ohne vorherige formatierung direkt im beitrag korrekt angezeigt wird.
https://msdn.microsoft.com/en-us/librar ... 87915.aspx
Hier der link, nach art und weise formatiert wie just me dies mittels a) des erweiterten foren editors oder b) direkt per eingabe von -tags ermöglicht hat.
https://msdn.microsoft.com/en-us/librar ... from%20VBA
Was viele user im forum gerne zu übersehen scheinen, die kommandos innerhalb einer-box sind ebenfalls als link ausgelegt, und zwar jeweils auf die entsprechende seite der AHK-hilfe, passend zum befehl!
Doch frei nach Omma: "Wenn s'es nicht nutzen nutzts' nicht nutzen den Nichtnutzen auch nix
Bei manchen links klappt das nicht. Microsoft liefert ganz gerne solche kandidaten ...
Hier der original-link ohne formatierung, welcher von phpBB nicht korrekt umgesetzt wird.
https://msdn.microsoft.com/en-us/librar ... px#Calling DLL Functions and Commands from VBA
Hier derselbe link eingekürzt. Wobei dieser auch ohne vorherige formatierung direkt im beitrag korrekt angezeigt wird.
https://msdn.microsoft.com/en-us/librar ... 87915.aspx
Hier der link, nach art und weise formatiert wie just me dies mittels a) des erweiterten foren editors oder b) direkt per eingabe von -tags ermöglicht hat.
https://msdn.microsoft.com/en-us/librar ... from%20VBA
Was viele user im forum gerne zu übersehen scheinen, die kommandos innerhalb einer
Code: Select all
Doch frei nach Omma: "Wenn s'es nicht nutzen nutzts' nicht nutzen den Nichtnutzen auch nix
Re: Pushbutton drücken
Arbeite gerade noch am Pushbutton.
Habe auch den Befehl Click ausprobiert mit den Koordinaten des Buttons, wo die Maus stehen soll.
Mit dem Option down bleibt die Maus gedrückt. Das passt so. Es fehlt noch, dass der Button im Window nicht gedrückt
werden soll, sobald ich die Taste am Keypad loslasse. Gibt es einen Befehl, welcher feststellt, ob eine konkrete Taste gedrückt
oder nicht gedrückt wird. So könnte man vielleicht eine if- Bedingung setzen.
Habe auch den Befehl Click ausprobiert mit den Koordinaten des Buttons, wo die Maus stehen soll.
Mit dem Option down bleibt die Maus gedrückt. Das passt so. Es fehlt noch, dass der Button im Window nicht gedrückt
werden soll, sobald ich die Taste am Keypad loslasse. Gibt es einen Befehl, welcher feststellt, ob eine konkrete Taste gedrückt
oder nicht gedrückt wird. So könnte man vielleicht eine if- Bedingung setzen.