Deutsches AutoHotkey Homepage AutoHotkey Community
Wir helfen uns gegenseitig aus der Patsche
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Kann ich einen bestimmten Knopfdruck abfragen?

 
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe!
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
squis



Anmeldedatum: 13.09.2006
Beiträge: 2

BeitragVerfasst am: Mi Sep 13, 2006 4:31 pm    Titel: Kann ich einen bestimmten Knopfdruck abfragen? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1889
Wohnort: Österreich

BeitragVerfasst am: Do Sep 14, 2006 7:02 am    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe! Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
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