如何透過Visual Studio 寫出些程式

平常都是透過命令提示字元寫出部分小程式
但是發現檔案越來越多
有沒有辦法透過Visual Studio 達到類似命令提示字元的指令?
例如:
按鈕1 執行 Robocopy 可以選擇要備份的資料夾及路徑,且最後呈現log file 在視窗中
(目前是透過notepad 打開logfile 的方式呈現)
按鈕2 執行net use 設定預設的網路磁碟機路徑
按鈕3 執行設定指定的無線網路SSID
(目前是透過netsh 的方式直接設定)
按鈕4 諸如此類的功能

PS:小的基本上沒學過Visual Studio,只會使用命令提示字元做出Check 然後執行上述指令
但是想要改變方式讓整個透過視窗化程式達到上述功能

雖然目前已經有bat 的選單型態,只是希望能夠做到打開總視窗
點擊功能按鈕達到相同的方式

備註:單純是因為公司沒辦法安裝第三方工具,想要自己創造屬於公司專用的設定工具
2015-11-15 0:08 發佈

empiresx wrote:
PS:小的基本上沒學過Visual Studio,只會使用命令提示字元做出Check 然後執行上述指令
但是想要改變方式讓整個透過視窗化程式達到上述功能

雖然目前已經有bat 的選單型態,只是希望能夠做到打開總視窗
點擊功能按鈕達到相同的方式

為了更快速的啟動所有的 OS,
於 Windows 7 X64 中寫了一個批次檔,
(類似 DOS 時代的 CMENU,)
(不過我自行"重新修改"為可在 X86/X64 中的 CMD.exe 執行的 CMENU,)
(讓傳統醜醜的批次檔更漂亮.)
將所有的 OS 都整合在一起,
簡單按一個"單鍵"就可以了.
如下:


另外網上也有很多命令列的 UI 產生工具,
不然也可用 PowerShell 功能更強大且也能寫 UI,
我是批次檔/PowerShell 混合呼叫,功能強大.


☆ 私人訊息直接刪除不再回覆 ☆ 願望 : bovuhPPjMnEfkyhggnsJdABaLFPuhXT4
可以,用Shell函數即可辦到。

Shell函數的第二引數說明:
vbHide 0 視窗被隱藏,且焦點會移到隱式視窗。
VbNormalFocus 1 視窗具有焦點,且會還原到它原來的大小和位置。
VbMinimizedFocus 2 視窗會以一個具有焦點的圖示來顯示。
VbMaximizedFocus 3 視窗是一個具有焦點的最大化視窗。
VbNormalNoFocus 4 視窗會被還原到最近使用的大小和位置,而當前活動的視窗仍然保持活動。
VbMinimizedNoFocus 6 視窗會以一個圖示來顯示。而當前活動的的視窗仍然保持活動。



程式碼:
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Shell("notepad.exe", vbNormalFocus)
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Shell("C:\Program Files\Microsoft Office\Office15\excel.exe", vbNormalFocus)
End Sub

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Shell("C:\Program Files\Microsoft Office\Office15\excel.exe c:\install.log", vbMaximizedFocus)
End Sub
End Class

lordtaco wrote:
可以,用Shell函...(恕刪)

感謝,這大概就是我想要的功能
順便詢問,可以搭配參數之類的應用嗎?
例如
runas /user:username programname
這樣子的方式
我會先利用您的自行先嘗試看看
未來主要是希望能夠做出給予使用者自行選定備份區域
好讓我開始推行由使用者自行升級作業系統的部屬
能不能接受參數,要看應用程式而定了,比較特殊的用法是,當你用Shell呼叫DOS內建指令(如DIR)時,得用CMD來啟動:

例如:Shell("cmd.exe /k Dir") /k代表處理完後不關閉命令視窗

依照你的例子,寫成這樣即可:Shell("cmd.exe runas /user:username programname")

如果要啟動批次檔也是一樣用法:

Shell("cmd.exe /k c:\hello.bat")

如果像上面這樣省略第二引數,會以預設值最小化、無焦點啟動外部程式。


lordtaco wrote:
能不能接受參數,要...(恕刪)




真是太謝謝你!
目前一行程式大概沒問題了
===========================================================
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

Dim username As String = System.Windows.Forms.SystemInformation.UserName
Shell("msra /saveasfile c:\temp\" + username + ".msrcIncident " + username + "Help")

End Sub
===========================================================

現在卡到的問題
在命令提示字元中
有三行程式依序執行,但是都得在同一CMD畫面中
例如
===========================================================
net use /user:domain\username password \\netdiskpath
explorer \\netdiskpath
pause
net use /del \\netdiskpath
===========================================================

若是這類的指令型態就無法透過shell的型態達成
在取得domain、username 和 password 這段可以透過呼叫另一個輸入視窗執行嗎?
我目前是知道可以在同一個FOrm中透過textbox1.text 的情況下取得
但是如果是需要在button click後跳出第二個Form要你輸入帳號密碼的畫面
然後取得Text2.text和Textbox3.text的帳號密碼身分
放入username 及 password 中
這點要如何辦到?
可以的,假設第一個表單是應用程式選擇,命名為 Form1,第二個表單是輸入帳號密碼,命名為Form2。起始表單設為Form1。

那麼程式大概就是這麼寫,登入鈕的Click事件:

dim idpsForm as form2
set idpsForm=New form2
idpsForm.Show

這樣就可以呼叫出第二張表單了。

然後在Form2的確認鈕的Click事件用Shell進行登入即可。

lordtaco wrote:
可以的,假設第一個...(恕刪)


感謝,我再來嘗試看看
寫好的話
就提供給BS人員請他們幫我放上公司平台進行測試
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?