Zusätzliche Info in der Titelzeile anzeigen ...

German support forum

Moderators: white, Hacker, Stefan2

User avatar
tom*de
Senior Member
Senior Member
Posts: 394
Joined: 2003-02-25, 09:21 UTC

Pfade auch im Vista Admin-Mode?

Post by *tom*de »

icfu wrote:Rechtsbündig wäre umständlicher Frickelkram, aber hier ist ein Skript, das den aktiven und inaktiven Pfad mit einem Separator trennt, den Du frei konfigurieren kannst.

Code: Select all

v_Separator := "  <--->  "

#Persistent
SetTimer, Timer, 250

Timer:
If WinActive("ahk_class TTOTAL_CMD")
{
  ControlGetText, v_ActivePath, TMyPanel2
  v_ActivePath := RegExReplace(v_ActivePath, "(.+)>", "$1")
  ControlGetText v_LeftPath, TMyPanel5
  v_LeftPath := RegExReplace(v_LeftPath, "(.+\\).*", "$1")
  ControlGetText v_RightPath, TMyPanel9
  v_RightPath := RegExReplace(v_RightPath, "(.+\\).*", "$1")
  If (v_ActivePath = v_ActivePathOld && v_LeftPath = v_LeftPathOld && v_RightPath = v_RightPathOld)
    Return
  v_InactivePath := (v_ActivePath = v_LeftPath) ? v_RightPath : v_LeftPath
; v_WinTitle := v_LeftPath . v_Separator . v_RightPath 
  v_WinTitle := v_ActivePath . v_Separator . v_InactivePath
  WinSetTitle, %v_WinTitle%
  v_ActivePathOld := v_ActivePath
  v_LeftPathOld := v_LeftPath
  v_RightPathOld := v_RightPath
}
Return
Icfu
Vista erlaubt sich, ohne die Schweiz zu fragen im Admin Modus (in einigen Fällen) den ADMINUSER^ - vor die schöne TC-Titelzeile zu hängen.

Weiß jemand was im og. Script zu ändern ist, dass wieder die Pfade und vielleicht ein Hinweis ADMIN in der Titelzeile zu sehen sind?
Tom - #81178 - 5 User licence - Klugheit, Gerechtigkeit, Tapferkeit und Mäßigung plus Kooperation.
User avatar
tom*de
Senior Member
Senior Member
Posts: 394
Joined: 2003-02-25, 09:21 UTC

Änderung ab TC 7.50

Post by *tom*de »

Im o.g. Script muss man ab TC v7.50: TMyPanel2 mit => TMyPanel3 ersetzen.

Wie bekomm ich den inaktiven Pfad in 7.50? / Was muss ich für TMyPanel5 und TMyPanel9 im o.g. AHK-Script eintragen?
Hab vorerst TMyPanel5 mit TMyPanel6 ersetzt und eine ganz aussagekräftige Titelzeile fürs aktive Fenster.
Tom - #81178 - 5 User licence - Klugheit, Gerechtigkeit, Tapferkeit und Mäßigung plus Kooperation.
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

TMyPanel5 => TPathPanel1
TMyPanel9 => TPathPanel2

Icfu
This account is for sale
User avatar
tom*de
Senior Member
Senior Member
Posts: 394
Joined: 2003-02-25, 09:21 UTC

Post by *tom*de »

super. Danke.
Tom - #81178 - 5 User licence - Klugheit, Gerechtigkeit, Tapferkeit und Mäßigung plus Kooperation.
User avatar
tom*de
Senior Member
Senior Member
Posts: 394
Joined: 2003-02-25, 09:21 UTC

Post by *tom*de »

Habe aktuell den AHK-Code von Icfu im Einsatz der mir in Titelzeile des Fenstertitels die aktuellen TC-Verzeichnisse anzeigt. Bei mehreren Instanzen habe ich so schnell den richtigen TC gefunden...:

Code: Select all

v_Separator := "  <--->  "

#Persistent
SetTimer, Timer, 2000

