2017-06-15 66 views
0

我對VB很新穎我一直在使用批量我現在已經在vb.net中創建了一半的應用程序來測試我可以做什麼。 在發佈這個問題之前,我環顧四周,但沒有找到任何具體到我正在尋找的東西。在基於架構的VB.Net中創建一個變量

該工具是用於LAN網絡,所以我需要能夠輸入和PC名稱或IP地址到一個文本框,然後單擊一個按鈕,並通過該按鈕啓動SCCM,但使其連接到IP/PC名稱在框。

因此,在批次我有這樣的:

:GET OS ARCHITECTURE 
REG QUERY "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > NUL && set OS=32BIT || set OS=64BIT 
IF %OS%==32BIT SET X=x86 
IF %OS%==64BIT SET X=x64 

::Acquire the Computer Name or IP Address for the Workstation 
    set /p WS="Enter the Computer Name (PCNUMBER) if this fails get IP Address for the Workstation:" 

    :SCCM 
    ECHO SCCM is now running 
    IF %OS%==32BIT START PSTOOLS\psexec.exe "%ProgramFiles%\Microsoft Configuration Manager\AdminConsole\bin\i386\CmRcViewer.exe" %WS% 
    IF %OS%==64BIT START PSTOOLS\psexec.exe "C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\Bin\i386\CmRcViewer.exe" %WS% 

我會怎麼做相同的,但在VB.Net不使用的Process.Start並參考批處理文件。我希望應用程序作爲一個獨立的EXE運行

我有這樣的:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     Dim WS As String 
     Dim IP As String 

     WS = txtWS.Text 
     IP = txtIP.Text 

     Process.Start("C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\Bin\i386\CmRcViewer.exe", "/WS") 
    End Sub 

但它不拉從WS的文本,我不確定如何讓程序知道是否運行從程序文件x86或程序文件。

+0

,以及如何將你喜歡你的咖啡?這不是一個免費的編碼網站。請向我們展示您的努力,您卡在哪裏,提出具體問題,並且您將從其他用戶那裏獲得幫助。 – elzooilogico

+0

我只是忘了添加我對不起的代碼!我已經更新了第一篇文章 –

+0

不確定你想傳遞什麼參數,只有'/ WS'是'WS'變量的內容,都是'/ WS ws_content'?作爲一個經驗法則,我會使用'Dim args = String.Format(「/ WS {0}」,txtWS.Text);'或 'Dim args = String.Format(「/ WS {0} {1}」 ,或者(如果需要引號)Dim args = String.Format(「/ WS {0} {1} {0} {0} {2} {0}」,「」 「」,txtWS.Text,txtIP.Text);'然後'Process.Start(「C:\ Program Files(x86)\ ... \ CmRcViewer.exe」,args)' – elzooilogico

回答

0

下面的代碼工作

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Dim WS As String 
    Dim IP As String 

    WS = txtWS.Text 
    IP = txtIP.Text 

    If Environment.Is64BitOperatingSystem Then 
     Process.Start("C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\Bin\i386\CmRcViewer.exe", txtWS.Text) 
    Else 
     Process.Start("C:\Program Files\Microsoft Configuration Manager\AdminConsole\Bin\i386\CmRcViewer.exe", txtWS.Text) 
    End If 
End Sub 
+0

認爲,你的行應該是'Process.Start(」C:\ Program Files(x86)\ ... \ CmRcViewer.exe「,args)'而不是'Process.Start(「C:\ Program Files文件(x86)\ ... \ CmRcViewer.exe」,txtWS.Text)' – elzooilogico

+0

是啊你的權利,但它應該與Dim args = String.Format 「/ WS {0}」,txtWS.Text)完全取出,根本不需要參數。現在我只需要讓它檢測是否x86或x64 –

+0

然後看到'Environment.Is64Bit ...' – elzooilogico