mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 22:11:48 +08:00
* removed unneeded Imports * renamed namespace to mRemoteNG * changed Logfile path to %USERPROFILE%\AppData\Local\mRemoteNG\mRemoteNG.log * fixed mRemoteNG.exe.config * added more ignores to .gitignore
544 lines
26 KiB
VB.net
544 lines
26 KiB
VB.net
Imports WeifenLuo.WinFormsUI.Docking
|
|
Imports Tamir.SharpSsh
|
|
Imports System.IO
|
|
Imports System.Threading
|
|
Imports mRemoteNG.App.Runtime
|
|
|
|
Namespace UI
|
|
Namespace Window
|
|
Public Class SSHTransfer
|
|
Inherits UI.Window.Base
|
|
|
|
#Region "Form Init"
|
|
Friend WithEvents pbStatus As System.Windows.Forms.ProgressBar
|
|
Friend WithEvents btnTransfer As System.Windows.Forms.Button
|
|
Friend WithEvents txtUser As System.Windows.Forms.TextBox
|
|
Friend WithEvents txtPassword As System.Windows.Forms.TextBox
|
|
Friend WithEvents txtHost As System.Windows.Forms.TextBox
|
|
Friend WithEvents txtPort As System.Windows.Forms.TextBox
|
|
Friend WithEvents lblHost As System.Windows.Forms.Label
|
|
Friend WithEvents lblPort As System.Windows.Forms.Label
|
|
Friend WithEvents lblUser As System.Windows.Forms.Label
|
|
Friend WithEvents lblPassword As System.Windows.Forms.Label
|
|
Friend WithEvents lblProtocol As System.Windows.Forms.Label
|
|
Friend WithEvents radProtSCP As System.Windows.Forms.RadioButton
|
|
Friend WithEvents radProtSFTP As System.Windows.Forms.RadioButton
|
|
Friend WithEvents grpConnection As System.Windows.Forms.GroupBox
|
|
Friend WithEvents btnBrowse As System.Windows.Forms.Button
|
|
Friend WithEvents lblRemoteFile As System.Windows.Forms.Label
|
|
Friend WithEvents txtRemoteFile As System.Windows.Forms.TextBox
|
|
Friend WithEvents txtLocalFile As System.Windows.Forms.TextBox
|
|
Friend WithEvents lblLocalFile As System.Windows.Forms.Label
|
|
Friend WithEvents grpFiles As System.Windows.Forms.GroupBox
|
|
|
|
Private Sub InitializeComponent()
|
|
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(SSHTransfer))
|
|
Me.grpFiles = New System.Windows.Forms.GroupBox
|
|
Me.lblLocalFile = New System.Windows.Forms.Label
|
|
Me.txtLocalFile = New System.Windows.Forms.TextBox
|
|
Me.txtRemoteFile = New System.Windows.Forms.TextBox
|
|
Me.lblRemoteFile = New System.Windows.Forms.Label
|
|
Me.btnBrowse = New System.Windows.Forms.Button
|
|
Me.grpConnection = New System.Windows.Forms.GroupBox
|
|
Me.radProtSFTP = New System.Windows.Forms.RadioButton
|
|
Me.radProtSCP = New System.Windows.Forms.RadioButton
|
|
Me.lblProtocol = New System.Windows.Forms.Label
|
|
Me.lblPassword = New System.Windows.Forms.Label
|
|
Me.lblUser = New System.Windows.Forms.Label
|
|
Me.lblPort = New System.Windows.Forms.Label
|
|
Me.lblHost = New System.Windows.Forms.Label
|
|
Me.txtPort = New System.Windows.Forms.TextBox
|
|
Me.txtHost = New System.Windows.Forms.TextBox
|
|
Me.txtPassword = New System.Windows.Forms.TextBox
|
|
Me.txtUser = New System.Windows.Forms.TextBox
|
|
Me.btnTransfer = New System.Windows.Forms.Button
|
|
Me.pbStatus = New System.Windows.Forms.ProgressBar
|
|
Me.grpFiles.SuspendLayout()
|
|
Me.grpConnection.SuspendLayout()
|
|
Me.SuspendLayout()
|
|
'
|
|
'grpFiles
|
|
'
|
|
Me.grpFiles.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
|
|
Or System.Windows.Forms.AnchorStyles.Left) _
|
|
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
|
Me.grpFiles.Controls.Add(Me.lblLocalFile)
|
|
Me.grpFiles.Controls.Add(Me.txtLocalFile)
|
|
Me.grpFiles.Controls.Add(Me.txtRemoteFile)
|
|
Me.grpFiles.Controls.Add(Me.lblRemoteFile)
|
|
Me.grpFiles.Controls.Add(Me.btnBrowse)
|
|
Me.grpFiles.FlatStyle = System.Windows.Forms.FlatStyle.Flat
|
|
Me.grpFiles.Location = New System.Drawing.Point(12, 153)
|
|
Me.grpFiles.Name = "grpFiles"
|
|
Me.grpFiles.Size = New System.Drawing.Size(668, 194)
|
|
Me.grpFiles.TabIndex = 2000
|
|
Me.grpFiles.TabStop = False
|
|
Me.grpFiles.Text = "Files"
|
|
'
|
|
'lblLocalFile
|
|
'
|
|
Me.lblLocalFile.AutoSize = True
|
|
Me.lblLocalFile.Location = New System.Drawing.Point(20, 25)
|
|
Me.lblLocalFile.Name = "lblLocalFile"
|
|
Me.lblLocalFile.Size = New System.Drawing.Size(52, 13)
|
|
Me.lblLocalFile.TabIndex = 10
|
|
Me.lblLocalFile.Text = "Local file:"
|
|
'
|
|
'txtLocalFile
|
|
'
|
|
Me.txtLocalFile.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
|
|
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
|
Me.txtLocalFile.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
|
Me.txtLocalFile.Location = New System.Drawing.Point(105, 23)
|
|
Me.txtLocalFile.Name = "txtLocalFile"
|
|
Me.txtLocalFile.Size = New System.Drawing.Size(455, 20)
|
|
Me.txtLocalFile.TabIndex = 20
|
|
'
|
|
'txtRemoteFile
|
|
'
|
|
Me.txtRemoteFile.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
|
|
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
|
Me.txtRemoteFile.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
|
Me.txtRemoteFile.Location = New System.Drawing.Point(105, 49)
|
|
Me.txtRemoteFile.Name = "txtRemoteFile"
|
|
Me.txtRemoteFile.Size = New System.Drawing.Size(542, 20)
|
|
Me.txtRemoteFile.TabIndex = 50
|
|
'
|
|
'lblRemoteFile
|
|
'
|
|
Me.lblRemoteFile.AutoSize = True
|
|
Me.lblRemoteFile.Location = New System.Drawing.Point(20, 51)
|
|
Me.lblRemoteFile.Name = "lblRemoteFile"
|
|
Me.lblRemoteFile.Size = New System.Drawing.Size(63, 13)
|
|
Me.lblRemoteFile.TabIndex = 40
|
|
Me.lblRemoteFile.Text = "Remote file:"
|
|
'
|
|
'btnBrowse
|
|
'
|
|
Me.btnBrowse.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
|
Me.btnBrowse.FlatStyle = System.Windows.Forms.FlatStyle.Flat
|
|
Me.btnBrowse.Location = New System.Drawing.Point(566, 21)
|
|
Me.btnBrowse.Name = "btnBrowse"
|
|
Me.btnBrowse.Size = New System.Drawing.Size(81, 23)
|
|
Me.btnBrowse.TabIndex = 30
|
|
Me.btnBrowse.Text = Global.mRemoteNG.My.Resources.Resources.strButtonBrowse
|
|
Me.btnBrowse.UseVisualStyleBackColor = True
|
|
'
|
|
'grpConnection
|
|
'
|
|
Me.grpConnection.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
|
|
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
|
Me.grpConnection.Controls.Add(Me.radProtSFTP)
|
|
Me.grpConnection.Controls.Add(Me.radProtSCP)
|
|
Me.grpConnection.Controls.Add(Me.lblProtocol)
|
|
Me.grpConnection.Controls.Add(Me.lblPassword)
|
|
Me.grpConnection.Controls.Add(Me.lblUser)
|
|
Me.grpConnection.Controls.Add(Me.lblPort)
|
|
Me.grpConnection.Controls.Add(Me.lblHost)
|
|
Me.grpConnection.Controls.Add(Me.txtPort)
|
|
Me.grpConnection.Controls.Add(Me.txtHost)
|
|
Me.grpConnection.Controls.Add(Me.txtPassword)
|
|
Me.grpConnection.Controls.Add(Me.txtUser)
|
|
Me.grpConnection.FlatStyle = System.Windows.Forms.FlatStyle.Flat
|
|
Me.grpConnection.Location = New System.Drawing.Point(12, 12)
|
|
Me.grpConnection.Name = "grpConnection"
|
|
Me.grpConnection.Size = New System.Drawing.Size(668, 135)
|
|
Me.grpConnection.TabIndex = 1000
|
|
Me.grpConnection.TabStop = False
|
|
Me.grpConnection.Text = "Connection"
|
|
'
|
|
'radProtSFTP
|
|
'
|
|
Me.radProtSFTP.AutoSize = True
|
|
Me.radProtSFTP.FlatStyle = System.Windows.Forms.FlatStyle.Flat
|
|
Me.radProtSFTP.Location = New System.Drawing.Point(153, 103)
|
|
Me.radProtSFTP.Name = "radProtSFTP"
|
|
Me.radProtSFTP.Size = New System.Drawing.Size(51, 17)
|
|
Me.radProtSFTP.TabIndex = 110
|
|
Me.radProtSFTP.Text = "SFTP"
|
|
Me.radProtSFTP.UseVisualStyleBackColor = True
|
|
'
|
|
'radProtSCP
|
|
'
|
|
Me.radProtSCP.AutoSize = True
|
|
Me.radProtSCP.Checked = True
|
|
Me.radProtSCP.FlatStyle = System.Windows.Forms.FlatStyle.Flat
|
|
Me.radProtSCP.Location = New System.Drawing.Point(92, 103)
|
|
Me.radProtSCP.Name = "radProtSCP"
|
|
Me.radProtSCP.Size = New System.Drawing.Size(45, 17)
|
|
Me.radProtSCP.TabIndex = 100
|
|
Me.radProtSCP.TabStop = True
|
|
Me.radProtSCP.Text = "SCP"
|
|
Me.radProtSCP.UseVisualStyleBackColor = True
|
|
'
|
|
'lblProtocol
|
|
'
|
|
Me.lblProtocol.AutoSize = True
|
|
Me.lblProtocol.Location = New System.Drawing.Point(20, 105)
|
|
Me.lblProtocol.Name = "lblProtocol"
|
|
Me.lblProtocol.Size = New System.Drawing.Size(49, 13)
|
|
Me.lblProtocol.TabIndex = 90
|
|
Me.lblProtocol.Text = "Protocol:"
|
|
'
|
|
'lblPassword
|
|
'
|
|
Me.lblPassword.AutoSize = True
|
|
Me.lblPassword.Location = New System.Drawing.Point(20, 79)
|
|
Me.lblPassword.Name = "lblPassword"
|
|
Me.lblPassword.Size = New System.Drawing.Size(56, 13)
|
|
Me.lblPassword.TabIndex = 70
|
|
Me.lblPassword.Text = "Password:"
|
|
'
|
|
'lblUser
|
|
'
|
|
Me.lblUser.AutoSize = True
|
|
Me.lblUser.Location = New System.Drawing.Point(20, 53)
|
|
Me.lblUser.Name = "lblUser"
|
|
Me.lblUser.Size = New System.Drawing.Size(32, 13)
|
|
Me.lblUser.TabIndex = 50
|
|
Me.lblUser.Text = "User:"
|
|
'
|
|
'lblPort
|
|
'
|
|
Me.lblPort.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
|
Me.lblPort.AutoSize = True
|
|
Me.lblPort.Location = New System.Drawing.Point(582, 27)
|
|
Me.lblPort.Name = "lblPort"
|
|
Me.lblPort.Size = New System.Drawing.Size(29, 13)
|
|
Me.lblPort.TabIndex = 30
|
|
Me.lblPort.Text = "Port:"
|
|
'
|
|
'lblHost
|
|
'
|
|
Me.lblHost.AutoSize = True
|
|
Me.lblHost.Location = New System.Drawing.Point(20, 27)
|
|
Me.lblHost.Name = "lblHost"
|
|
Me.lblHost.Size = New System.Drawing.Size(32, 13)
|
|
Me.lblHost.TabIndex = 10
|
|
Me.lblHost.Text = "Host:"
|
|
'
|
|
'txtPort
|
|
'
|
|
Me.txtPort.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
|
Me.txtPort.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
|
Me.txtPort.Location = New System.Drawing.Point(617, 25)
|
|
Me.txtPort.Name = "txtPort"
|
|
Me.txtPort.Size = New System.Drawing.Size(30, 20)
|
|
Me.txtPort.TabIndex = 40
|
|
'
|
|
'txtHost
|
|
'
|
|
Me.txtHost.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
|
|
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
|
Me.txtHost.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
|
Me.txtHost.Location = New System.Drawing.Point(105, 25)
|
|
Me.txtHost.Name = "txtHost"
|
|
Me.txtHost.Size = New System.Drawing.Size(471, 20)
|
|
Me.txtHost.TabIndex = 20
|
|
'
|
|
'txtPassword
|
|
'
|
|
Me.txtPassword.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
|
|
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
|
Me.txtPassword.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
|
Me.txtPassword.Location = New System.Drawing.Point(105, 77)
|
|
Me.txtPassword.Name = "txtPassword"
|
|
Me.txtPassword.PasswordChar = Global.Microsoft.VisualBasic.ChrW(42)
|
|
Me.txtPassword.Size = New System.Drawing.Size(471, 20)
|
|
Me.txtPassword.TabIndex = 80
|
|
'
|
|
'txtUser
|
|
'
|
|
Me.txtUser.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
|
|
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
|
Me.txtUser.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
|
Me.txtUser.Location = New System.Drawing.Point(105, 51)
|
|
Me.txtUser.Name = "txtUser"
|
|
Me.txtUser.Size = New System.Drawing.Size(471, 20)
|
|
Me.txtUser.TabIndex = 60
|
|
'
|
|
'btnTransfer
|
|
'
|
|
Me.btnTransfer.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
|
Me.btnTransfer.FlatStyle = System.Windows.Forms.FlatStyle.Flat
|
|
Me.btnTransfer.Image = Global.mRemoteNG.My.Resources.Resources.SSHTransfer
|
|
Me.btnTransfer.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
|
|
Me.btnTransfer.Location = New System.Drawing.Point(597, 382)
|
|
Me.btnTransfer.Name = "btnTransfer"
|
|
Me.btnTransfer.Size = New System.Drawing.Size(83, 29)
|
|
Me.btnTransfer.TabIndex = 10000
|
|
Me.btnTransfer.Text = "Transfer"
|
|
Me.btnTransfer.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
|
Me.btnTransfer.UseVisualStyleBackColor = True
|
|
'
|
|
'pbStatus
|
|
'
|
|
Me.pbStatus.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _
|
|
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
|
Me.pbStatus.Location = New System.Drawing.Point(12, 353)
|
|
Me.pbStatus.Name = "pbStatus"
|
|
Me.pbStatus.Size = New System.Drawing.Size(668, 23)
|
|
Me.pbStatus.TabIndex = 3000
|
|
'
|
|
'SSHTransfer
|
|
'
|
|
Me.ClientSize = New System.Drawing.Size(692, 423)
|
|
Me.Controls.Add(Me.grpFiles)
|
|
Me.Controls.Add(Me.grpConnection)
|
|
Me.Controls.Add(Me.btnTransfer)
|
|
Me.Controls.Add(Me.pbStatus)
|
|
Me.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
|
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
|
|
Me.Name = "SSHTransfer"
|
|
Me.TabText = Global.mRemoteNG.My.Resources.Resources.strMenuSSHFileTransfer
|
|
Me.Text = "SSH File Transfer"
|
|
Me.grpFiles.ResumeLayout(False)
|
|
Me.grpFiles.PerformLayout()
|
|
Me.grpConnection.ResumeLayout(False)
|
|
Me.grpConnection.PerformLayout()
|
|
Me.ResumeLayout(False)
|
|
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "Private Properties"
|
|
Private sshT As SshTransferProtocolBase
|
|
Private oDlg As OpenFileDialog
|
|
#End Region
|
|
|
|
#Region "Public Properties"
|
|
Public Property Hostname() As String
|
|
Get
|
|
Return Me.txtHost.Text
|
|
End Get
|
|
Set(ByVal value As String)
|
|
Me.txtHost.Text = value
|
|
End Set
|
|
End Property
|
|
|
|
Public Property Port() As String
|
|
Get
|
|
Return Me.txtPort.Text
|
|
End Get
|
|
Set(ByVal value As String)
|
|
Me.txtPort.Text = value
|
|
End Set
|
|
End Property
|
|
|
|
Public Property Username() As String
|
|
Get
|
|
Return Me.txtUser.Text
|
|
End Get
|
|
Set(ByVal value As String)
|
|
Me.txtUser.Text = value
|
|
End Set
|
|
End Property
|
|
|
|
Public Property Password() As String
|
|
Get
|
|
Return Me.txtPassword.Text
|
|
End Get
|
|
Set(ByVal value As String)
|
|
Me.txtPassword.Text = value
|
|
End Set
|
|
End Property
|
|
#End Region
|
|
|
|
#Region "Form Stuff"
|
|
Private Sub SSHTransfer_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
|
|
ApplyLanguage()
|
|
End Sub
|
|
|
|
Private Sub ApplyLanguage()
|
|
grpFiles.Text = My.Resources.strGroupboxFiles
|
|
lblLocalFile.Text = My.Resources.strLocalFile & ":"
|
|
lblRemoteFile.Text = My.Resources.strRemoteFile & ":"
|
|
btnBrowse.Text = My.Resources.strButtonBrowse
|
|
grpConnection.Text = My.Resources.strGroupboxConnection
|
|
lblProtocol.Text = My.Resources.strLabelProtocol
|
|
lblPassword.Text = My.Resources.strLabelPassword
|
|
lblUser.Text = My.Resources.strUser & ":"
|
|
lblPort.Text = My.Resources.strLabelPort
|
|
lblHost.Text = My.Resources.strHost & ":"
|
|
btnTransfer.Text = My.Resources.strTransfer
|
|
TabText = My.Resources.strMenuSSHFileTransfer
|
|
Text = My.Resources.strMenuSSHFileTransfer
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "Private Methods"
|
|
Private Sub StartTransfer(ByVal Protocol As SSHTransferProtocol)
|
|
If AllFieldsSet() = False Then
|
|
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strPleaseFillAllFields)
|
|
Exit Sub
|
|
End If
|
|
|
|
If File.Exists(Me.txtLocalFile.Text) = False Then
|
|
mC.AddMessage(Messages.MessageClass.WarningMsg, My.Resources.strLocalFileDoesNotExist)
|
|
Exit Sub
|
|
End If
|
|
|
|
Try
|
|
If Protocol = SSHTransferProtocol.SCP Then
|
|
Me.sshT = New Scp(txtHost.Text, txtUser.Text, txtPassword.Text)
|
|
ElseIf Protocol = SSHTransferProtocol.SFTP Then
|
|
Me.sshT = New Sftp(txtHost.Text, txtUser.Text, txtPassword.Text)
|
|
End If
|
|
|
|
AddHandler sshT.OnTransferStart, AddressOf SshTransfer_Start
|
|
AddHandler sshT.OnTransferProgress, AddressOf SshTransfer_Progress
|
|
AddHandler sshT.OnTransferEnd, AddressOf SshTransfer_End
|
|
|
|
Me.sshT.Connect(Me.txtPort.Text)
|
|
|
|
LocalFile = Me.txtLocalFile.Text
|
|
RemoteFile = Me.txtRemoteFile.Text
|
|
|
|
Dim t As New Thread(AddressOf StartTransferBG)
|
|
|
|
t.IsBackground = True
|
|
t.SetApartmentState(ApartmentState.STA)
|
|
t.Start()
|
|
Catch ex As Exception
|
|
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strSSHTransferFailed & vbNewLine & ex.Message)
|
|
Me.sshT.Close()
|
|
End Try
|
|
End Sub
|
|
|
|
Private LocalFile As String
|
|
Private RemoteFile As String
|
|
|
|
Private Sub StartTransferBG()
|
|
Try
|
|
DisableButtons()
|
|
Me.sshT.Put(LocalFile, RemoteFile)
|
|
Catch ex As Exception
|
|
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strSSHStartTransferBG & vbNewLine & ex.Message, True)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Function AllFieldsSet() As Boolean
|
|
If Me.txtHost.Text <> "" And Me.txtPort.Text <> "" And Me.txtUser.Text <> "" And Me.txtLocalFile.Text <> "" And Me.txtRemoteFile.Text <> "" Then
|
|
If Me.txtPassword.Text = "" Then
|
|
If MsgBox(My.Resources.strEmptyPasswordContinue, MsgBoxStyle.Question Or MsgBoxStyle.YesNo) = MsgBoxResult.No Then
|
|
Return False
|
|
End If
|
|
End If
|
|
|
|
If Me.txtRemoteFile.Text.EndsWith("/") Or Me.txtRemoteFile.Text.EndsWith("\") Then
|
|
Me.txtRemoteFile.Text += Me.txtLocalFile.Text.Substring(Me.txtLocalFile.Text.LastIndexOf("\") + 1)
|
|
End If
|
|
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
|
|
|
|
Private maxVal As Long
|
|
Private curVal As Long
|
|
|
|
Delegate Sub SetStatusCB()
|
|
Private Sub SetStatus()
|
|
If pbStatus.InvokeRequired Then
|
|
Dim d As New SetStatusCB(AddressOf SetStatus)
|
|
Me.pbStatus.Invoke(d)
|
|
Else
|
|
pbStatus.Maximum = maxVal
|
|
pbStatus.Value = curVal
|
|
End If
|
|
End Sub
|
|
|
|
Delegate Sub EnableButtonsCB()
|
|
Private Sub EnableButtons()
|
|
If btnTransfer.InvokeRequired Then
|
|
Dim d As New EnableButtonsCB(AddressOf EnableButtons)
|
|
Me.btnTransfer.Invoke(d)
|
|
Else
|
|
btnTransfer.Enabled = True
|
|
End If
|
|
End Sub
|
|
|
|
Delegate Sub DisableButtonsCB()
|
|
Private Sub DisableButtons()
|
|
If btnTransfer.InvokeRequired Then
|
|
Dim d As New DisableButtonsCB(AddressOf DisableButtons)
|
|
Me.btnTransfer.Invoke(d)
|
|
Else
|
|
btnTransfer.Enabled = False
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub SshTransfer_Start(ByVal src As String, ByVal dst As String, ByVal transferredBytes As Integer, ByVal totalBytes As Integer, ByVal message As String)
|
|
maxVal = totalBytes
|
|
curVal = transferredBytes
|
|
|
|
SetStatus()
|
|
End Sub
|
|
|
|
Private Sub SshTransfer_Progress(ByVal src As String, ByVal dst As String, ByVal transferredBytes As Integer, ByVal totalBytes As Integer, ByVal message As String)
|
|
maxVal = totalBytes
|
|
curVal = transferredBytes
|
|
|
|
SetStatus()
|
|
End Sub
|
|
|
|
Private Sub SshTransfer_End(ByVal src As String, ByVal dst As String, ByVal transferredBytes As Integer, ByVal totalBytes As Integer, ByVal message As String)
|
|
Try
|
|
maxVal = totalBytes
|
|
curVal = transferredBytes
|
|
|
|
EnableButtons()
|
|
SetStatus()
|
|
|
|
mC.AddMessage(Messages.MessageClass.InformationMsg, My.Resources.strSSHTransferFailed)
|
|
|
|
If Me.sshT IsNot Nothing Then
|
|
Me.sshT.Close()
|
|
ElseIf Me.sshT IsNot Nothing Then
|
|
Me.sshT.Close()
|
|
End If
|
|
Catch ex As Exception
|
|
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strSSHTransferEndFailed & vbNewLine & ex.Message, True)
|
|
End Try
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "Public Methods"
|
|
Public Sub New(ByVal Panel As DockContent)
|
|
Me.WindowType = Type.SSHTransfer
|
|
Me.DockPnl = Panel
|
|
Me.InitializeComponent()
|
|
|
|
Me.oDlg = New OpenFileDialog
|
|
Me.oDlg.Filter = "All Files (*.*)|*.*"
|
|
Me.oDlg.CheckFileExists = True
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "Form Stuff"
|
|
Private Sub btnBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse.Click
|
|
If Me.oDlg.ShowDialog = System.Windows.Forms.DialogResult.OK Then
|
|
If Me.oDlg.FileName <> "" Then
|
|
Me.txtLocalFile.Text = Me.oDlg.FileName
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btnTransfer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTransfer.Click
|
|
If Me.radProtSCP.Checked Then
|
|
Me.StartTransfer(SSHTransferProtocol.SCP)
|
|
ElseIf Me.radProtSFTP.Checked Then
|
|
Me.StartTransfer(SSHTransferProtocol.SFTP)
|
|
End If
|
|
End Sub
|
|
#End Region
|
|
|
|
Private Enum SSHTransferProtocol
|
|
SCP = 0
|
|
SFTP = 1
|
|
End Enum
|
|
End Class
|
|
End Namespace
|
|
End Namespace |