Anleitung um XSubst in TC zu integrieren

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
User avatar
Luke_Filewalker
Junior Member
Junior Member
Posts: 47
Joined: 2003-11-05, 10:30 UTC

Anleitung um XSubst in TC zu integrieren

Post by *Luke_Filewalker »

Hallo an alle TC Fans

Ich wurde schon mehrfach darauf angesprochen, ob ich nicht ein XSubst-Plugin für TC schreiben könnte. Wer XSubst nicht kennt, kann sich auf meiner Homepage informieren. Sehr kurz: Es dient zum Einrichten von Subst-Laufwerken.

Nun, seit V1.6 meines Tools gibt es die Shell Kontext Erweiterung und so besteht eigentlich keine Notwendigkeit mehr, ein extra Plugin für TC zu entwickeln. Wer es trotzdem gerne direkt in TC hätte, dem möchte ich nun zeigen wie dies alleine mit den Möglichkeiten von TC zu realisieren ist. Basis für die Integration ist die bereits angesprochene Shell Kontext Erweiterung von XSubst die uns hier hilft. Diese muss übrigens nicht extra hierfür aktiviert werden, TC greift einfach direkt auf die Funktionen zu.

Entschieden habe ich mich für die Einbindung im Startermenü, da sich XSubst dort sehr bequem integrieren lässt, inklusive Shortcuts. Ich gehe bei dieser Step by Step Anleitung davon aus, dass das Hauptmenü insofern unverändert ist, dass noch das Startermenü existiert. Ausserdem wählte ich das Startermenü im Prinzip nur aus, damit man die XSubst Funktionen nicht direkt in die Buttonbar packen muss und die Funktionen per Shortcut ansprechen kann.

Menü erstellen
Schritt 1: Hauptmenü/Starter/Startermenü ändern... aufrufen
Schritt 2: Untermenü... klicken
Schritt 3: Titel "XSubst" eingeben und bestätigen
Schritt 4: Hinzufügen... klicken (Auswahl muss noch auf "-XSubst" stehen)
Schritt 5: Titel "Laufwerk verbinden..." eingeben und bestätigen
Schritt 6: Hinzufügen... klicken
Schritt 7: Titel "Laufwerk trennen" eingeben und bestätigen

Ich gehe in dieser Anleitung weiter davon aus, dass XSubst in C:\Programme\XSubst\ installiert wurde. Pfad muss also eventuell angepasst werden.

Parameter festlegen
Schritt 8: Bei "Laufwerk verbinden..." folgendes eintragen:
Kommando: C:\Programme\XSubst\XSubst.exe
Parameter: /set="%p"
Startpfad: <bleibt leer>
Tastenkürzel: <nach Wunsch festlegen, ich habe hier CTRL+ALT+F5>

Schritt 9: Bei "Laufwerk trennen" folgendes eintragen:
Kommando: C:\Programme\XSubst\XSubst.exe
Parameter: /cut="%p"
Startpfad: <bleibt leer>
Tastenkürzel: <nach Wunsch festlegen, ich habe hier CTRL+ALT+F6>

Für CTRL+ALT+F5 entschied ich mich, da man mit CTRL+SHIFT+F5 bekanntermassen eine Verknüpfung auf eine Datei erzeugen kann und so erschien mir dieser Shortcut logisch um eine "Verknüpfung" auf ein Verzeichnis zu erstellen.

Bedienung:
Soll auf ein Verzeichnis ein Substlaufwerk angelegt werden, muss sich das aktuelle Fenster von TC auch in diesem befinden. Wird nun die Funktion für Verbinden aufgerufen, erscheint ein Kontextmenü in dem mit Maus/Tastatur/Buchstabe das gewünschte Laufwerk ausgewählt werden kann. Nachdem dieses ausgewählt wurde, ist das Laufwerk auch bereits aktiv/vorhanden.

Beim Trennen des Laufwerkes gilt im Prinzip das gleiche wie bei Verbinden. Hierbei ist es jedoch völlig egal, an welcher Stelle des Verzeichnisbaumes sich das aktuelle TC Fenster befindet. Wichtig ist nur, dass auch das Laufwerk im Fenster steht, welches getrennt werden soll.

