Autohotkey: Path lesen mit ControlGetText in TC 8.5a?

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
mtemp2
Member
Member
Posts: 110
Joined: 2009-01-15, 18:51 UTC

Autohotkey: Path lesen mit ControlGetText in TC 8.5a?

Post by *mtemp2 »

Hallo,

Dank meines damaligen Threads: http://ghisler.ch/board/viewtopic.php?t=28596 – nee, Dank natürlich der dortigen Antworten ;) – konnte ich via ControlGetText das aktuell in TC geöffnete Verzeichnis auslesen. Damals noch Version 7.55a benutzend.

Code: Select all

ControlGetText, PathInTC, TMyPanel4, ahk_class TTOTAL_CMD
msgbox, PathInTC: %PathInTC%
Nun benutze ich die neueste Version, 8.5a – nun zudem in der 64-Bit-Variante (oh, hierfür erneut "mich selbst" gefunden ;)). Doch mit dem selben Befehl wird mir keine Pfadangabe ausgegeben bzw. erhalte ich überhaupt keinen rückgabewert mehr.
Rufe ich die noch vorhandene Version 7.55a von TC in der 32 Bit-Version auf, klappt das Auslesen des Verzeichnisses nach wie vor.

Dies alles mit Autohotkey in der 64-Bit-Version.

Wo könnte nun die Ursache liegen? Einzig & allein deswegen, weil ich nun TC in der 64-Bit-Variante benutze?

Danke!
mtemp
Last edited by mtemp2 on 2016-02-23, 00:12 UTC, edited 1 time in total.
User avatar
milo1012
Power Member
Power Member
Posts: 1158
Joined: 2012-02-02, 19:23 UTC

Re: ControlGetText in TC 8.5a?

Post by *milo1012 »

mtemp2 wrote:Wo könnte nun die Ursache liegen? Einzig & allein deswegen, weil ich nun TC in der 64-Bit-Variante benutze?
Ja, das dürfte die Ursache sein und ist ein bekanntes Problem.
Wie z.B. hier oder hier nachzulesen ist, gibt TC in der x64-Variante den einzelnen Fenstern keine individuellen "Namen" mehr, weswegen AHK mit TMyPanel4 nichts mehr anfangen kann.

Grund ist, dass die x64-exe mit Delphi Lazarus kompiliert ist.
Leider dürfte sich das deswegen vermutlich auch in TC 9 nicht ändern.
TC plugins: PCREsearch and RegXtract
mtemp2
Member
Member
Posts: 110
Joined: 2009-01-15, 18:51 UTC

Post by *mtemp2 »

Mit anderen Worten: keine Chance mehr, ControlGetText in der 64-er Variante zu nutzen bzw. eben den aktuellen Dateipfad auszulesen?


Wobei ich die 64-Bit Version von TC nur deshalb nutze, weil die 32-er ja (oder generell ältere Versionen?) – immerhin auch mir "bekanntlich" – unter Win10 gerne zum Absturz neigt (bei mir beim Löschversuch schreibgeschützter Dateien, zB beim Löschen meines %temp%-Ordners). Oder auch hier mit anderen Worten: never change a ... :(
User avatar
milo1012
Power Member
Power Member
Posts: 1158
Joined: 2012-02-02, 19:23 UTC

Post by *milo1012 »

mtemp2 wrote:Mit anderen Worten: keine Chance mehr, ControlGetText in der 64-er Variante zu nutzen bzw. eben den aktuellen Dateipfad auszulesen?
Doch, scheint zu gehen, aber muss man dann immer nach x32/x64 unterscheiden.

Wenn man http://ghisler.ch/board/viewtopic.php?t=43511&highlight=tmypanel4 glauben kann,
brauchst du TMyPanel4 nur durch Window8 ersetzen.
Probiert habe ich es aber noch nicht.
TC plugins: PCREsearch and RegXtract
User avatar
Hacker
Moderator
Moderator
Posts: 13142
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

mtemp2,

Code: Select all

WinGetText, TCWindowText, ahk_class TTOTAL_CMD
RegExMatch(TCWindowText, "(?<=\n).*(?=>)", PathInTC)
HTH
Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
mtemp2
Member
Member
Posts: 110
Joined: 2009-01-15, 18:51 UTC

Post by *mtemp2 »

Danke! Danke! Danke!

Habs ausprobiert: mit Window7 kann ich den aktuellen Pfad = des ausgewählten "Fensters" = den in der Befehlszeile auslesen!
Window11 wäre der Pfad des linken Fensters.
Window16 der des rechten Fensters!
mtemp2
Member
Member
Posts: 110
Joined: 2009-01-15, 18:51 UTC

Post by *mtemp2 »

... und somit kann ich also "wieder" aus beliebigen Programmen heraus mittels Shortcut zum "aktuellen TC-Pfad" wechseln, ohne den Pfad manuell = umständlich = zeitaufwändig = nervig herauskopieren zu müssen ...
Das dürfte also meine übernächste Insbettgehzeit etwas abkürzen! :) Für die nächste hingegen bereits zu spät ;)
Post Reply