[100%ig gelöst] USB Kabel Verbindung

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
User avatar
raeubi
Power Member
Power Member
Posts: 575
Joined: 2003-11-25, 09:01 UTC
Location: Rhein/Main

[100%ig gelöst] USB Kabel Verbindung

Post by *raeubi »

Danksagungen:

Mein Dank geht an Dalai für die Idee und an Uwe Sieber für die sehr schnelle Unterstützung durch das USBDLM Update!
Danke auch an Chr. Ghisler für die Info zur TCUsbRun.exe!


Ausgangspunkt war ein Wunsch zur TC USB Kabelverbindung:

Bei der USB Kabel Verbindung zwischen 2 Rechnern soll, der "TC USB Server" automatisch im Hintergrund starten, wenn das USB Kabel Verbindungskabel angesteckt wird.
Der Start des TC könnte auch von einer Verküpfung aus mit Kommandozeilenparametern erfolgen. Hauptsache der "TC USB Server" wird ohne weitere Rückfragen gestartet und wartet dann auf eingehende Verbindungen.

Fallbeispiel:

USB Verbindungskabel an Home-PC ==> Kabel wird erkannt, der "TC USB Server" startet automatisch (oder ist beim Systemstart bereits gestartet worden) und wartet auf eingehende Verbindungen.
Anderes Ende des USB Verbindungskabel wird an ein Netbook angesteckt, dann wird der TC auf dem Netbook (nicht automatisch) gestartet und die USB Verbindung als Client geöffnet.
Ich kann mit dem Datenaustausch loslegen, da der "TC USB Server" auf dem anderen Rechner bereits läuft.



Es gibt zwei Lösungswege.

1.) Die TC integrierte Variante mit der TCUsbRun.exe. Diesen Weg hab ich nicht näher betrachtet, da für diese Lösung Windows Autoplay aktiviert sein muss, das in meinem Fall immer deaktiviert ist.


2.) Die Variante zwei nutzt die TC Kommandozeilen Optionen und ein externes Tool:

2.a) Manueller Start via TC Kommandozeile:

Code: Select all

c:\Tools\wincmd\TOTALCMD.exe /i=c:\Tools\wincmd\TCUSBsrv.ini /S=P:USB
Diese Befehlszeile kann man z.B. in einer Verknüpfung (oder TC-Button, TC-em_-Kommando, etc.) verwenden.
Dadurch wird der TC gleich ohne weitere Rückfragen im USB Server Modus gestartet und wartet auf eingehende Verbindungen.

2.b) Automatischer Start mit externem Tool:
Das Tool USBDLM bietet genau die automatische Lösung, die ich brauche.
Dafür muss man das Tool downloaden, installieren und die USBDLM.ini um folgende Sektion erweitern:

Code: Select all