Bekannte Probleme bei dieser Integration in TC:
  • Das Anlegen von Netz-Laufwerken funktioniert nicht. Warum, ist mir z.Z. noch unklar.
  • Nach dem Trennen erscheint die übliche TC Meldung dass das Laufwerk nicht gefunden wurde. Esc und gut ist.


in diesem Sinne, fröhliches "substen" mit TC. :wink:
Luke 'GTH' Filewalker
may the backup be with you - always

# 14630 Single user licence
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

Tach auch! ;)

Ab TC 7 geht das alles einfacher, dank der benutzerdefinerten Kommandos. Einfach das folgende in der usercmd.ini (gleiches Verzeichnis wie wincmd.ini) abspeichern und die Pfade anpassen:

Code: Select all

[em_XSubst_Connect]
button=<path>\XSubst.exe
cmd=<path>\XSubst.exe
param=/set=%P%N

[em_XSubst_Disconnect]
button=<path>\XSubst.exe
cmd=<path>\XSubst.exe
param=/cut=%A
Anschließend kann man sich für die beiden Kommandos beliebige Hotkeys oder Aliase zuweisen, beispielsweise xs für's Verbinden und xsd für's Trennen:

Laufwerk verbinden:
1. Gewünschtes Verzeichnis markieren
2. xs {Enter}

Laufwerk trennen:
xsd {Laufwerksbuchstabe}

Es ist auch möglich, die em_Kommandos wie gewohnt ins Startmenü einzutragen oder aber auch direkt ins normale Menü durch Editieren der verwendeten Menüdatei (WCMD_DEU.MNU z.B.).

Es wäre schön, wenn Du eine Möglichkeit einbauen würdest, das gewünschte Laufwerk direkt beim Verbinden per Kommandozeile zu übergeben, so daß man sich die manuelle Auswahl auch sparen kann, also sowas:
xsubst.exe /set=<path> /drive=<driveletter>

Du hast die Parameter leider nicht dokumentiert, sonst hätte ich Dir das schon während des Betatests vorgeschlagen. ;)

CTRL+ALT+F5 ist übrigens wenig praktikabel im TC, weil das der Shortcut fürs Packen im gleichen Verzeichnis ist (falls aktiviert).

Icfu
This account is for sale
User avatar
Luke_Filewalker
Junior Member
Junior Member
Posts: 47
Joined: 2003-11-05, 10:30 UTC

Post by *Luke_Filewalker »

Hi
icfu wrote:Tach auch! ;)

Ab TC 7 geht das alles einfacher, dank der benutzerdefinerten Kommandos.
Na das ist ja vom Feinsten! :D Das ermöglicht eine ganze Reihe neuer Funktionen.
Es wäre schön, wenn Du eine Möglichkeit einbauen würdest, das gewünschte Laufwerk direkt beim Verbinden per Kommandozeile zu übergeben, so daß man sich die manuelle Auswahl auch sparen kann, also sowas:
xsubst.exe /set=<path> /drive=<driveletter>
Abgesehen davon das sich mir der Sinn Deines Vorschlages gerade nicht offenbart, übersiehst Du etwas: XSubst prüft welche Laufwerksbuchstaben tatsächlich zur Verfügung stehen und bietet auch nur diese an. Beispielsweise ein deaktiviertes Substlaufwerk, dessen Laufwerksbuchstabe steht zwar für echte Laufwerke wie USB-Sticks zur Verfügung, aber natürlich nicht für Substlaufwerke.

Erklär mir bitte wo das Sinn machen könnte.
Du hast die Parameter leider nicht dokumentiert, sonst hätte ich Dir das schon während des Betatests vorgeschlagen. ;)
Diese Befehle wurden mit Absicht nicht dokumentiert, da sie eigentlich zur SCE gehören und diese sowieso von XSubst eingerichtet werden muss. Infolgedessen sind sie für den Benutzer auch nicht interessant (gewesen). Erst jetzt, nachdem mir die Idee kam die SCE für die Integration in TC zu verwenden, sind sie interessant und werden auch in einer eigenen Total Commander Sektion in der Hilfe der nächsten Version von XSubst aufgeführt.
CTRL+ALT+F5 ist übrigens wenig praktikabel im TC, weil das der Shortcut fürs Packen im gleichen Verzeichnis ist (falls aktiviert).
Das war ja auch nur ein Beispiel. :wink: Wobei, wie aktiviert man das? Diese Funktion könnte ich schon lange brauchen, finde dazu aber nichts in der Dokumentation, weder bei 655 noch bei 7B2
Luke 'GTH' Filewalker
may the backup be with you - always

