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 

Umbelegung und Hotkey
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe!
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
KitchenTV
Gast





BeitragVerfasst am: Mo Jun 16, 2008 6:46 pm    Titel: Antworten mit Zitat

Hallo Denick,

das war es! Funktioniert prächtig. Nur den Befehl für das Abspielen der Tour funktionierte nicht. Das konnte ich aber verbessern.

Also danke nochmals für Deine Mühe und Zeit.

Viele Grüße

Der KitchenTV
Nach oben
KitchenTV
Gast





BeitragVerfasst am: Fr Jun 27, 2008 7:56 am    Titel: Umbelegung und Hotkey Antworten mit Zitat

Hallo,

ich brauche nochmal kurz Eure Hilfe. Und zwar musste ich hardwaremäßig meine für ursprünglichen Tasten ändern, habe aber dadurch Probleme bei der Anpassung des angehängten Scripts. Wahrscheinlich, weil eine Taste ein zeichen ist, welches für die Programmierung genutzt wird.

Folgende Änderung habe ich jetzt:

End = End ; hier bleibt alles beim alten
< früher Taste 2 ; Problem, weil wahrscheinlich als mathematischer Operator genutzt
g früher Taste 4 ; hiermit erwarte ich keine Probleme
, früher Taste 8 ;

Daher die Frage, was muss ich ändern, damit ich in Zeile 9 und 11 keine Fehlermeldung bekomme.

Code:

#NoEnv
SetBatchLines, -1
SetTitleMatchMode, 2
; Wartezeit auf die zweite Taste (ms)
; Die erste Reaktion verzögert sich um diese Zeit!!!
WZ := 400
; Tastenbelegung End-Taste:
EndEnd := "Down" ; Nur End (in diesem Fall wird End als Suffix genutzt!)
End< := "n"      ; End + 2
Endg := "PgDn"   ; End + 4
End, := "PgUp"   ; End + 8
; Aktueller Hotkey (False = 0)
HK := False
Return
; ------------------------------------------------------------------------------
#IfWinActive, Google Earth
; ------------------------------------------------------------------------------
2::
If (HK) {
   Return
}
HK := A_ThisHotkey
; Prüfen, ob eine weitere Taste gedrückt ist
Sleep, %WZ%
T2 := Tasten_Prüfen("4|8", HK)
If (T2 = 4) {
   ; 2 + 4 : Tour abspielen
   KeyWait, 4
   Send, ^!p
   HK := False
   Return
}
If (T2 = 8) {
   ; 2 + 8 : Google Earth beenden
   KeyWait, 8
   WinClose, A
   HK := False
   Return
}
SetKeyDelay, -1
Loop {
   If !GetKeyState("2", "P")
      Break
   Send, {Up Down}
}
Send, {Up Up}
HK := False
Return
; ------------------------------------------------------------------------------
4::
If (HK) {
   Return
}
HK := A_ThisHotkey
SetKeyDelay, -1
Loop {
   If !GetKeyState("4", "P")
      Break
   Send, {Left Down}
}
Send, {Left Up}
HK := False
Return
; ------------------------------------------------------------------------------
8::
If (HK) {
   Return
}
HK := A_ThisHotkey
SetKeyDelay, -1
Loop {
   If !GetKeyState("8", "P")
      Break
   Send, {Right Down}
}
Send, {Right Up}
HK := False
Return
; ------------------------------------------------------------------------------
End::
If (HK) {
   Return
}
HK := A_ThisHotkey
; Prüfen, ob eine weitere Taste gedrückt ist
Sleep, %WZ%
T2 := Tasten_Prüfen("2|4|8", HK)
SetKeyDelay, -1
Loop {
   Send, % "{" . %HK%%T2% . " Down}"
   If !GetKeyState(T2, "P")
      Break
}
Send, % "{" . %HK%%T2% . " Up}"
HK := False
Return
; ------------------------------------------------------------------------------
Tasten_Prüfen(Tasten, Hotkey) {
   StringSplit, _T, Tasten, |
   Loop, %_T0% {
      If GetKeyState(_T%A_Index%, "P")
         Return _T%A_Index%
   }
   Return Hotkey
}
; ------------------------------------------------------------------------------


Danke für jede Hilfe.

Der KitchenTV
Nach oben
BoBo²
Gast





BeitragVerfasst am: Fr Jun 27, 2008 8:55 am    Titel: Antworten mit Zitat

Zitat:
Daher die Frage, was muss ich ändern, damit ich in Zeile 9 und 11 keine Fehlermeldung bekomme.
Sehe keinen workarround. Tastenbelegung ändern um 'verbotene'/reservierte Zeichen zu vermeiden.

Wieso werden hier trotz Expression-Schreibweise die Variablen mit Prozentzeichen deklariert?

Code:
   Send, % "{" . %HK%%T2% . " Down}"

Send, % "{" . %HK%%T2% . " Up}"
Nach oben
KitchenTV
Gast





BeitragVerfasst am: Fr Jun 27, 2008 9:51 am    Titel: Antworten mit Zitat

Hallo,