[OnDeviceArrival10]
DeviceID1=usb\vid_050d&pid_258a
delay=2000
open=c:\Tools\wincmd\TOTALCMD.exe /i=c:\Tools\wincmd\TCUSBsrv.ini /S=P:USB
Ein paar Dinge sind dabei zu beachten. Das ist jedoch alles im folgenen Thread erläutert, bzw. in der USBDLM Hilfe beschrieben.
Last edited by raeubi on 2010-10-19, 06:43 UTC, edited 7 times in total.
Räubi
(#2852 + #287609)
User avatar
raeubi
Power Member
Power Member
Posts: 575
Joined: 2003-11-25, 09:01 UTC
Location: Rhein/Main

Post by *raeubi »

Durch den nachträglichen Gedanken mit der Kommandozeile kam ich selbst auf folgende Lösung:

Code: Select all

c:\Tools\wincmd\TOTALCMD.exe /i=USBServer.ini /S=P:USB
So starte ich den TC via Verknüpfung minimiert.

Das ist schon mal ein Teil der Lösung! :D

Das geht jedoch noch nicht automatisch beim Anstecken des Kabels :(
Räubi
(#2852 + #287609)
User avatar
Dalai
Power Member
Power Member
Posts: 9994
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Re: [Wunsch] USB Kabel Verbindung

Post by *Dalai »

raeubi wrote:B.) Wunsch:
Bei USB Kabel Verbindung möchte ich, dass der "TC USB Server" irgendwie automatisch im Hintergrund gestartet wird, wenn das USB Kabel angesteckt wird.
USBDLM (USB Driver Letter Manager) könnte hier helfen. Der kann Aktionen ausführen, wenn ein bestimmtes Gerät eingesteckt wird.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
raeubi
Power Member
Power Member
Posts: 575
Joined: 2003-11-25, 09:01 UTC
Location: Rhein/Main

Post by *raeubi »

Danke für den Tip!

Das Tool hatte ich bereits. Ich war mir dessen Mächtigkeit nur noch nicht bewußt :)

Kurz in der Hilfe geschmöckert und daraufhin die USBDLM.ini erweitert:

Code: Select all

[OnDeviceArrival10]
DeviceID1=usb\vid_050d&pid_258a
delay=2000
open=c:\Tools\wincmd\USBSrv.exe /i=USBServer.ini /S=P:USB
OneInstance=1
Damit wird der TC als USB Datenserver beim Anstecken des Verbindungskabels gestartet.

Folgenden kleinen Workaround musste ich einbauen:
Ich habe die TOTALCMD.exe nach USBSrv.exe kopiert. Diese EXE wird von USBDLM gestartet.

Grund:
Beim Einstecken des Kabels, erkennt USBDLM das Ereignis 2x. Dadurch wird der TC 2x gestartet. Das zweite Mal mit einer Fehlermeldung, weil der USB Port bereits von der ersten TC Instanz belegt ist.
Mit der Option OneInstance=1 kann man zwar den zweiten Programmstart verhindern. Damit wird jedoch auch der Start des TC verhindert, wenn der TC bereits als "normale" Instanz läuft.


Hinweis für Nachnutzer:
Bitte vor der Verwendung die USBDLM Hilfe beachten!

USBDLM.ini-Einstellungen, die ich verwendet habe:
DeviceID1 => muss zum verwendteten Kabel passen (steht in der Hilfe).
delay => habe ich eingebaut, damit der TC USB Server nicht zu fix auf den Port zugreift.
open => hier muss natürlich der Pfad und INI angepasst werden.
OneInstance => habe ich im Kleingedruckten beschrieben.
Räubi
(#2852 + #287609)
Uwe Sieber
Junior Member
Junior Member
Posts: 5
Joined: 2010-10-12, 18:27 UTC

Post by *Uwe Sieber »

Kannst Du bitte mal die USBDLM Logdatei aktivieren?

[Settings]
LogLevel=3
WriteLogFile=1
LogFile=C:\_USBDLM.LOG

Mich würde interessieren, was beim Anschließen des Kabels passiert, ob da wirklich zweimal das selbe Gerät kommt, oder USBDLM vielleicht etwas falsch macht...

mfg

Uwe Sieber
User avatar
raeubi
Power Member
Power Member
Posts: 575
Joined: 2003-11-25, 09:01 UTC
Location: Rhein/Main

Post by *raeubi »

Uwe Sieber wrote:Kannst Du bitte mal die USBDLM Logdatei aktivieren?
Klar, mache ich gerne :)

Ich komme jedoch erst morgen dazu.
Räubi
(#2852 + #287609)
User avatar
raeubi
Power Member
Power Member
Posts: 575
Joined: 2003-11-25, 09:01 UTC
Location: Rhein/Main

Post by *raeubi »

Ich hab das Log an die bekannte Mail Adresse verschickt.
Räubi
(#2852 + #287609)
Uwe Sieber
Junior Member
Junior Member
Posts: 5
Joined: 2010-10-12, 18:27 UTC

Post by *Uwe Sieber »

Vielen Dank für das Logfile!
Da werden tatsächlich zwei Geräte gemeldet. Das ist soweit nicht
ungewöhnlich - bei einem USB-Laufwerke kommt z.B. erst das USB-Gerät,
dann die Disk, dann das Volume. Bei dem Laplink-Kabel kommt auch erst
das USB-Gerät - {a5dcbf10-6530-11d2-901f-00c04fb951ed} ist
GUID_DEVINTERFACE_USB_DEVICE. Das zweite Gerät hat einen DevicePath
der auch nach USB aussieht (\\?\USB#VID_...), endet aber mit
{1eb7cb03-60a9-4d28-934f-4abeeebd0019}, was wohl ein Laplink-
DeviceInterface ist. Merkwürdig ist, dass dieser DevicePath auf ein
und das Selbe Gerät verweist.

device arrival DevPath=\\?\USB#VID_050D&PID_258A#6&1eed20e4&0&4#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
devinst=4376
DeviceID=USB\VID_050D&PID_258A\6&1EED20E4&0&4
device arrival DevPath=\\?\USB#VID_050D&PID_258A#6&1eed20e4&0&4#{1eb7cb03-60a9-4d28-934f-4abeeebd0019}
devinst=4376
DeviceID=USB\VID_050D&PID_258A\6&1EED20E4&0&4

Ich habe mal fix was eingebaut, dass solche Doppelmeldungen erkennt
und somit DeviceArrival nur einmal ausführt, siehe USBDLM-Homepage - die Beta-Version. Links darf ich noch nicht posten...


mfg

Uwe Sieber
User avatar
raeubi
Power Member
Power Member
Posts: 575
Joined: 2003-11-25, 09:01 UTC
Location: Rhein/Main

Post by *raeubi »

@Uwe DANKE!!

Ich habe die neue USBDLM Beta getestet.
Sehr gut, die Doppelmeldungserkennung funktioniert! :)
Der TC wird als USB Server nur einmal gestartet.

Hier noch die aktuelle USBDLM.ini Section:

Code: Select all

[OnDeviceArrival10]
DeviceID1=usb\vid_050d&pid_258a
delay=2000
open=c:\Tools\wincmd\TOTALCMD.exe /i=c:\Tools\wincmd\TCUSBsrv.ini /S=P:USB
Der Workaround mit der der zusätzlichen, umbenamten TC Instanz ist jetzt also nicht mehr notwendig.

Ich übergebe beim Start dieser TC Instanz jetzt zusätzlich nur eine abgespeckte und angepasste TCUSBsrv.ini.
Räubi
(#2852 + #287609)
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50697
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Bei der USB Kabel Verbindung zwischen 2 Rechnern soll, der "TC USB Server" automatisch im Hintergrund starten, wenn das USB Kabel Verbindungskabel angesteckt wird.
Das Tool TCUsbRun.exe macht doch bereits genau das! Sie müssen es nur 1x starten, dann können Sie festlegen, ob der Server oder der Client starten soll.

Das Tool trägt sich hier ein:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\AutoplayHandlers\Handlers\TotalCommanderServer

Im Wert "InitCmdLine" können Sie die an TC übergebenen Parameter eintragen. Beim serv ist das /S=P:USB
Author of Total Commander
https://www.ghisler.com
User avatar
raeubi
Power Member
Power Member
Posts: 575
Joined: 2003-11-25, 09:01 UTC
Location: Rhein/Main

Post by *raeubi »

Hallo Herr Ghisler,
vielen Dank für den Beitrag!
Das Tool TCUsbRun.exe macht doch bereits genau das! Sie müssen es nur 1x starten, dann können Sie festlegen, ob der Server oder der Client starten soll.
Das habe ich als erstes probiert, es passiert jedoch gar nichts! :?
In meinem (jetzt abgeänderten) Eingangsposting bin ich auch auf die TCUsbRun.exe eingegangen.

Bei Ihrem Beitrag fällt mir der Registry-Schlüssel auf, den Sie gepostet haben.

:idea: Genau da liegt das Problem! Autoplay ist auf meinem System deaktiviert!
Ich habe nicht vor, das aus dem Gund zu aktivieren!

BTW ich finde dieser Fakt, dass Autoplay notwendig ist gehört mit in die Hilfe!
Diese Information hätte mir einige Stunden Tests und ein paar graue Haare mehr erspart :wink:
Räubi
(#2852 + #287609)
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50697
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Selbverständlich wird Autoplay benötigt - sonst müsste das Programm ja die ganze Zeit im Hintergrund mitlaufen, und ständig die Ports überwachen...
Author of Total Commander
https://www.ghisler.com
User avatar
raeubi
Power Member
Power Member
Posts: 575
Joined: 2003-11-25, 09:01 UTC
Location: Rhein/Main

Post by *raeubi »

@ghisler(Author) Danke für die Rückmeldung!
Ich habe das Eingangsposting dementsprechend ergänzt.
Räubi
(#2852 + #287609)
Post Reply