# 14630 Single user licence
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

Erklär mir bitte wo das Sinn machen könnte.
Ich kann mir nicht eine Situation vorstellen, wo es keinen Sinn macht. Abgesehen davon, daß ich normalerweise weiß, welches Laufwerk frei ist, kann XSubst auch nach der Übergabe des Buchstabens prüfen, ob das Laufwerk frei ist. Es ist ja nur eine OPTION, die der Anwender nutzen kann, keine Pflicht. Wenn kein Buchstabe vorgegeben wird, soll selbstverständlich die Auswahlliste angezeigt werden.
Erst jetzt, nachdem mir die Idee kam die SCE für die Integration in TC zu verwenden, sind sie interessant und werden auch in einer eigenen Total Commander Sektion in der Hilfe der nächsten Version von XSubst aufgeführt.
Ich sehe da keinen Zusammenhang zum TC. Die Kommandozeile funktioniert genausogut ohne TC.
Wobei, wie aktiviert man das?
Trag das in die wincmd.ini ein, zusätzlich kannst Du dann mittels Strg+Alt+Shift die Verschieben-Checkbox setzen:

Code: Select all

CA+F5=cm_PackFiles
CAS+F5=cm_PackFiles
Das ist hartkodierter Nonsens, den man nur aus der HISTORY.TXT oder halt übers Forum erfährt, wie so vieles... Alle Versuche, ghisler zu einer ausführlichen Dokumentation zu veranlassen, sind leider gescheitert. Aber was soll's, die Supporter haben ja genug Zeit...

Falls noch Rückfragen sind, am besten im XSubst-Forum oder per Mail. Ich verabschiede mich mangels Entwicklerfeedback zu meinen Bugreports und Vorschlägen aus dem TC-Betatest, meine Nerven liegen blank und mit meiner Zeit kann ich sinnvolleres anstellen, als mich ignorieren zu lassen. ;)

Bis denne

Icfu
User avatar
Luke_Filewalker
Junior Member
Junior Member
Posts: 47
Joined: 2003-11-05, 10:30 UTC

Post by *Luke_Filewalker »

icfu wrote:
Erklär mir bitte wo das Sinn machen könnte.
Ich kann mir nicht eine Situation vorstellen, wo es keinen Sinn macht. Abgesehen davon, daß ich normalerweise weiß, welches Laufwerk frei ist, kann XSubst auch nach der Übergabe des Buchstabens prüfen, ob das Laufwerk frei ist. Es ist ja nur eine OPTION, die der Anwender nutzen kann, keine Pflicht. Wenn kein Buchstabe vorgegeben wird, soll selbstverständlich die Auswahlliste angezeigt werden.
Mal sehen, überzeugt bin ich noch nicht.
Ich sehe da keinen Zusammenhang zum TC. Die Kommandozeile funktioniert genausogut ohne TC.
Natürlich funktioniert sie ohne TC. Dieser Befehle sind aber SCE-Befehle und sollen (sollten) auch ausschliesslich über die SCE verwendet werden. Denn diese wendet die Befehle in klar definierter Form an, ohne Abweichungen. Wenn sie aber nun auch per Kommandozeile eingesetzt werden, kann da sonst was an Parameter übergeben werden. Sprich: Ich muss hier erst noch Kontrollroutinen einbauen die Blödsinn verhindern. Darum wurden die Befehle nie erwähnt. Klar soweit?
Trag das in die wincmd.ini ein, zusätzlich kannst Du dann mittels Strg+Alt+Shift die Verschieben-Checkbox setzen:

Code: Select all

