AutoHotkey: Automatische Verzeichnis-spezifische Konfiguration / Aktionen: Unterschied zwischen den Versionen
Stance (Diskussion | Beiträge) K (Hinzu: Link: TCWiki en "Hotkey-triggered script") |
Rrmoch (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(4 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
Der erste Teil des Scripts definiert die Häufigkeit, mit der Autohotkey den Pfad des aktiven Fensters vom Total Commander überprüft. Standardeinstellung sind 1000 Millisekunden (1 Sekunde). | Der erste Teil des Scripts definiert die Häufigkeit, mit der Autohotkey den Pfad des aktiven Fensters vom Total Commander überprüft. Standardeinstellung sind 1000 Millisekunden (1 Sekunde). | ||
Geringere Werte erhöhen | Geringere Werte erhöhen die Reaktionsgeschwindigkeit, aber sie können auch den Total Commander erheblich bremsen, wenn man gerade durch ein Verzeichnis navigiert. Größere Werte führen dazu, das es länger dauert, bis der Befehl ausgeführt wird. | ||
Zeile 24: | Zeile 24: | ||
Loop, Parse, Text, `n | Loop, Parse, Text, `n | ||
{ | { | ||
; Der Verzeichnisname befindet sich nicht immer in der 3. Zeile, manchmal auch schon vorher. | |||
; er endet aber immer mit ">"... also suchen wir das | |||
IfInString A_LoopField , > | |||
{ | |||
If A_Index <= 3 | |||
{ | |||
StringTrimRight, Dir, A_LoopField, 2 | |||
Break | |||
} | |||
} | |||
} | } | ||
Zeile 43: | Zeile 48: | ||
{ | { | ||
''; Der Wert "271" entspricht dem internen Befehl | ''; Der Wert "271" entspricht dem internen Befehl | ||
''; aktiviere Benutzerdefinierte Ansicht #1'' | |||
''; (diese Werte entsprechen denen in der totalcmd.inc)'' | ''; (diese Werte entsprechen denen in der totalcmd.inc)'' | ||
PostMessage, 1075, 271 | PostMessage, 1075, 271 | ||
Zeile 51: | Zeile 56: | ||
''; Dies ist der zweite Abschnitt'' | ''; Dies ist der zweite Abschnitt'' | ||
''; Wenn Befehle/Aktionen | ''; Wenn Befehle/Aktionen rekursiv ausgeführt werden sollen,'' | ||
''; zum Beispiel für "c:\Images und Fotos" und alle Unterverzeichnisse'' | ''; zum Beispiel für "c:\Images und Fotos" und alle Unterverzeichnisse'' | ||
''; benutze das ''IfInString''-Format'' | ''; benutze das ''IfInString''-Format'' | ||
IfInString, Dir, c:\Images and | IfInString, Dir, c:\Images and Fotos | ||
{ | { | ||
''; Der Wert "272" entspricht aktiviere Benutzerdef. Ansicht #2'' | ''; Der Wert "272" entspricht aktiviere Benutzerdef. Ansicht #2'' | ||
Zeile 65: | Zeile 70: | ||
If Dir = c:\Downloads | If Dir = c:\Downloads | ||
{ | { | ||
''; Wert " | ''; Wert "324" = nach Datum sortieren'' | ||
PostMessage, 1075, 324 | PostMessage, 1075, 324 | ||
PreviousDir = %Dir% | PreviousDir = %Dir% | ||
Zeile 73: | Zeile 78: | ||
''; Dies ist der STANDARD Abschnitt'' | ''; Dies ist der STANDARD Abschnitt'' | ||
''; Hier müssen alle Befehle eingefügt werden, die nötig'' | ''; Hier müssen alle Befehle eingefügt werden, die nötig'' | ||
''; sind, um zur normalen Ansicht zurückzukehren'' | |||
If PreviousDir <> DEFAULT | If PreviousDir <> DEFAULT | ||
{ | { | ||
Zeile 85: | Zeile 90: | ||
} | } | ||
return | return | ||
zum Debuggen kann man die Parse Loop mit einer Messagebox ausstatten und sehen wie sich die Variablen verhalten | |||
<pre> | |||
;If A_Index <= 3 | |||
{ | |||
StringTrimRight, Dir, A_LoopField, 2 | |||
MsgBox, %A_Index% is %A_LoopField% -- %Dir% | |||
;Break | |||
} | |||
</pre> | |||
[http://www.ghisler.ch/wiki/index.php/AutoHotkey:_Automatic_directory-specific_configuration_/_actions Hotkey-triggered script] | [http://www.ghisler.ch/wiki/index.php/AutoHotkey:_Automatic_directory-specific_configuration_/_actions Hotkey-triggered script] |
Aktuelle Version vom 24. Oktober 2013, 06:35 Uhr
Dieses Script veranlasst Autohotkey in bestimmten Abständen zu prüfen, welches das aktuelle Verzeichnis im Total Commander ist und auf Grund dieser Information benutzerspezifische Befehle auszuführen. Diese Befehle können wie auch immer geartet sein, beginnend beim Sortieren nach Datum über Einschalten einer benutzerdefinierten Ansicht bis hin zum Start eines Mediaplayers.
Der erste Teil des Scripts definiert die Häufigkeit, mit der Autohotkey den Pfad des aktiven Fensters vom Total Commander überprüft. Standardeinstellung sind 1000 Millisekunden (1 Sekunde). Geringere Werte erhöhen die Reaktionsgeschwindigkeit, aber sie können auch den Total Commander erheblich bremsen, wenn man gerade durch ein Verzeichnis navigiert. Größere Werte führen dazu, das es länger dauert, bis der Befehl ausgeführt wird.
Setze folgendes an den Anfang des Scripts:
#Persistent SetTimer, TCDirSpecificActions, 1000 return
Der zweite Teil des Scripts legt fest, welche Aktion zu welchen Verzeichnissen gehört und am Ende wird der "Standardbefehl" festgelegt, also was passieren soll, wenn man sich in keinem der "besonderen" Vereichnisse befindet.
Bringe dies irgendwo im Script unter:
TCDirSpecificActions: IfWinActive, ahk_class TTOTAL_CMD { WinGetText, Text, A Loop, Parse, Text, `n { ; Der Verzeichnisname befindet sich nicht immer in der 3. Zeile, manchmal auch schon vorher. ; er endet aber immer mit ">"... also suchen wir das IfInString A_LoopField , > { If A_Index <= 3 { StringTrimRight, Dir, A_LoopField, 2 Break } } } If Dir <> %PreviousDir% { ; Dies ist der erste Abschnitt ; In der Zeile unter dem Kommentar wird festgelegt, ; welches Verzeichnis die Aktion dieses Abschnitts auslöst. ; (Verzeichnisnamen mit Leerzeichen müssen ohne ; Anführungszeichen angegeben werden) If Dir = c:\Music { ; Der Wert "271" entspricht dem internen Befehl ; aktiviere Benutzerdefinierte Ansicht #1 ; (diese Werte entsprechen denen in der totalcmd.inc) PostMessage, 1075, 271 PreviousDir = %Dir% return } ; Dies ist der zweite Abschnitt ; Wenn Befehle/Aktionen rekursiv ausgeführt werden sollen, ; zum Beispiel für "c:\Images und Fotos" und alle Unterverzeichnisse ; benutze das IfInString-Format IfInString, Dir, c:\Images and Fotos { ; Der Wert "272" entspricht aktiviere Benutzerdef. Ansicht #2 PostMessage, 1075, 272 PreviousDir = %Dir% return } ; Dies ist der dritte Abschnitt If Dir = c:\Downloads { ; Wert "324" = nach Datum sortieren PostMessage, 1075, 324 PreviousDir = %Dir% return } ; Dies ist der STANDARD Abschnitt ; Hier müssen alle Befehle eingefügt werden, die nötig ; sind, um zur normalen Ansicht zurückzukehren If PreviousDir <> DEFAULT { ; Aktiviere die Kurzansicht PostMessage, 1075, 301 ; Sortiere nach Name PostMessage, 1075, 321 PreviousDir = DEFAULT } } } return
zum Debuggen kann man die Parse Loop mit einer Messagebox ausstatten und sehen wie sich die Variablen verhalten
;If A_Index <= 3 { StringTrimRight, Dir, A_LoopField, 2 MsgBox, %A_Index% is %A_LoopField% -- %Dir% ;Break }
->Zurück zu AutoHotkey