Hallo,
ich bin zurzeit dabei einen SSH Client zu programmieren. Mein Problem ist im Moment, dass ich in einem eigenen Thread den Inhalt des SSH Streams abfrage und in einen String schreibe. Nun möchte ich aber, dass dieser String in eine RichTextBox kopiert wird, undzwar nicht indem ich auf einen Button klicke. Wie schaffe ich das, da ich aus einem anderen Thread ja nicht auf die Form zugreifen kann?
Mein Programm bis jetzt:
Spoiler anzeigen
Vielen Dank schonmal im Voraus!
ich bin zurzeit dabei einen SSH Client zu programmieren. Mein Problem ist im Moment, dass ich in einem eigenen Thread den Inhalt des SSH Streams abfrage und in einen String schreibe. Nun möchte ich aber, dass dieser String in eine RichTextBox kopiert wird, undzwar nicht indem ich auf einen Button klicke. Wie schaffe ich das, da ich aus einem anderen Thread ja nicht auf die Form zugreifen kann?
Mein Programm bis jetzt:
Quellcode
- Option Strict On
- Imports Tamir.SharpSsh
- Public Class Form1
- Dim ssh As SshStream
- Dim stream As String
- Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
- ssh.Close()
- End Sub
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Dim readthread As System.Threading.Thread
- readthread = New System.Threading.Thread(AddressOf Me.readStream)
- readthread.Start()
- End Sub
- Private Sub btn_connect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_connect.Click
- Try
- ssh = New SshStream(tb_adress.Text, tb_username.Text, tb_password.Text)
- Catch ex As Exception
- MsgBox(ex.Message)
- End Try
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
- RichTextBox1.Text = stream
- End Sub
- Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles tb_cmd.KeyUp
- If e.KeyCode = Keys.Enter Then
- ssh.Write(tb_cmd.Text)
- End If
- End Sub
- Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- If ssh.CanRead = True Then
- RichTextBox1.Text = ssh.ReadResponse
- End If
- End Sub
- Private Sub readStream()
- While True
- Try
- stream = ssh.ReadResponse
- Catch
- End Try
- End While
- End Sub
- End Class
Vielen Dank schonmal im Voraus!