Visual Basic 2005 - 如何與其他軟體互動

摘要:Visual Basic 2005 - 如何與其他軟體互動

讀者 wayne 詢問,能否開啟某個軟體(可能是非微軟的軟體),並於程式中去操作或是控制這軟體嗎?比如按下警視窗的 yes 按鈕或是關掉該軟體的子視窗呢。  

其實我們曾經在Visual Basic 2005檔案IO與資料存取秘訣」一書討論過如何傳送按鍵給其他應用程式wayne 的需求可能與其有點類似。於此,我再舉一個例子來說明。以下的程式碼會啟動Ulead PhotoImpact 11,開啟 PhotoImpact 11 之後接著會從「檔案」功能表中選取「開啟」指令、然後於「開啟」對話方塊中選取並開啟 C:\Program Files\Ulead Systems\Ulead PhotoImpact 11\Samples\Golf.ufo檔案、最後再從「檔案」功能表中選取「另存新檔」指令並以 C:MyGolf.ufo 作為新檔案名稱來將其存檔: 

' 啟動PhotoImpact 11
Dim myProcess As Process = System.Diagnostics.Process.Start( _
  "C:\Program Files\Ulead Systems\Ulead PhotoImpact 11\Iedit.exe")

myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal

'
先等待直到目標程式已經準備好輸入...
myProcess.WaitForInputIdle(1000)

'
以下的程式碼會依序完成開檔與另存新檔的作業
If myProcess.Responding Then
     My.Computer.Keyboard.SendKeys("%FO", True)
     My.Computer.Keyboard.SendKeys( _
       "C:Program Files\Ulead Systems\Ulead PhotoImpact 11\Samples\Golf.ufo", _
       True)
     My.Computer.Keyboard.SendKeys("{ENTER}", True)
     My.Computer.Keyboard.SendKeys("%F", True)
     My.Computer.Keyboard.SendKeys("%F", True)
     My.Computer.Keyboard.SendKeys("{DOWN}", True)
     My.Computer.Keyboard.SendKeys("A", True)
     My.Computer.Keyboard.SendKeys("C:MyGolf.ufo", True)
     My.Computer.Keyboard.SendKeys("%S", True)
 End If