Tabs und FTP-Verbindungen

Aus TCWikide
Wechseln zu: Navigation, Suche

Es sollen (z.B. per Knopfdruck) ftp-Verbindungen geöffnet werden und Tabs aus einer *.tab-Datei geöffnet werden. Das ist sinnvoll, wenn gespeicherte und benannte ftp-Verbindungen existieren, bei denen login und Passwort gespeichert sind. In der *.ini oder der *.tab-Datei sind die ftp-Verbindungen mit Nutzer, aber ohne Passwort gespeichert.

Das vorliegende Makro holt den Commander in der Vordergrund, öffnet 5 ftp-Verbindungen und erstellt die Tabs wie sie in einer Datei gespeichert sind. Der Code kann in eine Textdatei kopiert werden. Die Variablen der "Vriablendeklaration" müssen je nach den Bedürfnissen angepasst werden. Die Dokumentation steht als Kommentare direkt im Script. Wenn der Datei die Endung "vbs" gegeben wird, ist das Script per Doppelklick ausführbar oder kann einem Button zugewiesen werden.

 ' #########################################################################
 ' VBS Makro zur Fernsteuerung des Total Commander
 ' Autor: Thomas Köhler, Jena
 ' Historie am Ende der Datei
 ' Public Version - Darf von jedem beliebig verwendet und verändert werden
 ' Keine Haftung für Programmierfehler
 '
 ' Alternative Vorgehensweise: 
 ' Benötigten Befehlen werden Tastenkombinationen zugewiesen
 ' Sendkeys sendet nur die Tastenkombinationen
 ' #########################################################################
 '
 Dim Shell
 Dim Programmname, Suche
 Dim i, TabVerz, TabDatei
 '
 ' ************************
 ' * Variablendeklaration *
 ' ************************
 ' Titel des Programmes in der Leiste
 Programmname = "Total Commander 7.01 - Registriername"
 '
 ' FTP-Verbindung: 
 ' * FTP-Verbindung incl. Login und Passwort erstellen
 ' * FTP-Verbindung benannt speichern
 ' * Eintrag "Name der FTP-Verbindung"
 '     Beispiel FTP(1) = "UPMC vda-Daten"
 ' * Dim-Eintrag: richtige Anzahl eintragen
 '
 Dim FTP(5)
 FTP(1) = "mein FTP 1"
 FTP(2) = "mein FTP 2"
 FTP(3) = "mein FTP 3"
 FTP(4) = "mein FTP 4"
 FTP(5) = "mein FTP 5"
 '
 ' TabDatei:
 ' * Tabulatoren erstellen, benennen und evtl. sperren
 ' * Tabulatoren beider Seiten in Datei speichern
 ' * Dateiname hier eintragen
 TabVerz = "c:\Programme\totalcmd\Steuerung\"
 TabDatei = "Wintabs.tab"
 '
 ' Schnellsuche im Commander:
 ' "^%" -> Ctrl-Alt
 ' "%"  -> Alt
 Suche = "^%"
 '
 Wartezeit = 4000
 '
 ' **********************
 ' *    Makrostart      *
 ' * Version 10.07.2007 *
 ' **********************
 '
 ' Fokus auf Commander
 Set Shell = CreateObject("Wscript.Shell")
 Shell.appActivate Programmname
 '
 ' alte Verbindungen schließen
 For i = 1 to 12
   Shell.sendkeys "^F"
 Next
 '
 ' alte Tabs schließen
 ' Vorgehensweise schließt auch gesperrte Tabs
 Shell.sendkeys "^t^{TAB}"
 For i = 1 to 15
   Shell.sendkeys "^wj{ESC}"
   WScript.Sleep(50)
 Next
 Shell.sendkeys "{TAB}"
 Shell.sendkeys "^t^{TAB}"
 For i = 1 to 15
   Shell.sendkeys "^wj{ESC}"
   WScript.Sleep(50)
 Next
 '
 ' Verbindungen aufbauen
 For i = LBound(FTP) + 1 to UBound(FTP)
   Shell.sendkeys "^fn{HOME}"
   WScript.Sleep(50)
   Shell.sendkeys FTP(i) & "~"
   WScript.Sleep(Wartezeit)
 ' Verbindung abwarten
 ' Wenn Probleme bei der Verbindung auftreten, 
 ' wird dem Server ein Abbruch geschickt bzw. 
 ' Fehlermelungen mit Esc geschlossen. Bei 
 ' korrekt geöffneter Verbindung hat Esc keine 
 ' Wirkung
   Shell.sendkeys "{ESC}"
   WScript.Sleep(2500)
   Shell.sendkeys "{ESC}"
   WScript.Sleep(500)
   Shell.sendkeys "{ESC}"
   WScript.Sleep(500)
 Next
 '
 ' Tabulatordatei öffnen
 ' Realisiert über Wechsel in das Verzeichnis und 
 ' Schnellsuche + Enter. Gespeicherte Tabs werden zu den 
 ' bestehenden Tabs zugefügt, daher am Ende diese Tabs
 ' schließen
 '
 Shell.sendkeys "%{F1}" & Left(TabVerz, 1)
 WScript.Sleep(50)
 Shell.sendkeys "cd " & TabVerz & "\{BS}~"
 WScript.Sleep(50)
 Shell.sendkeys Suche & TabDatei & "~"
 WScript.Sleep(50)
 '
 ' Ursprungs-Tabs schließen
 Shell.sendkeys "^wj{ESC}{TAB}^wj{ESC}{TAB}"
 '
 Set Shell = Nothing
 '
 MsgBox "FTP-Verbindungen geöffnet, TABs erstellt!"
 '
 ' *****************************************************
 ' Versionshistorie
 ' Version: 12.07.2007
 ' Kommentare ausgebaut, Public-Version erstellt
 '
 ' Version: 10.07.2007
 ' erste Version