ok, dann muss ich wohl heute abend nochmal ran und die Tasten umlöten.

Warum die hier die Expression-Schreibweise die Variablen mit prozentzeichen deklariert wird kann ich Dir leider nicht sagen. Da hat mir der Denick geholfen.

Viele Grüße

Der KitchenTV
Nach oben
denick (n-l-i)
Gast





BeitragVerfasst am: Fr Jun 27, 2008 12:51 pm    Titel: Antworten mit Zitat

Moin,

hör auf zu löten! Man muss das Skript nur etwas allgemeiner fassen:
Code:
#NoEnv
SetBatchLines, -1
SetTitleMatchMode, 2
; Wartezeit auf die zweite Taste (ms)
; Die erste Reaktion verzögert sich um diese Zeit!!!
WZ := 400
; Hotkeys (Die Belegung ist beliebig!)
HK1 := "<"
HK2 := "g"
HK3 := ","
HK4 := "End"
;
; Zugeordnete Aktionen:
; HK1          Send, Up
; HK1 + HK2    Send, ^!p
; HK1 + HK3    WinClose, Google Earth
; HK2          Send, Left
; HK3          Send, Right
; HK4          Send, Down
; HK4 + HK1    Send, n
; HK4 + HK2    Send, PgDn
; HK4 + HK3    Send, PgUp
;
; Tastenkombinationen für HK4:
HK4HK4 := "Down"  ; Nur HK4 (in diesem Fall wird HK4 als Suffix genutzt!)
HK4HK1 := "n"     ; HK4 + HK1
HK4HK2 := "PgDn"  ; HK4 + HK2
HK4HK3 := "PgUp"  ; HK4 + HK3
; Aktueller Hotkey (False = 0)
HK := False
; Hotkeys für Google Earth
Hotkey, IfWinActive, Google Earth
Hotkey, %HK1%, HK1
Hotkey, %HK2%, HK2
Hotkey, %HK3%, HK3
Hotkey, %HK4%, HK4
Return
; ------------------------------------------------------------------------------
HK1:
If (HK) {
   Return
}
HK := A_ThisHotkey
; Prüfen, ob eine weitere Taste gedrückt ist
Sleep, %WZ%
T2 := Tasten_Prüfen(HK2 . "|" . HK3, HK)
If (T2 = HK2) {
   ; HK1 + HK2 : Tour abspielen
   KeyWait, %HK2%
   Send, ^!p
   HK := False
   Return
}
If (T2 = HK3) {
   ; HK1 + HK3 : Google Earth beenden
   KeyWait, %HK3%
   WinClose, A
   HK := False
   Return
}
SetKeyDelay, -1
Loop {
   If !GetKeyState(HK1, "P")
      Break
   Send, {Up Down}
}
Send, {Up Up}
HK := False
Return
; ------------------------------------------------------------------------------
HK2:
If (HK) {
   Return
}
HK := A_ThisHotkey
SetKeyDelay, -1
Loop {
   If !GetKeyState(HK2, "P")
      Break
   Send, {Left Down}
}
Send, {Left Up}
HK := False
Return
; ------------------------------------------------------------------------------
HK3:
If (HK) {
   Return
}
HK := A_ThisHotkey
SetKeyDelay, -1
Loop {
   If !GetKeyState(HK3, "P")
      Break
   Send, {Right Down}
}
Send, {Right Up}
HK := False
Return
; ------------------------------------------------------------------------------
HK4:
If (HK) {
   Return
}
HK := A_ThisHotkey
; Prüfen, ob eine weitere Taste gedrückt ist
Sleep, %WZ%
T2 := Tasten_Prüfen(HK1 . "|" . HK2 . "|" . HK3, HK)
Aktion := (T2 = HK) ? "HK4HK4"
        : (T2 = HK1) ? "HK4HK1"
        : (T2 = HK2) ? "HK4HK2"
        : "HK4HK3"
SetKeyDelay, -1
Loop {
   Send, % "{" . %Aktion% . " Down}"
   If !GetKeyState(T2, "P")
      Break
}
Send, % "{" . %Aktion% . " Up}"
HK := False
Return
; ------------------------------------------------------------------------------
Tasten_Prüfen(Tasten, Hotkey) {
   StringSplit, _T, Tasten, |
   Loop, %_T0% {
      If GetKeyState(_T%A_Index%, "P")
         Return _T%A_Index%
   }
   Return Hotkey
}
; ------------------------------------------------------------------------------


Die %-Zeichen innerhalb des Ausdrucks bewirken, dass der Inhalt der eingeschlossenen Variablen als Variablenname verarbeitet wird.
Nach oben
KitchenTV
Gast





BeitragVerfasst am: Di Jul 01, 2008 9:25 pm    Titel: Antworten mit Zitat

Hallo Denick,

das war spitzenmäßig. Ich hab zwar schon wieder umgelötet, doch bietet mir die Version 3.0 Deines Skripts mehr Flexibilität. Nochmals Danke.

Viele Grüße

KitchenTV
Nach oben
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe! Alle Zeiten sind GMT
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
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