Benutzerdefinierte Befehle aus externer Anwendung heraus?

German support forum

Moderators: white, Hacker, Stefan2

Axel
Junior Member
Junior Member
Posts: 40
Joined: 2004-03-03, 12:29 UTC

Benutzerdefinierte Befehle aus externer Anwendung heraus?

Post by *Axel »

Ich habe im Wiki [Benutzerdefinierte_Befehle] Folgendes gelesen:
Ein benutzerdefinierter Befehl kann auf verschiedene Art und Weise benutzt werden:
.
.
.
Aus einer externen Anwendung heraus
Leider finde ich keinerlei Dokumentation dazu.
Welche Möglichkeiten bestehen denn da aus externen Anwendungen heraus?
User avatar
karlchen
Power Member
Power Member
Posts: 4603
Joined: 2003-02-06, 22:23 UTC
Location: Germany

Post by *karlchen »

Hallo, Axel.

Nach bestem Wissen und Gewissen ist der von mir fett markierte Teil der Aussage in dem WIKI-Artikel
T.C. WIKI - Benutzerdefinierte Befehle - Benutzung wrote:Ein benutzerdefinierter Befehl kann auf verschiedene Art und Weise benutzt werden:
  • Eingabe direkt in der Kommandozeile
  • Tastenkombination
  • Button in der Buttonbar
  • Alias
  • Hauptmenü
  • Startermenü
  • Verzeichnismenü
  • Aus einer externen Anwendung heraus
schlicht unzutreffend. Ich wüßte nicht, wie das gehen sollte.

Darum auch geben weder der deutschsprachige, noch der englischsprachige Artikel ein Beispiel dafür.
Ich kann mir nicht mal vorstellen, wie man aus dem Verzeichnismenü heraus ein benutzerdefiniertes Kommando aufrufen sollten. (Aber das kann auch meiner mangelnden Phantasie geschuldet sein.)

Grüße,
Karl
MX Linux 21.3 64-bit xfce, Total Commander 10.52 64-bit
The people of Alderaan keep on bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine.
The Prophet's Song
User avatar
Hacker
Moderator
Moderator
Posts: 13065
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

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.
Axel
Junior Member
Junior Member
Posts: 40
Joined: 2004-03-03, 12:29 UTC

Post by *Axel »

Supi, danke dir/euch. ;-)
User avatar
karlchen
Power Member
Power Member
Posts: 4603
Joined: 2003-02-06, 22:23 UTC
Location: Germany

Post by *karlchen »

Hallo, Roman.

Habe die ganzen AHK Scripts nur überflogen. AHK ist nicht meine Welt. Läuft nicht unter Linux. :wink:

Davon abgesehen:

Ist es nicht so, dass man mittels AHK Scripts so ziemlich jedes Windows Programm steuern kann, solange es Fensterhandles und andere vom Programm benutzte Objekte ermitteln kann / weiß? D.h. AHK kann nicht nur die Namen benutzerdefinierter Kommandos an Total Commander senden, sondern auch die Namen interner Total Commander Kommandos, also EM- und CM-Befehle?

Was ich meine, ist folgendes:
Es ist kein Total Commander Feature, dass er EM-Kommandos bereitstellt, damit externe Software von außen darauf zugreift.
Vielmehr ist es Leistung des AHK, dass es sowas kann.

Wenn das so ist, dann wäre es gut, das im WIKI Artikel entsprechend deutlicher zu sagen. Sonst kommt eben das Mißverständnis auf, T.C. stelle EM-Kommandos nach außen als Schnittstelle Drittsoftware zur Verfügung.

Grüße
Karl
MX Linux 21.3 64-bit xfce, Total Commander 10.52 64-bit
The people of Alderaan keep on bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine.
The Prophet's Song
User avatar
Hacker
Moderator
Moderator
Posts: 13065
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

karlchen,
TC hat eine Schnittstelle für Programme wie z.B. AHK (oder meinetwegen auch irgendein C Programm) bereit gestellt um z.B. CD <Pfad> und em_Befehle korrekt und ohne "Tricks" auszuführen. Also kein automatisches simuliertes Tippen von "em_Befehl" in die TC Kommandozeile sondern was ganz krass echt programmiertechnisches.

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.
User avatar
karlchen
Power Member
Power Member
Posts: 4603
Joined: 2003-02-06, 22:23 UTC
Location: Germany

Post by *karlchen »

Hallo, Roman.

OK. Ich verstehe. Wissenslücke meinerseits. :oops: Und wieder was dazugelernt. :)