Timer:
If WinActive("ahk_class TTOTAL_CMD")
{
  ControlGetText, v_ActivePath, TMyPanel3
  v_ActivePath := RegExReplace(v_ActivePath, "(.+)>", "$1\")
  ControlGetText v_LeftPath, TPathPanel1
  v_LeftPath := RegExReplace(v_LeftPath, "(.+\\).*", "$1")
  ControlGetText v_RightPath, TPathPanel2
  v_RightPath := RegExReplace(v_RightPath, "(.+\\).*", "$1")
  If (v_ActivePath = v_ActivePathOld && v_LeftPath = v_LeftPathOld && v_RightPath = v_RightPathOld)
    Return
  v_InactivePath := (v_ActivePath = v_LeftPath) ? v_RightPath : v_LeftPath
; v_WinTitle := v_LeftPath . v_Separator . v_RightPath 
  v_WinTitle := v_ActivePath . v_Separator . v_InactivePath
  WinSetTitle, %v_WinTitle%
  v_ActivePathOld := v_ActivePath
  v_LeftPathOld := v_LeftPath
  v_RightPathOld := v_RightPath
}
Return
In TC8 erscheint leider nur noch der Separator ohne die Pfade.
1. Was muss ändern, damit das wieder funktioniert?
2. Hat TC8 vielleicht vor das Konfigurieren des Fenstertitels intern zu unterstützen?
Tom - #81178 - 5 User licence - Klugheit, Gerechtigkeit, Tapferkeit und Mäßigung plus Kooperation.
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

In TC8 erscheint leider nur noch der Separator ohne die Pfade.
1. Was muss ändern, damit das wieder funktioniert?
Kann ich nicht nachvollziehen, das Skript funktioniert hier problemlos mit der aktuellsten Beta 11.
This account is for sale
User avatar
tom*de
Senior Member
Senior Member
Posts: 394
Joined: 2003-02-25, 09:21 UTC

Post by *tom*de »

Während beim 7.54a kurz nach dem Start die Titelzeile geändert wird, dauert es beim 8.0b11x64 eine Weile(?) bzw. ein paar Aktionen(?) und dann erscheint nur der Separator...
Vielleicht ein Problem beim Einsatz von TPathPanel1,2,3 und der RegExReplace? Habs aber noch nicht gefunden...
Tom - #81178 - 5 User licence - Klugheit, Gerechtigkeit, Tapferkeit und Mäßigung plus Kooperation.
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

x64? Dazu kann ich nichts sagen, dieser Kelch ging bisher spurlos an mir vorüber und wird es auch in der näheren Zukunft.
Im x64-TC heißen die Controls evtl. anders, kannst Du selbst rausfinden mit dem AHK/AutoIt-Window Spy durch Überfahren mit der Maus...

x86 funktioniert hier, auch mit AutoHotkey_L, ANSI oder Unicode egal.
This account is for sale
User avatar
tom*de
Senior Member
Senior Member
Posts: 394
Joined: 2003-02-25, 09:21 UTC

Post by *tom*de »

Danke für den Tipp... und dank Ahk Window Spy:

TPathPanel1 heißt in x64 Window9
TPathPanel2 heißt in x64 Window14
TMyPanel3 heißt in x64 Window5

Habs mal im Code eingetragen und es funktioniert für x64/x32 bit, wenn die entsprechenden Kommentare entfernt werden:

Code: Select all

; x32:  ControlGetText, v_ActivePath, TMyPanel3
; x64:  ControlGetText, v_ActivePath, Window5
  v_ActivePath := RegExReplace(v_ActivePath, "(.+)>", "$1\")
; x32:  ControlGetText v_LeftPath, TPathPanel1
; x64:  ControlGetText v_LeftPath, Window9
  v_LeftPath := RegExReplace(v_LeftPath, "(.+\\).*", "$1")
; x32:  ControlGetText v_RightPath, TPathPanel2
; x64:  ControlGetText v_RightPath, Window14
Wär schön, wenn es für beide TC-Versionen läuft - vielleicht incl. einer x64/x32-Unterscheidung im Separator?

Kann jemand helfen?
Tom - #81178 - 5 User licence - Klugheit, Gerechtigkeit, Tapferkeit und Mäßigung plus Kooperation.
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

Der "Window Spy" ist bereits im AHK-Paket dabei, aber ein alternativer Spy schadet natürlich nicht...

Angepaßte Skriptversion für x32/x64, unterschiedliche Separatoren konfigurierbar:

Code: Select all

;*** Konfiguration Start
v_Separator32 := "  < | x32 | >  "
v_Separator64 := "  < | x64 | >  "
v_Timer := 250
;*** Konfiguration Ende

#Persistent
SetTimer, Timer, %v_Timer%

Timer:
hWnd := WinActive("ahk_class TTOTAL_CMD")
If (hWnd)
{
  WinGet, v_TCExe, ProcessName, ahk_id %hWnd%
  If (v_TCExe = "totalcmd.exe")
  {
    v_ActivePathControl := "TMyPanel3"
    v_LeftPathControl := "TPathPanel1"
    v_RightPathControl := "TPathPanel2"
    v_Separator := v_Separator32
  }
  Else
  {
    v_ActivePathControl := "Window5"
    v_LeftPathControl := "Window9"
    v_RightPathControl := "Window14"
    v_Separator := v_Separator64
  }
  ControlGetText, v_ActivePath, %v_ActivePathControl%
  v_ActivePath := RegExReplace(v_ActivePath, "(.+)>", "$1\")
  ControlGetText v_LeftPath, %v_LeftPathControl%
  v_LeftPath := RegExReplace(v_LeftPath, "(.+\\).*", "$1")
  ControlGetText v_RightPath, %v_RightPathControl%
  v_RightPath := RegExReplace(v_RightPath, "(.+\\).*", "$1")
  If (v_ActivePath = v_ActivePathOld && v_LeftPath = v_LeftPathOld && v_RightPath = v_RightPathOld)
    Return
  v_InactivePath := (v_ActivePath = v_LeftPath) ? v_RightPath : v_LeftPath
  v_WinTitle := v_ActivePath . v_Separator . v_InactivePath
  WinSetTitle, %v_WinTitle%
  v_ActivePathOld := v_ActivePath
  v_LeftPathOld := v_LeftPath
  v_RightPathOld := v_RightPath
}
Return
This account is for sale
User avatar
tom*de
Senior Member
Senior Member
Posts: 394
Joined: 2003-02-25, 09:21 UTC

Post by *tom*de »

Prima icfu, das funktioniert mit v7, v8 32 und 64bit. Danke Tom.
Tom - #81178 - 5 User licence - Klugheit, Gerechtigkeit, Tapferkeit und Mäßigung plus Kooperation.
User avatar
Horst.Epp
Power Member
Power Member
Posts: 6532
Joined: 2003-02-06, 17:36 UTC
Location: Germany

Post by *Horst.Epp »

The path inserted has stripped the last dir.
c:\tools\autohotkey\scripts
is displayed as
c:\tools\autohotkey

Tested with TC8b11 x64
AHK compiled with AutoHotkey110504
icke1954
Junior Member
Junior Member
Posts: 50
Joined: 2011-10-16, 09:31 UTC

Post by *icke1954 »

@icfu da ich mich erst seit kurzer Zeit mit dem Thema AHK beschäftige entschuldige die Fragen:
Warum sind die Bezeichnungen der Panels anscheinend immer unterschiedlich, oder ist das bei mir nur so? Dann müßte der Code ja immer, je nach Konfiguration, geändert werden?

Dein Code auf Seite 1 funktionierte bei mir nie:
TMyPanel1 = [LfwName] [Byte] von [Byte] frei (mal rechts, mal links)
TMyPanel2 = [LfwName] [Byte] von [Byte] frei (mal rechts, mal links)
TMyPanel3 =[LfwName] [Byte] von [Byte] frei (mal rechts, mal links)
TMyPanel9 = nie vorhanden
TMyPanel5 = ist fast immer [akt. Pfad] bei Laufwerksliste herunterklappbar = ON ist der Akt.Pfad aber TMyOPanel3

Erst der Code auf Seite2, war mit einer kleinen Änderung, bei mir anwendbar:
Vorraussetzung wie gesagt : Laufwerksliste herunterklappbar = OFF
so ist in TMyPanel5 = Akt.Pfad sonst TMyPanel3
TPathPanel1= Pfad (links oder recht, aber das ist ja egal
TPathPanel2 = Pfad(rechts oder links, aber das ja egal)

Aber verzeih mir die Frage, außer daß es faszinierend programmiert ist und für Leute, die keine Lizenz haben, oder ihren eigenen Namen nicht mehr sehen können, sehe ich keinen tieferen Sinn in dem Tool. Immerhin läuft resistent ein Programm ständig mit, dafür spart man vielleicht 3 mm vertikal an Platz, wenn man den aktuellen Pfad ausblendet.
Bestimmt habe ich was übersehen, hoffe ich doch ...

MfG icke
TC 8.0ß11
Windows XP SP3
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

6040

Post by *icfu »

Warum sind die Bezeichnungen der Panels anscheinend immer unterschiedlich, oder ist das bei mir nur so?
Der Klassenname der relevanten Controls hat sich lediglich nach dem letzten Major-Upgrade des TC auf Version 7.50 geändert, wie Du dem Thread entnehmen kannst.
Die Instanzen werden von AHK numeriert und können sich daher ändern, wenn Controls ein- oder ausgeblendet werden, das ist korrekt.

Aus diesem Grund ist es beim AHK-Skripten des TCs wichtig, daß man sich möglichst auf Elemente stützt, deren Instanznummern sich nicht oder nur in seltenen Situationen ändern, ansonsten darf man sich auf viele graue Haare beim programmiertechnischen Abdecken aller Eventualitäten freuen.
Dein Code auf Seite 1 funktionierte bei mir nie:
Du hast wohl nicht mit TC <7.50 getestet.
Erst der Code auf Seite2, war mit einer kleinen Änderung, bei mir anwendbar:
Vorraussetzung wie gesagt : Laufwerksliste herunterklappbar = OFF
so ist in TMyPanel5 = Akt.Pfad sonst TMyPanel3
Korrekt. Wenn Du eine bessere, eindeutige Möglichkeit findest, um TC den aktiven Pfad zu entlocken als eben jenes Control auszulesen, das meistens 'ne 3, manchmal aber 'ne 5 hat: Nur zu!
Aber verzeih mir die Frage, außer daß es faszinierend programmiert ist und für Leute, die keine Lizenz haben, oder ihren eigenen Namen nicht mehr sehen können, sehe ich keinen tieferen Sinn in dem Tool. Immerhin läuft resistent ein Programm ständig mit, dafür spart man vielleicht 3 mm vertikal an Platz, wenn man den aktuellen Pfad ausblendet.
Bestimmt habe ich was übersehen, hoffe ich doch ...
Wenn Du keinen tieferen Sinn drin siehst, mehrere Instanzen eines Dateimanagers an den Pfadnamen beim Task-Switchen zu unterscheiden und stattdessen lieber erfahren möchtest, wie Du heißt, wie der Dateimanager mit dem blauen Diskettenicon heißt und welche Versions- und Instanznummer der Schweizer, der den Anwender mit diesen unglaublich wertvollen Informationen beglückt, dafür ausgewürfelt hat, gehörst Du evtl. nicht zur Zielgruppe dieses Skripts.

Vielleicht hilft dieser Thread, insbesondere das darin verlinkte Bild, beim Verständnis:
http://www.ghisler.ch/board/viewtopic.php?p=86630

Zum Thema "da läuft ein Programm": Nun, das ist korrekt, aber "das Programm" läuft bei denen, die es einmal kennen- und schätzengelernt haben, eh.
Ob da nun noch ein weiteres Skript alle 250ms oder noch seltener einen CPU-Peak von 0,001% erzeugt, kann in Zeiten, in denen man einen kompletten RAM-Riegel und CPU-Kern benötigt, um eine einzige WWW-Seite in Opera, Firefox oder Chromium darzustellen, kein Argument mehr sein.

Ein Leben ohne AHK ist möglich, aber sinnlos.
Last edited by icfu on 2011-12-09, 03:05 UTC, edited 3 times in total.
This account is for sale
User avatar
norfie²
Power Member
Power Member
Posts: 987
Joined: 2006-02-10, 07:27 UTC

Post by *norfie² »

[offtopicrant]...aber was will man von einem Entwickler erwarten, der es in zwei Jahrzehnten nicht auf die Reihe bringt, alle 26 cm_GotoDrive-Kommandos in die TOTALCMD.INC einzupflegen...[/offtopicrant]
1 und 1 zusammenzaehlen sollte man aber schon koennen, wenn man mittlerweile "obsolete" Forderungen durchsetzen will. Von 2004 bis jetzt ist noch nicht einmal ein ganzes Jahrzehnt vergangen.
Post Reply