CA+F5=cm_PackFiles
CAS+F5=cm_PackFiles
Funktioniert. Das ist EXTREM praktisch! Danke für Deinen Tip. 8)
Das ist hartkodierter Nonsens, den man nur aus der HISTORY.TXT oder halt übers Forum erfährt, wie so vieles... Alle Versuche, ghisler zu einer ausführlichen Dokumentation zu veranlassen, sind leider gescheitert. Aber was soll's, die Supporter haben ja genug Zeit...
Mir allerdings auch ein Rätsel warum das nicht als reguläre Funktion integriert ist, wenn es sie ja eh schon gibt und zudem extrem praktisch ist.
Falls noch Rückfragen sind, am besten im XSubst-Forum oder per Mail. Ich verabschiede mich mangels Entwicklerfeedback zu meinen Bugreports und Vorschlägen aus dem TC-Betatest, meine Nerven liegen blank und mit meiner Zeit kann ich sinnvolleres anstellen, als mich ignorieren zu lassen. ;)
Hmm ok. Ich hab gerade sowieso die nächste Version in Arbeit. ;) Gerade in Bezug auf TC gibt's folgende Änderungen/Neue Funktionen:
  • Subst- und Netz-Laufwerke über SCE (Shell Context Extension) lassen sich nun getrennt von der XSubst GUI konfigurieren. Es gibt für XSubst und SCE also getrennte Konfigbereiche.
  • Da ich mit der SCE nun offiziell TC unterstütze, wird diese in einigen Punkten angepasst. u.a. bau ich Kontrollroutinen ein um das zu überprüfen, was über TC kommt.
  • Konfiguration wird umgebaut. Zum einen andere Aufteilung zum anderen gibts dann Registerkarten.
  • Ausserdem versuche ich herauszufinden, warum das einrichten von Netzlaufwerken über TC nicht geht.
Ich werd im geschlossenen Betaforum vermutlich heute eine Beta davon online stellen, die kannste dann probieren. Alles weitere dort.
Luke 'GTH' Filewalker
may the backup be with you - always

# 14630 Single user licence
User avatar
raeubi
Power Member
Power Member
Posts: 575
Joined: 2003-11-25, 09:01 UTC
Location: Rhein/Main

Post by *raeubi »

OT
meine Nerven liegen blank
... lese das mit Schrecken, :shock:
na dann mach' erst mal richtig "Urlaub" :wink:

