㈠ vb中如何調用應用程序
Shell 函數
執行一個可執行文件,返回一個 Variant (Double),如果成功的話,代表這個程序的任務 ID,若不成功,則會返回 0。
語法
Shell(pathname[,windowstyle])
Shell 函數的語法含有下面這些命名參數:
部分 描述
pathname 必要參數。Variant (String),要執行的程序名,以及任何必需的參數或命令行變數,可能還包括目錄或文件夾,以及驅動器。在Macintosh中,可以使用MacID函數來指定一個應用程序的署名而不是名稱。下面的例子使用了Microsoft Word的署名:
Shell MacID("MSWD")
Windowstyle 可選參數。Variant (Integer),表示在程序運行時窗口的樣式。如果 windowstyle 省略,則程序是以具有焦點的最小化窗口來執行的。在Macintosh(系統7.0或更高)中,windowstyle僅決定當應用程序運行時是否獲得焦點。
windowstyle 命名參數有以下這些值:
常量 值 描述
vbHide 0 窗口被隱藏,且焦點會移到隱式窗口。常數vbHide在Macintosh平台不可用。
VbNormalFocus 1 窗口具有焦點,且會還原到它原來的大小和位置。
VbMinimizedFocus 2 窗口會以一個具有焦點的圖標來顯示。
VbMaximizedFocus 3 窗口是一個具有焦點的最大化窗口。
VbNormalNoFocus 4 窗口會被還原到最近使用的大小和位置,而當前活動的窗口仍然保持活動。
VbMinimizedNoFocus 6 窗口會以一個圖標來顯示。而當前活動的的窗口仍然保持活動。
說明
如果 Shell 函數成功地執行了所要執行的文件,則它會返回程序的任務 ID。任務 ID 是一個唯一的數值,用來指明正在運行的程序。如果 Shell 函數不能打開命名的程序,則會產生錯誤。
在Macintosh中,vbNormalFocus、vbMinimizedFocus和vbMaximizedFocus都將應用程序置於前台;vbHide、vbNoFocus、vbMinimizeFocus都將應用程序置於後台。
注意 預設情況下,Shell 函數是以非同步方式來執行其它程序的。也就是說,用 Shell 啟動的程序可能還沒有完成執行過程,就已經執行到 Shell 函數之後的語句。
Shell 函數示例
本示例使用 Shell 函數來完成一個用戶指定的應用程序。在 MacIntosh 上,默認的驅動名為 「HD」 ,路徑名稱的每部分由冒號而非反斜線分隔。相似地,您可以指定 Macintosh 文件夾而非 \Windows.
' 將第二個參數值設成 1,可讓該程序以正常大小的窗口完成,並且擁有焦點。
Dim RetVal
RetVal = Shell("C:\WINDOWS\CALC.EXE", 1) ' 完成Calculator。
㈡ VB如何打開exe應用程序
用命來令 shell
shell "你所打開的目錄"
如果自要打開 C:\1.exe
就是 shell "C:\1.exe"
app.path &相當於取運行目錄
shell app.path &"\1.exe"
這個就是打開取運行目錄下的程序,比如說你編譯的程序運行在C盤,那麼shell app.path &"\1.exe"就相當於 shell "C:\1.exe"
千萬不要忘記「\」符號
㈢ 如何在VB中怎樣運行外部程序
Visual Basic 語言參考
Shell 函數
運行一個可執行程序,並且如果該程序仍然在運行,則返回一個包含該程序的進程 ID 的整數。
Public Function Shell( _
ByVal Pathname As String, _
Optional ByVal Style As AppWinStyle = AppWinStyle.MinimizedFocus, _
Optional ByVal Wait As Boolean = False, _
Optional ByVal Timeout As Integer = -1 _
) As Integer
參數
Pathname
必選項。字元串。要執行的程序名以及任何需要的參數和命令行開關。Pathname 還可以包括驅動器和目錄路徑或文件夾。
Style
可選項。AppWinStyle。從 AppWinStyle 枚舉中選擇的值,該枚舉與要在其中運行程序的窗口樣式相對應。如果省略 Style,則 Shell 使用 AppWinStyle.MinimizedFocus,這將使程序以最小化啟動並具有焦點。
Style 參數可以有以下設置之一:
枚舉值 說明
AppWinStyle.Hide 隱藏窗口並為隱藏的窗口提供焦點。
AppWinStyle.NormalFocus 為窗口提供焦點,並以最近的大小和位置顯示窗口。
AppWinStyle.MinimizedFocus 為窗口提供焦點,並以圖標的形式顯示窗口。
AppWinStyle.MaximizedFocus 為窗口提供焦點,並以全屏方式顯示窗口。
AppWinStyle.NormalNoFocus 將窗口設置為最近的大小和位置。當前活動窗口保持焦點。
AppWinStyle.MinimizedNoFocus 以圖標的形式顯示窗口。當前活動窗口保持焦點。
Wait
可選項。Boolean。指示 Shell 函數是否應等待程序完成的值。如果省略 Wait,則 Shell 使用 False。
Timeout
可選項。Integer。Wait 為 True 時等待完成的毫秒數。如果省略 Timeout,則 Shell 使用 -1,表示沒有超時,Shell 直到程序完成時才返回。因此,如果省略 Timeout 或將它設置為 -1,則 Shell 可能永遠不會將控制返回給程序。
異常/錯誤
異常類型 錯誤號 條件
ArgumentException 5 Style 不在 0 到 9(包含 0 和 9)范圍內。
FileNotFoundException 53 Shell 無法啟動指定的程序。
備注
Shell 函數的返回值取決於 Pathname 中指定的程序在 Shell 返回時是否仍在執行。如果將 Wait 設置為 True 並且程序在超時過期前結束,Shell 返回零。如果超時過期或者省略 Wait 或將它設置為 False,則 Shell 返回程序的進程 ID。進程 ID 是標識正在運行的程序的唯一數字。
如果 Shell 函數無法啟動指定的程序,則出現 System.IO.FileNotFoundException 錯誤。例如,當試圖從使用 System.Windows.Forms 的應用程序運行 16 位程序(如 command.com)時,可能會發生這種情況。解決辦法是運行將調用所需的 16 位程序的 32 位程序。如果是 command.com,則可以將運行 cmd.exe 作為另一種選擇。
默認情況下,Shell 函數非同步運行程序。這意味著用 Shell 函數啟動的程序在 Shell 函數後面的語句執行前可能沒有結束執行。如果想等待程序結束後再繼續,請將 Wait 設置為 True。
整個路徑和文件規范應該始終用引號引起來,如以下示例所示:
ID = Shell("""C:\Program Files\MyFile.exe"" -a -q", , True, 100000)
字元串內每對相鄰的雙引號 ("") 被解釋為字元串中的一個雙引號字元。因此,前面的示例表示 Shell 函數的下列字元串:
"C:\Program Files\MyFile.exe" -a -q
如果路徑沒有用引號引起來,Windows 就會在 C:\ 目錄中查找名為 Program.exe 的文件,而不是在 C:\Program Files 目錄中查找 MyFile.exe 文件。
安全說明 如果路徑和文件規范沒有用引號引起來,那麼當文件名或路徑節點包含空格時,就會出現安全風險。在上面的示例中,路徑節點 \Program Files 包含一個空格。如果規范不在引號中,並且名為 Program.exe 的程序(例如通過非法的破壞)安裝在 C:\ 中,Windows 就會執行 Program.exe 程序而不是 MyFile.exe。
安全說明 Shell 函數需要非託管代碼許可權,這可能會對它在部分信任情況下的執行產生影響。有關更多信息,請參見 SecurityPermission 類和代碼訪問許可權。
示例
本示例使用 Shell 函數運行一個用戶指定的應用程序。通過將 AppWinStyle.NormalFocus 指定為第二個參數,以正常大小打開應用程序並為它提供焦點。
Dim ProcID As Integer
' Run Calculator.
ProcID = Shell("C:\Windows\system32\calc.exe", AppWinStyle.NormalFocus)
' The preceding path is for Windows XP;
' The Windows 2000 path is C:\WINNT\system32\calc.exe.
㈣ 關於VB啟動外部exe程序的代碼
VB可使用Shell 函數實現啟動外部可執行程序。
Shell 函數,執行一個可執行文件,返回一個 Variant
(Double),如果成功的話,代表這個程序的任務 ID,若不成功,則會返回 0。
DimRetVal
RetVal=Shell("C:WINDOWSCALC.EXE",1)'完成Calculator。