Hallo Juerg,

so ganz habe ich das noch nicht verstanden. Sicherlich ist das nur ein Codeausschnitt, denn wo legst du "eoSSHTunnelFile" fest?

Klemens
Am 27.10.2009 um 20:20 schrieb Juerg Raess:

Hi,

hat einer schon mal plink erfolgreich in RB eingebunden? (plink = SSH
Support unter Windows)

Klemens

ja, habe ich ;-)
ich baue mit plink.exe einen SSH-tunnel zu einem server auf, um "dort" auf eine MySQL-datenbank zuzugreifen.

mehr oder weniger klappts so:

1) plink.exe als Ressource ins RB-projekt eingebunden -> in ein temporäres verzeichnis schreiben, dann dort starten
     dim str As BinaryStream
     str = eoSSHTunnelFile.CreateBinaryFile(fltBIN.MyShell)
     str.Write plink
     str.Close

2) oder die plink.exe mitliefern, und als FolderItem holen:
       eoSSHTunnelFile = f.Parent.Child("plink.exe")


3) aufrufen - hier mit einem beispiel, einen SSH-tunnel zu öffnen:
     if (eoSSHTunnelFile <> nil) and eoSSHTunnelFile.Exists then
       eoSSHTunnel = New Shell
       eoSSHTunnel.Mode = 1
eoSSHTunnel.Execute eoSSHTunnelFile.ShellPath + " -x -a -T - pw " + DecodeString("XYZ") + " " + DecodeString("ABC") + " -L " + MySQL_Port + ":localhost:3306"
       'App.SleepCurrentThread(1500) 'Testen, ob's auch ohne geht...
       if eoSSHTunnel.ErrorCode <> 0 then
msgbox "SSHTunnel - Error Code: " + str (eoSSHTunnel.ErrorCode)
       end if
     else
       msgbox "SSHTunnel - Error Code: " + str(eoSSHTunnel.ErrorCode)
     end if

   catch err As RuntimeException
     eoSSHTunnelFile = nil
'if (eoSSHTunnelFile <> nil) and (eoSSHTunnelFile.Exists) then eoSSHTunnelFile.Delete
   End Try


ich habe es schon lange nicht mehr gebraucht - so kann ich wohl nicht viele tipps geben...
erinnern tue ich mich noch an folgendes:
ich musste plink zuerst 1x von hand im cmd.exe starten.
denn beim ersten aufruf musste ich mit "y" bestätigen... das habe ich wohl nicht in der RB-shell gemacht.


vielleicht gibt das ja doch eine idee, wie's funktionieren könnte.
wie gesagt - habe nur den ssh-tunnel gebraucht. sonst habe ich dann keine kommandos via plink abgesetzt, oder die "resultate" der shell gelesen und weiterverwendet...

jürg



Mit freundlichen Grüßen

Klemens Klarhoelter-Selbst
kNetSoft UG (haftungsbeschränkt)
[email protected]











Antwort per Email an