Danke für die Aufklärung und viele Grüße,
Karl
MX Linux 21.3 64-bit xfce, Total Commander 10.52 64-bit
The people of Alderaan keep on bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine.
The Prophet's Song
Axel
Junior Member
Junior Member
Posts: 40
Joined: 2004-03-03, 12:29 UTC

Post by *Axel »

Ich habe den "CD"-Befehl nun für mich entdeckt.
Damit kann ich ja den Pfad des linken und/oder rechten Panels setzen.
Kann ich auch nur gezielt den des aktiven Panels setzen?
Ich hatte gehofft das würde gehen, wenn ich nur einen Pfad (also auch ohne NewLine im String) übergebe, aber dann macht der Befehl leider gar nichts.

Alternativ würde es mir auch helfen, meinem Programm, welches ich über das Startmenü des TC starte, übergeben zu können, welches Panel (links oder rechts) aktiv ist.
Ich kann ja z.B. mittels "%p" den aktuellen Pfad übergeben. Gibt es da ein Kürzel um zu übergeben, welches Panel aktiv ist?
User avatar
Horst.Epp
Power Member
Power Member
Posts: 6492
Joined: 2003-02-06, 17:36 UTC
Location: Germany

Post by *Horst.Epp »

Axel wrote:Ich habe den "CD"-Befehl nun für mich entdeckt.
Damit kann ich ja den Pfad des linken und/oder rechten Panels setzen.
Kann ich auch nur gezielt den des aktiven Panels setzen?
Ich hatte gehofft das würde gehen, wenn ich nur einen Pfad (also auch ohne NewLine im String) übergebe, aber dann macht der Befehl leider gar nichts.

Alternativ würde es mir auch helfen, meinem Programm, welches ich über das Startmenü des TC starte, übergeben zu können, welches Panel (links oder rechts) aktiv ist.
Ich kann ja z.B. mittels "%p" den aktuellen Pfad übergeben. Gibt es da ein Kürzel um zu übergeben, welches Panel aktiv ist?
Da braucht es keinen CD Befehl !
Schau dir einfach in der Hilfe mal die Kommandozeilen Parameter an.
Mit einem passenden Aufruf des TC kannst du alles ereichen.
Axel
Junior Member
Junior Member
Posts: 40
Joined: 2004-03-03, 12:29 UTC

Post by *Axel »

Aber mein TC läuft ja schon.
Ich starte die Anwendung aus ihm heraus und möchte dann aus meiner Anwendung heraus den Pfad des aktiven Fensters ändern.
User avatar
Horst.Epp
Power Member
Power Member
Posts: 6492
Joined: 2003-02-06, 17:36 UTC
Location: Germany

Post by *Horst.Epp »

Axel wrote:Aber mein TC läuft ja schon.
Ich starte die Anwendung aus ihm heraus und möchte dann aus meiner Anwendung heraus den Pfad des aktiven Fensters ändern.
Das der TC schon läuft macht nichts, mit dem Parameter /O wird die laufende Instanz benutzt !
Axel
Junior Member
Junior Member
Posts: 40
Joined: 2004-03-03, 12:29 UTC

Post by *Axel »

Ok, dann wäre das demnach wohl eine Alternative.
Trotzdem interessiert es mich immer noch sehr, ob das mittels SendMessage geht.
Könnte man das mittels eines eigenen Benutzerdefinierten Befehls, welchen man über SendMessage aufruft, lösen?
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48083
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Ja, das läuft über WM_COPYDATA - der einzigen Windows-Message, bei der man grössere Datenmengen übergeben kann. Siehe den AutoHotkey-Link weiter oben.
Author of Total Commander
https://www.ghisler.com
Axel
Junior Member
Junior Member
Posts: 40
Joined: 2004-03-03, 12:29 UTC

Post by *Axel »

Danke für die Antwort.
Worauf genau bezieht sie sich denn?
Muss ich einen benutzerdefinierten Befehl über SendMessage aufrufen?
Falls ja, wie müsste der aussehen?

Falls nein, wie gehts dann?
:-)

Edit:
Ok, ich hab's hinbekommen. Habe mir einen benutzerdefinierten Befehl

Code: Select all

[em_SetMyFolder] 
cmd=cd 
param=%A
erstellt und mit SendMessage aufgerufen.
Klasse! Danke!
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48083
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Der cd-Befehl geht auch direkt, ohne dass ein interner Befehl em_x angelegt werden müsste. Im Wiki gibt es dazu ein Beispiel in C:
http://www.ghisler.ch/wiki/index.php/TCUtils.cpp
Author of Total Commander
https://www.ghisler.com
Post Reply