 |
AutoHotkey Community Wir helfen uns gegenseitig aus der Patsche
|
| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
squis
Anmeldedatum: 13.09.2006 Beiträge: 2
|
Verfasst am: Mi Sep 13, 2006 4:31 pm Titel: Kann ich einen bestimmten Knopfdruck abfragen? |
|
|
Mein Problem:
Ich hab ein Programm mit mehreren Unterfenster, etwa wie ein Karteikartensystem. Wenn ich etwas in einer Kartei ändere, drücke ich OK und dann kommt eine Frage, ob ich die Änderungen speichern möchte. Wenn ich dann OK klicke, sollen Daten aus dem soeben geänderten Fenster in eine Datei gespeichert werden. Bisher hab ich die Mausklicks abgefragt, was ganz gut geht, aber 10% der Karten werden nicht gespeichert. Am Speichern selbst liegt es nicht, die entsprechende Subroutine wird garnicht erst aufgerufen.
Der Code lautet:
| Zitat: |
#IfWinActive ,The Window
~LButton::
MouseGetPos, , , , tehButton
If (tehButton = "Button1")
{
Gosub, GetData
}
return
#IfWinActive,Warning,Are you sure you wish to save the changes you made to this record
~LButton Up::
MouseGetPos, , , , tehButton
If (tehButton = "Button1")
{
Gosub, SaveData
}
return |
Scheinbar registriert AHK nicht ganz jeden Mausklick. Oder manchmal ist das Fenster schon weg, bevor AHK registriert, dass es überhaupt aktiv ist. Besonders wenn zunächst ein ganz anderes Fenster aktiv ist, und ich gleich auf OK klicke, ohne das entsprechende Fenster vorher aktiviert zu haben.
Ich bin auch ständig am Experimentieren mit LButton:: und LButton Up:: - geht beides nicht so recht.
Gibt es eine zuverlässige Methode, AHK zu sagen "Wenn ich einen bestimmten Knopf in einem bestimmten Fenster klicke, hol dir die Daten. Und wenn ich auf einen anderen Knopf in einem anderen Fenster klicke, speichere die Daten"?
Welcher Ansatz ist eigentlich besser?
| Zitat: | #IfWinActive ,The Window
~LButton::
Gosub, Label
return |
oder
| Zitat: | ~LButton::
IfWinActive ,The Window
Gosub, Label
return |
|
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1889 Wohnort: Österreich
|
Verfasst am: Do Sep 14, 2006 7:02 am Titel: |
|
|
Ich denke das Problem daran ist, dass das Fenster beim Knopfdruck selbst noch nicht aktiv ist (erst direkt danach).
Du kannst dieses Handling höchstens so umgehen:
| Code: | ~LButton::
MouseGetPos, , , WindowUnderMouse
WinActivate %WindowUnderMouse%
WinWaitActive %WindowUnderMouse%
IfWinActive ,The Window
Gosub, Label
return | *ungetestet*
Thalon _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|