成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

實(shí)際操作VB.NET啟動(dòng)外部程序技巧講解

開發(fā) 后端
如果大家想要實(shí)現(xiàn)一個(gè)VB.NET啟動(dòng)外部程序的操作,那么就可以通過(guò)使用Win32應(yīng)用編程接口等函數(shù)來(lái)進(jìn)行解決。不過(guò)使用VB.NET后,會(huì)發(fā)現(xiàn)這一步驟是非常簡(jiǎn)單的。

VB.NET開發(fā)是由微軟推出的一款主要應(yīng)用于面向?qū)ο蟮恼Z(yǔ)言。實(shí)現(xiàn)的功能主要體現(xiàn)在其穩(wěn)固的框架平臺(tái)提供上。在VB.NET啟動(dòng)外部程序時(shí),我們通常使用Win32應(yīng)用編程接口或者VB的Shell函數(shù)解決。現(xiàn)在,在.NET框架中有個(gè)System.Diagnostics.Process類,通過(guò)這個(gè)類進(jìn)行這個(gè)操作,你會(huì)發(fā)現(xiàn)方便了很多。#t#

在傳統(tǒng)VB程序中,你可以使用Shell函數(shù)啟動(dòng)一個(gè)應(yīng)用程序。當(dāng)你傳送一個(gè)數(shù)據(jù)文件名的時(shí)候,VB在相應(yīng)應(yīng)用程序中打開這個(gè)數(shù)據(jù)文件。你可以使用一個(gè)任選的windowstyle參數(shù)控制所啟動(dòng)的應(yīng)用程序的窗口方式。例如,在VB6中,下面這行代碼將啟動(dòng)默認(rèn)的文本編輯器(通常是記事本)并打開文件 "D:\run.txt":

 

  1. returnID = Shell
    ("D:\run.txt", 
    vbNormalFocus) 

雖然通過(guò)Microsoft.VisualBasic.Comaptibility域名空間,在VB.NET中仍然能夠使用Shell功能,并且它已經(jīng)被做了一些改動(dòng),但在.NET框架中它并不是啟動(dòng)應(yīng)用程序的最好的方法,因?yàn)镾hell函數(shù)有一些嚴(yán)格的限制條件,其中之一就是只能異步地啟動(dòng)程序;在啟動(dòng)應(yīng)用程序之后,你自己的程序才繼續(xù)運(yùn)行。所以你不能直接使用它來(lái)啟動(dòng)一個(gè)程序,并且只能等到這個(gè)程序退出,你才能返回到你自己的程序中。為了在傳統(tǒng)VB中做到這點(diǎn),你必須求助于Windows API,而這需要對(duì)窗口句柄、過(guò)程識(shí)別號(hào)、枚舉最高級(jí)窗口等有所了解。

使用.NET,就能使這個(gè)操作變得很簡(jiǎn)單。你可以使用System.Diagnostics域名空間中的Process類來(lái)實(shí)現(xiàn)VB.NET啟動(dòng)外部程序。你可以簡(jiǎn)單的使用共享的 Process.Start方法啟動(dòng)一個(gè)新的過(guò)程,把一個(gè)可執(zhí)行文件名或者可執(zhí)行應(yīng)用程序的擴(kuò)展關(guān)聯(lián)文件名作為參數(shù)傳輸給它。例如,下面的代碼啟動(dòng)"D: \run.txt"文件。

 

  1. System.Diagnostics.
    Process.Start ("D:\run.txt") 

Start方法有一個(gè)超載的版本,能返回一個(gè)Process對(duì)象,所以你可以獲得對(duì)啟動(dòng)的過(guò)程的引用,并可用于多種用途:

 

  1. Dim myProcess As Process = 
    System.Diagnostics.
    Process.Start  
  2. ("D:\run.txt")  
  3. MessageBox.Show
    (myProcess.ProcessName) 

初看起來(lái),你看上去好象喪失了控制窗口風(fēng)格的能力(還記得Shell函數(shù)的第二個(gè)參數(shù)嗎?),但是事實(shí)情況并非如此。在VB.NET啟動(dòng)外部程序中很多情況下,你不需要明確地設(shè)置窗口風(fēng)格,因?yàn)槟J(rèn)情況是在一個(gè)帶有焦點(diǎn)的正常窗口(ProcessWindowStyle.Normal)中啟動(dòng)過(guò)程。但是如果你想使用一個(gè)不同的窗口風(fēng)格時(shí),可以使用超載的Process.Start方法接收一個(gè)ProcessStartInfo對(duì)象參數(shù)而不是一個(gè)簡(jiǎn)單的字符串。為了使用它,首先要?jiǎng)?chuàng)建一個(gè)ProcessStartInfo對(duì)象,然后設(shè)置進(jìn)程初置值。兩個(gè)超載方法讓你設(shè)置一個(gè)文件名或者一個(gè)文件名和一組命令行參數(shù)。并且 ProcessStartInfo對(duì)象還有一個(gè)WindowStyle屬性,由 System.Diagnostics.Process.WindowStyle枚舉的值組成。所以你可以調(diào)用Process.Start方法并傳送一個(gè) ProcessStartInfo對(duì)象來(lái)控制啟動(dòng)的窗口的風(fēng)格。

 

  1. Dim psInfo As New _  
  2. System.Diagnostics.
    ProcessStartInfo _  
  3. ("D:\run.txt")  
  4. psInfo.WindowStyle = _ 
  5. System.Diagnostics.
    ProcessWindowStyle.Normal  
  6. Dim myProcess As Process = _ 
  7. System.Diagnostics.
    Process.Start(psInfo) 