/OT
Räubi
(#2852 + #287609)
User avatar
Luke_Filewalker
Junior Member
Junior Member
Posts: 47
Joined: 2003-11-05, 10:30 UTC

Post by *Luke_Filewalker »

Das mit den Netzlaufwerken hat sich erledigt, war nur ein ganz simples Problem: TC übergibt Pfade mit abschliessendem Backslash, dass wird nun einfach rausgefiltert und schon lassen sich im TC auch Netz-Laufwerke anlegen/trennen und das weitaus komfortabler und schneller als Windows das bietet. :wink:

Auch die anderen Änderungen sind fertig, im Moment teste ich alles nochmal gründlich aus, dann wird die V2.1 freigegeben. Neu ist dann auch eine zusätzliche Sektion in der Hilfe, die sich mit der Integration in andere Programme beschäftigt. Aufgeführt ist jetzt erstmal natürlich der TC.

Allgemein ist die SKE (Shell Kontext Erweiterung) ab V2.1 nun auch prinzipiell für andere Programme ausgelegt.
Luke 'GTH' Filewalker
may the backup be with you - always

# 14630 Single user licence
User avatar
Luke_Filewalker
Junior Member
Junior Member
Posts: 47
Joined: 2003-11-05, 10:30 UTC

Post by *Luke_Filewalker »

RELEASE 2.1

Nun also mit offizieller Unterstützung für Total Commander. Damit hat man nun auch unter TC Subst- und Netz-Laufwerke voll im Griff.

In der Onlinehilfe:Anhang/Integration in andere Programme

findet sich nun eine überarbeitete Version dieser Anleitung inklusive zusätzlichen Infos bez. TC

Alle mir bekannten Probleme der SKE in Verbindung mit TC wurden gelöst. z.B. Netzlaufwerke sind kein Problem mehr. Ausserdem können die Optionen "Laufwerke automatisch permanent anlegen" und "Automatisch Verknüpfung auf Desktop anlegen" nun unabhängig von der XSubst GUI festgelegt werden und damit z.B. auch explizit für den TC.

Hier die relevanten Änderungen:

Code: Select all

2.1 5.12.06
-----------
* RELEASE
* SKE: Konvertierung des Konstrukts (Beschreibung)+(Computername) robuster
  gestaltet.
* Sprachvariable author_version hinzugefügt, damit der Autor des jeweiligen
  Languagepacks kennzeichnen kann, für welche XSubst Version es geschrieben
  wurde.

2.0.26 BETA 2.1 4.12.06
-----------------------
* SKE: Bei Netzwerk-Freigaben die von TC übergeben werden, wird jetzt das
  Konstrukt (Beschreibung)+(Computername) in einen gültigen UNC Pfad gewandelt.
* SKE: Sind keine verfügbaren Laufwerksbuchstaben mehr frei, wird dies nun auch
  gemeldet.
* Die Einstellung "Warnhinweise bei Trennungen" ist nun separat für GUI und SKE
  verfügbar.

2.0.14 BETA 2.1 2.12.06
-----------------------
* SKE: Mehr ein Schönheitsfehler als ein Bug: Wurde über die SKE ein Netz-
  Laufwerk eingerichtet, übernahm er nur den Shortpath in die Laufwerksliste,
  ebenso in den Tooltip der Desktopverknüpfung. Auch hier wird jetzt konsequent
  der Longpath verwendet.
* SKE: Jetzt ist es auch möglich Netz-Laufwerke zu trennen.
* SKE: Für TC weiter überarbeitet. Jetzt kann z.B. auch der Aufruf /set="%P%N"
  verwendet werden, um das Verzeichnis unter dem Cursor mit einem Subst- oder
  Netz-Laufwerk zu verbinden. Damit muss nicht mehr ins Verzeichnis gewechselt
  werden vor dem verbinden. Wird mit dem Aufruf kein Verzeichnis sondern eine
  Datei übergeben, wird automatisch der Pfad dieser Datei ermittelt.

2.0.10 BETA 2.1 1.12.06
-----------------------
* Bugfix: Wurde über SKE ein Netz-Laufwerk eingerichtet und die Option für
  automatische Desktopverknüpfung war aktiv, übernahm er nicht den Netzwerk-Pfad
  in den Tooltip, sondern nur den Laufwerksbuchstaben.
* SKE: Für externe Aufrufe, wie z.B. über Total Commander, überarbeitet und
  rudimentäre Kontroll- und Konvertier-Routinen eingebaut.
* SKE: Nun können auch problemlos Netz-Laufwerke über TC eingerichtet werden.
  Schuld war ein \ am Ende des von TC übergebenen Pfades.
* Subst- und Netz-Laufwerke können nun getrennt nach GUI und SKE konfiguriert
  werden.
* Konfiguration neu gruppiert und auf Registerkarten verteilt.
* Win Vista wird nun auch erkannt, dies ist aber z.Z. noch nicht wichtig.
Luke 'GTH' Filewalker
may the backup be with you - always

# 14630 Single user licence
User avatar
Luke_Filewalker
Junior Member
Junior Member
Posts: 47
Joined: 2003-11-05, 10:30 UTC

Windows Vista

Post by *Luke_Filewalker »

Hallo

Ich habe nochmals XSubst intensiv mit Vista (RC2) getestet. Um die Probleme mit der UAC (Benutzerkontensteuerung) zu lösen (besser: umgehen) habe ich im GTH Board ein Workaround veröffentlicht.

Workaround XSubst und UAC
Luke 'GTH' Filewalker
may the backup be with you - always

# 14630 Single user licence
User avatar
Luke_Filewalker
Junior Member
Junior Member
Posts: 47
Joined: 2003-11-05, 10:30 UTC

Post by *Luke_Filewalker »

V2.2 RELEASE

1) Primär die INI Fans dürften sich über das stark verbesserte Handling der Konfigurationsdateien freuen, welches für mehr Flexibilität sorgt. Die Registry Verwaltung wurde dafür komplett gestrichen. 2) Zudem ist es nun über Tweaks einfacher XSubst portabel auf USB Stick einzurichten, da XSubst nun sowohl eine zentrale als auch eine benutzerabhängige INI kennt (wie TC ja auch). 3) Eine optionale LED Leiste zeigt schnell und übersichtlich den Zustand jedes Laufwerkes an. 4) Francais.lng hinzugefügt. 5) Bei einer Sprachänderung wird die Sprache jetzt sofort geladen ohne das ein Neustart von XSubst nötig wäre.

Die genauen Details bitte der history entnehmen.
Luke 'GTH' Filewalker
may the backup be with you - always

# 14630 Single user licence
Post Reply