title image


Smiley Nachtrag
Hallo,



hab jetzt meine Klasse wieder etwas abgeändert:









Public Class ssh

  Private Shared sshInstance As ssh = Nothing

  Private Shared sshTaskID As Integer = 0

  Private Shared errCode As errDesc



  Enum errDesc

    filenotfound

    dirnotfound

    fallbackexception

  End Enum



  Private Sub New()

  End Sub



  Private Shared ReadOnly Property Instance(ByVal path As String, ByVal user As String, ByVal password As String, ByVal remoteHost As String, Optional ByVal localHost As String = "localhost", Optional ByVal localPort As Integer = 3306, Optional ByVal remotePort As Integer = 3306, Optional ByVal batchmode As Boolean = True) As ssh

    Get

      If (sshInstance Is Nothing) Then

        Try

          Dim sshTempShellCommand As String

          sshTempShellCommand = path & " -ssh"

          sshTempShellCommand += " -l " & user

          sshTempShellCommand += " -pw " & password

          sshTempShellCommand += " -L " & remotePort & ":" & localHost & ":" & localPort

          If (batchmode = True) Then

            sshTempShellCommand += " -batch"

          End If

          sshTempShellCommand += " " & remoteHost

          sshTaskID = Shell(sshTempShellCommand, AppWinStyle.Hide)

        Catch ex As Exception

          'errCode = errDesc.entpsrechenderErrorCode

          Return Nothing

          Exit Property

        End Try

        sshInstance = New ssh()

      End If

      Return sshInstance

    End Get

  End Property



  Enum sshState

    started

    stopped

    filenotfound

    dirnotfound

    fallbackexception

  End Enum



  Public Shared Function sshStart(ByVal path As String, ByVal user As String, ByVal password As String, ByVal remoteHost As String, Optional ByVal localHost As String = "localhost", Optional ByVal localPort As Integer = 3306, Optional ByVal remotePort As Integer = 3306, Optional ByVal batchmode As Boolean = True) As sshState

    Dim x As ssh = ssh.Instance(path, user, password, remoteHost, localHost, localPort, remotePort, batchmode)

    Return sshState.started

  End Function



  Protected Overrides Sub Finalize()

    If Not (sshTaskID = 0) Then

      Dim proc As Process = Process.GetProcessById(sshTaskID)

      proc.Kill()

      sshTaskID = 0

    End If

    MyBase.Finalize()

  End Sub

End Class







Code eingefügt mit Syntaxhighlighter 4.0







die sshStop-Methode hab ich in die Finalize-Sub verpackt. Damit hab ich den Destruktor behandelt. Der Konstruktor muss leer bleiben.



Was ich trotz Suche im Netz und in der MSDN nicht gefunden habe ist ein Kopier-Konstruktor für VB. Gibt's den Überhaupt (und wozu zum Teufel ist der Gut?).



mfg glitzi

"Ich glaube, manchmal gibt es einfach nicht genug Steine"

Forrest Gump



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: