国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VB啟動外部程序
 
                                                       VB.NET啟動外部程序

    在啟動外部應(yīng)用程序時,我們通常使用Win32應(yīng)用編程接口或者VB的Shell函數(shù)解決?,F(xiàn)在,在.NET框架中有個System.Diagnostics.Process類,通過這個類進(jìn)行這個操作,你會發(fā)現(xiàn)方便了很多。
   在傳統(tǒng)VB程序中,你可以使用Shell函數(shù)啟動一個應(yīng)用程序。當(dāng)你傳送一個數(shù)據(jù)文件名的時候,VB在相應(yīng)應(yīng)用程序中打開這個數(shù)據(jù)文件。你可以使用一個任選的windowstyle參數(shù)控制所啟動的應(yīng)用程序的窗口方式。例如,在VB6中,下面這行代碼將啟動默認(rèn)的文本編輯器(通常是記事本)并打開文件"D:\run.txt":
   
   returnID = Shell("D:\run.txt", vbNormalFocus)
   
   雖然通過Microsoft.VisualBasic.Comaptibility域名空間,在VB.NET中仍然能夠使用Shell功能,并且它已經(jīng)被做了一些改動,但在.NET框架中它并不是啟動應(yīng)用程序的最好的方法,因為Shell函數(shù)有一些嚴(yán)格的限制條件,其中之一就是只能異步地啟動程序;在啟動應(yīng)用程序之后,你自己的程序才繼續(xù)運行。所以你不能直接使用它來啟動一個程序,并且只能等到這個程序退出,你才能返回到你自己的程序中。為了在傳統(tǒng)VB中做到這點,你必須求助于Windows API,而這需要對窗口句柄、過程識別號、枚舉最高級窗口等有所了解。
     使用.NET,就能使這個操作變得很簡單。你可以使用System.Diagnostics域名空間中的Process類來啟動外部程序。你可以簡單的使用共享的Process.Start方法啟動一個新的過程,把一個可執(zhí)行文件名或者可執(zhí)行應(yīng)用程序的擴(kuò)展關(guān)聯(lián)文件名作為參數(shù)傳輸給它。例如,下面的代碼啟動"D:\run.txt"文件。
   
   System.Diagnostics.Process.Start ("D:\run.txt")
   
     Start方法有一個超載的版本,能返回一個Process對象,所以你可以獲得對啟動的過程的引用,并可用于多種用途:
   
   Dim myProcess As Process = System.Diagnostics.Process.Start
   ("D:\run.txt")
   MessageBox.Show(myProcess.ProcessName)
   
     初看起來,你看上去好象喪失了控制窗口風(fēng)格的能力(還記得Shell函數(shù)的第二個參數(shù)嗎?),但是事實情況并非如此。在很多情況下,你不需要明確地設(shè)置窗口風(fēng)格,因為默認(rèn)情況是在一個帶有焦點的正常窗口(ProcessWindowStyle.Normal)中啟動過程。但是如果你想使用一個不同的窗口風(fēng)格時,可以使用超載的Process.Start方法接收一個ProcessStartInfo對象參數(shù)而不是一個簡單的字符串。為了使用它,首先要創(chuàng)建一個ProcessStartInfo對象,然后設(shè)置進(jìn)程初置值。兩個超載方法讓你設(shè)置一個文件名或者一個文件名和一組命令行參數(shù)。并且ProcessStartInfo對象還有一個WindowStyle屬性,由System.Diagnostics.Process.WindowStyle枚舉的值組成。所以你可以調(diào)用Process.Start方法并傳送一個ProcessStartInfo對象來控制啟動的窗口的風(fēng)格。
   
   Dim psInfo As New _
   System.Diagnostics.ProcessStartInfo _
   ("D:\run.txt")
   psInfo.WindowStyle = _
   System.Diagnostics.ProcessWindowStyle.Normal
   Dim myProcess As Process = _
   System.Diagnostics.Process.Start(psInfo)
   
     由于Process類有一個StartInfo屬性,它是一個ProcessStartInfo對象,所以另一種產(chǎn)生相同結(jié)果的方法是創(chuàng)建一個Process對象并設(shè)置它的StartInfo屬性。在預(yù)創(chuàng)建的Process對象的時候,你可以僅僅調(diào)用它的Start方法,而不需使用Process類的共享Start方法。
   
   Dim myProcess As System.Diagnostics.Process = _
   new System.Diagnostics.Process()
   myProcess.StartInfo.FileName = _
   "D:\run.txt"
   myProcess.StartInfo.WindowStyle = _
   System.Diagnostics.ProcessWindowStyle.Normal
   myProcess.Start
   在設(shè)計期間設(shè)置Process參數(shù)
   
     另外,.NET框架出廠時已經(jīng)帶有在設(shè)計期間封裝這些代碼的Process組件。你可以在工具欄的Components欄目中找到它。為了使用它,把一個Process組件拖到你的窗體上,然后在屬性窗口展開StartInfo屬性。

 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
在WinForm/C#中打開一個文件
C#正確方式讓程序以管理員權(quán)限啟動
d
C#程序調(diào)用外部exe程序
C#判斷程序是否運行的方法
總結(jié)C#啟動外部程序的幾種方法
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服