Hallo,
Ich bin seit ca. 1,5 Monaten dabei mit Visual Basic zu programmieren und stehe vor einem für mich nicht lösbaren Problem.
Problembeschreibung:
Ich programmiere eine Datenbank die mit einer Datenquelle im Internet (MySQL Server) per SSH-Tunneling verbunden ist. Ich kann jedoch nur auf die Datenbank zugreifen, wenn ich mit dem Programm "PUTTY" die SSH-Tunnelverbindung öffne, daraufhin funktioniert in der Programmierten Anwendung alles so wie es soll. Nun ist mir der Schritt (= Putty starten, Serverkonfiguration laden, Button klicken um Tunneling zu aktivieren) vor jedem Applikationstart zu aufwendig. Mein Ziel: Automatisch beim öffnen der programmierten Applikation das Programm "PUTTY" ebenso öffnen, die Serverkonfiguration automatisch laden und somit automatisch die Verbindung tunneln.
-Meine Lösung:
Ich habe eine Batch Datei (.bat) geschrieben, die sich im gleichen Ordner wie "PUTTY" befindet und beim ausführen automatisch die Serverkonfiguration lädt und eine SSH-Tunnelverbindung herstellt (mit "plink") aber auch das aufrufen der Batch-Datei möchte ich automatisieren.
-Problem hierbei:
Ich habe per versucht die Batch-Datei zu starten, auch mit Erfolg, jedoch kann der in der Batch-Datei befindliche Code nicht korrekt ausgeführt werden, da die Datei nicht den Pfad des Programms, auf das es zugreift, kennt.
Code in der Batch (plink.bat):
Da die Batch-Datei aus dem selben Ordner wie "plink" gestartet wird, kann sie ausgeführt werden. Sobald sie per Shell in Vb ausgeführt wird, ist sie nicht mehr im selben Verzeichnis und findet daher nicht mehr das Programm.
-Frage 1: (Wenn diese Methode funktioniert, kann ich Methode 2 weglassen)
Ist es möglich den Code aus der Batch in Visual Basic zu übernehmen, sodass ich die .bat-Datei weglassen kann?
-Frage 2:
Wenn ich die .bat-Datei nicht weglassen kann, ist es möglich sie im Hintergrund zu starten, sodass sie vom Benutzer nicht gesehen wird?
-Frage 3:
Wie lautet der Code um die gerade geöffnete Batch-Datei nach erfolgreichem öffnen beim Verlassen der Applikation wieder zu schließen?
Ich bin für jede Hilfe dankbar, da ich mir jetzt schon seit mehreren Tagen den Kopf zerbreche, wie mein Verlangen zu realisieren ist.
Edit:
Lösung für die oben genannte Beschreibung.
Der Code der Batch (.bat)-Datei muss ein wenig umgeändert werden
VB2010-Code:
Batch-Code:
Somit startet schonmal die Batch bei Applikation start!
Ich bin seit ca. 1,5 Monaten dabei mit Visual Basic zu programmieren und stehe vor einem für mich nicht lösbaren Problem.
Problembeschreibung:
Ich programmiere eine Datenbank die mit einer Datenquelle im Internet (MySQL Server) per SSH-Tunneling verbunden ist. Ich kann jedoch nur auf die Datenbank zugreifen, wenn ich mit dem Programm "PUTTY" die SSH-Tunnelverbindung öffne, daraufhin funktioniert in der Programmierten Anwendung alles so wie es soll. Nun ist mir der Schritt (= Putty starten, Serverkonfiguration laden, Button klicken um Tunneling zu aktivieren) vor jedem Applikationstart zu aufwendig. Mein Ziel: Automatisch beim öffnen der programmierten Applikation das Programm "PUTTY" ebenso öffnen, die Serverkonfiguration automatisch laden und somit automatisch die Verbindung tunneln.
-Meine Lösung:
Ich habe eine Batch Datei (.bat) geschrieben, die sich im gleichen Ordner wie "PUTTY" befindet und beim ausführen automatisch die Serverkonfiguration lädt und eine SSH-Tunnelverbindung herstellt (mit "plink") aber auch das aufrufen der Batch-Datei möchte ich automatisieren.
-Problem hierbei:
Ich habe per versucht die Batch-Datei zu starten, auch mit Erfolg, jedoch kann der in der Batch-Datei befindliche Code nicht korrekt ausgeführt werden, da die Datei nicht den Pfad des Programms, auf das es zugreift, kennt.
Code in der Batch (plink.bat):
Da die Batch-Datei aus dem selben Ordner wie "plink" gestartet wird, kann sie ausgeführt werden. Sobald sie per Shell in Vb ausgeführt wird, ist sie nicht mehr im selben Verzeichnis und findet daher nicht mehr das Programm.
-Frage 1: (Wenn diese Methode funktioniert, kann ich Methode 2 weglassen)
Ist es möglich den Code aus der Batch in Visual Basic zu übernehmen, sodass ich die .bat-Datei weglassen kann?
-Frage 2:
Wenn ich die .bat-Datei nicht weglassen kann, ist es möglich sie im Hintergrund zu starten, sodass sie vom Benutzer nicht gesehen wird?
-Frage 3:
Wie lautet der Code um die gerade geöffnete Batch-Datei nach erfolgreichem öffnen beim Verlassen der Applikation wieder zu schließen?
Ich bin für jede Hilfe dankbar, da ich mir jetzt schon seit mehreren Tagen den Kopf zerbreche, wie mein Verlangen zu realisieren ist.
Edit:
Lösung für die oben genannte Beschreibung.
Der Code der Batch (.bat)-Datei muss ein wenig umgeändert werden
VB2010-Code:
Batch-Code:
Somit startet schonmal die Batch bei Applikation start!
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „saw1989“ ()