由于Process類有一個(gè)StartInfo屬性,它是一個(gè)ProcessStartInfo對(duì)象,所以另一種產(chǎn)生相同結(jié)果的方法是創(chuàng)建一個(gè) Process對(duì)象并設(shè)置它的StartInfo屬性。在預(yù)創(chuàng)建的Process對(duì)象的時(shí)候,你可以僅僅調(diào)用它的Start方法,而不需使用 Process類的共享Start方法。

  1. Dim myProcess As System.
    Diagnostics.Process
     = _ 
  2. new System.Diagnostics.
    Process()  
  3. myProcess.StartInfo.
    FileName
     = _ 
  4. "D:\run.txt"  
  5. myProcess.StartInfo.
    WindowStyle
     = _ 
  6. System.Diagnostics.
    ProcessWindowStyle.Normal  
  7. myProcess.Start 

在設(shè)計(jì)VB.NET啟動(dòng)外部程序期間設(shè)置Process參數(shù)

另外,.NET框架出廠時(shí)已經(jīng)帶有在設(shè)計(jì)期間封裝這些代碼的Process組件。你可以在工具欄的Components欄目中找到它。為了使用它,把一個(gè)Process組件拖到你的窗體上,然后在屬性窗口展開StartInfo屬性。

責(zé)任編輯:曹凱 來(lái)源: 博客園
相關(guān)推薦

2010-01-14 14:46:57

2010-01-07 18:05:18

VB.NET事務(wù)處理

2010-01-07 18:22:40

VB.NET聲音播放

2010-01-07 10:46:27

VB.NET Sock

2010-01-11 16:04:10

VB.NET使用wit

2010-01-18 18:20:49

VB.NET使用API

2010-01-11 10:44:47

VB.NET多窗體

2010-01-14 15:44:17

VB.NET數(shù)據(jù)綁定

2010-01-07 10:02:53

Flash控制VB.N

2009-10-28 13:24:25

VB.NET文件

2010-01-08 18:37:08

VB.NET顯示圖片

2009-10-26 12:39:09

VB.NET通信程序

2010-01-08 14:07:47

VB.NET窗體傳值

2010-01-11 11:37:08

VB.NET操作CSV

2010-01-15 19:04:09

2009-10-20 10:16:24

VB.NET COMB

2009-10-14 09:58:43

VB.NET程序

2009-10-13 14:42:30

VB.NET靜態(tài)成員

2009-10-14 17:21:47

VB.NET定制Win

2009-10-12 13:54:22

VB.NET Data
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品国产三级国产aⅴ浪潮 | 伊人狠狠干 | 狠狠综合网| 成人在线| 男女污污动态图 | av先锋资源 | 国产99在线 | 欧美 | 日韩一区二区三区视频在线观看 | 成人免费av | 色婷婷亚洲一区二区三区 | 国产精品一区久久久 | 久久69精品久久久久久久电影好 | 一区日韩 | 365夜爽爽欧美性午夜免费视频 | 日本精品一区二区三区在线观看视频 | 欧美一级大片免费看 | 精品国产一区二区三区成人影院 | 国产精品国色综合久久 | 玩丰满女领导对白露脸hd | 影音先锋欧美资源 | 亚洲精品日日夜夜 | 中文字幕在线一区二区三区 | 欧洲一区二区视频 | 欧美精品一区二区三区在线 | a视频在线 | 国产日韩欧美在线播放 | 狠狠爱视频 | 亚洲综合色视频在线观看 | 理论片87福利理论电影 | 国产福利精品一区 | 欧美福利视频一区 | 久久这里只有精品首页 | 一区二区三区小视频 | 午夜精品久久久久久久久久久久 | 国产成人精品一区二区三区四区 | 国产精品视频一二三区 | 国产欧美在线 | 欧美国产91| 日韩中文在线观看 | 久久99成人| 久久久久国产一区二区三区四区 |