有三個函數可以使用: WinExec, ShellExecute,CreateProcess
1.WinExec(String lpCmdLine,Long nCmdShow);
參數說明:
參數 | 類型及說明 |
lpCmdLine | String,包含要執行的指令行 |
nCmdShow | Long,為視窗指定可視性方面的一個指令。請用下述任何一個常數 |
SW_HIDE | 隐藏視窗,活動狀态給令一個視窗 |
SW_MINIMIZE | 最小化視窗,活動狀态給令一個視窗 |
SW_RESTORE | 用原來的大小和位置顯示一個視窗,同時令其進入活動狀态 |
SW_SHOW | 用目前的大小和位置顯示一個視窗,同時令其進入活動狀态 |
SW_SHOWMAXIMIZED | 最大化視窗,并将其激活 |
SW_SHOWMINIMIZED | 最小化視窗,并将其激活 |
SW_SHOWMINNOACTIVE | 最小化一個視窗,同時不改變活動視窗 |
SW_SHOWNA | 用目前的大小和位置顯示一個視窗,不改變活動視窗 |
SW_SHOWNOACTIVATE | 用最近的大小和位置顯示一個視窗,同時不改變活動視窗 |
SW_SHOWNORMAL | 與SW_RESTORE相同 |
例: WinExec("c:\\a.txt",SW_SHOW);
2.ShellExecute
hwnd | Long,指定一個視窗的句柄,有時候,windows程式有必要在建立自己的主視窗前顯示一個消息框 |
lpOperation | String,指定字串“open”來打開lpFlie文檔,或指定“Print”來列印它 |
lpFile | String,想用關聯程式列印或打開一個程式名或檔案名 |
lpParameters | String,如lpszFlie是可執行檔案,則這個字串包含傳遞給執行程式的參數 |
lpDirectory | String,想使用的完整路徑 |
nShowCmd | Long,定義了如何顯示啟動程式的常數值。參考上表. |
lpApplicationName | String,要執行的應用程式的名字。可設為vbNullString;在這種情況下,應用程式的名字應在lpCommandLine參數的起始處出現 |
lpCommandLine | String,要執行的指令行。可用GetCommandLine函數取得一個程序使用的指令行。Windows會盡可能地根據下述搜尋順序來查找執行檔案: (1)包含了父程序執行檔案的目錄 (2)父程序目前的目錄 (3)由GetSystemDirectory傳回的系統目錄 (4)僅适于windows NT:16位系統目錄 (5)由GetWindowDirectory傳回的Windows目錄 (6)由PATH環境變量指定的目錄 |
lpProcessAttributes | SECURITY_ATTRIBUTES,指定一個SECURITY_ATTRIBUTES結構,或傳遞零值(将參數聲明為ByVal As Long,并傳遞零值)——表示采用不允許繼承的預設描述符。該參數定義了程序的安全特性 |
lpThreadAttributes | SECURITY_ATTRIBUTES,指定一個SECURITY_ATTRIBUTES結構,或傳遞零值(将參數聲明為ByVal As Long,并傳遞零值)——表示采用不允許繼承的預設描述符。該參數定義了程序之主線程的安全特性 |
bInheritHandles | Long,TRUE表示允許目前程序中的所有句柄都由建立的子程序繼承 |
dwCreationFlags | Long,來自API32.TXT檔案的一個或多個下述常數之一,它們都帶有字首CREATE_。下面這些用于VB程式員: |
CREATE_SEPARATE_WOW_VDM(僅适用于NT) | 啟動一個16位的Windows應用程式時,強迫它在自己的記憶體空間運作 |
CREATE_SHARED_WOW_VDM(僅适用于NT) | 啟動一個16位的Windows應用程式時,強迫它在共享的16位虛拟機(VM)内運作 |
CREATE_SUSPENDED | 立即挂起新程序。除非調用了ResumeThread函數函數,否則它不會恢複運作 |
也可能是下述常數之一,用于指定優先級 | |
IDLE_PRIORITY_CLASS | 新程序應該有非常低的優先級——隻有在系統空閑的時候才能運作。基本值是4 |
HIGH_PRIORITY_CLASS | 新程序有非常高的優先級,它優先于大多數應用程式。基本值是13。注意盡量避免采用這個優先級 |
NORMAL_PRIORITY_CLASS | 标準優先級。如程序位于前台,則基本值是9;如在背景,則優先值是7 |
不要在VB中使用REALTIME_PRIORITY_CLASS | |
lpEnvironment | Any,指向一個環境塊的指針(環境緩沖區的頭一個字元,或者環境塊的位址) |
lpCurrentDriectory | String,新程序的目前目錄路徑。調用函數的時候,可用vbNullString指定目前目錄 |
lpStartupInfo | STARTUPINFO,指定一個STARTUPINFO結構,其中包含了建立程序時使用的附加資訊 |
lpProcessInformation | PROCESS_INFORMATION,該結構用于容納新程序的程序和線程辨別符。大多數情況下,一旦這個函數傳回,父應用程式都會關閉兩個句柄。 |