내 VB 프로그램에서 cmd.exe의 shadow 명령을 실행하려고하지만 어떤 이유로 명령을 실행하지 않습니다. 그것은 효과가 없습니다. 배치 파일에 명령을 저장 한 다음 성공으로 실행할 수 있었지만 인수/명령을 명령 프롬프트에 직접 전달하고이 방법을 실행하는 것을 선호합니다. 기본적으로 나는 세션 ID와 서버 이름을 추출하기 위해 만든 다른 프로그램을 사용자가 실행하게한다. 그들은 기본적으로 처음 두 개의 세션 ID가 있고 마지막 두 개는 서버 번호입니다 (모든 서버는 즉 smdts- (숫자)이므로 서버 번호가 무엇인지 신경 써야합니다). 4 자리 숫자 코드를 내 그림자 관리 프로그램에 연결합니다. 여기 가하는 내 현재 코드는하지 일 :VB.NET에서 명령 프롬프트에서 shadow 명령을 실행할 수 없음
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim SessId As String
Dim PassCode As String
Dim ServNum As String
Dim Prc As Process
PassCode = TextBox2.Text
SessId = PassCode.Substring(0, 2)
ServNum = PassCode.Substring(PassCode.Length - 2)
Dim fileargs As String = " shadow" + " " & SessId + " " + "/server:smdts-" + ServNum
Dim Pinfo = New System.Diagnostics.ProcessStartInfo
Pinfo.FileName = "cmd.exe"
Pinfo.Arguments = fileargs
Pinfo.ErrorDialog = False
Pinfo.UseShellExecute = False
Pinfo.CreateNoWindow = False
Pinfo.WindowStyle = ProcessWindowStyle.Normal
Pinfo.RedirectStandardOutput = False
Pinfo.RedirectStandardInput = True
Pinfo.RedirectStandardError = False
Prc = New Process
Prc.StartInfo = Pinfo
Prc.Start()
End Sub
작업 (내가 사용하지 않는 배치 파일) 기능 :
Public Class Form1
Public pathvar As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal)
Dim SessId As String
Dim PassCode As String
Dim ServNum As String
PassCode = TextBox2.Text
SessId = PassCode.Substring(0, 2)
ServNum = PassCode.Substring(PassCode.Length - 2)
Dim fileargs As String = " shadow" + " " & SessId + " " + "/server:smdts-" + ServNum
Dim Streamwriter As StreamWriter
Streamwriter = File.CreateText(pathvar + "\ShadowBatch.bat")
Streamwriter.WriteLine(fileargs)
Streamwriter.Close()
Shell(pathvar + "\ShadowBatch.bat")
End Sub
왜 첫 번째 예제에 어떤 도움을 대단히 감사할만한 일이 아닙니다! 감사!
톰 K는
순수한 C#에서이를 수행 할 수있는 Cassia를 사용하십시오. – SLaks