winexec
在MFC裡要開啟外部程式有三個API可以用,Shellexecute()被運用的機率比較高,主要是它可以控制的參數也比較多。
1. Shellexecute() 函數原型
Hinstance ShellExecute( HWND hwnd,LPCTSTR lpOperation,LPCTSTR lpFile,LPCTSTR lpparameters,LPCTSTR lpDirectory,INT nShowCmd );
參數說明:
hwnd | 所掌控的window handle,一般設為NULL |
lpOperation | 檔案執行的方式,如"open","print","explore"分別對應 "開啟","列印","瀏覽", 若不設定,則表示以預設值為主。 |
lpFile | 所要執行的檔案名稱 |
lpParameters | 指定給lpFile檔案所需的參數 |
lpDirectory | lpFile檔案目錄 |
nShowCmd | 檔案顯示方式,可設定如下參數: |
SW_HIDE | 隱藏 |
SW_MAXIMIZE | 最大化 |
SW_MiniMIZE | 最小化,並把Z order順序在此視窗之後(即視窗下一層)的視窗啟動 |
SW_RESTORE | 啟動視窗並還原為初始化大小 |
SW_SHOW | 以當前大小和狀態啟動視窗 |
SW_SHOWDEFAULT | 以預設方式運行 |
SW_SHOWMAXIMIZED | 啟動視窗並最大化 |
SW_SHOWminimizeD | 啟動視窗並最小化 |
SW_SHOWMINNOACTIVE | 最小化但不改變當前啟動的視窗 |
SW_SHOWNA | 以當前狀態顯示視窗但不改變當前啟動的視窗 |
SW_SHOWNOACTIVATE | 以初始化大小顯示視窗但不改變當前啟動的視窗 |
SW_SHOWNORMAL | 啟動並顯示視窗,如果是最大(小)化,視窗將會還原。第一次運行程式 時應該使用這個值 |
範例:
開啟DOS console mode,並顯示目錄:
ShellExecute(handle, NULL, "cmd.exe", "/k dir", NULL, SW_SHOW);
2. winexec()
UINT WINAPI WinExec( __in LPCSTR lpCmdLine, __in UINT uCmdShow);
lpCmdLine [in] : 所要執行的命令,若只有檔名沒有目錄,系統將依以下順序搜尋檔案: 1. 依開啟的程式而定 2. 目前的目錄 3. 系統目錄 4. windows目錄 5. PATH環境變數所設定的目錄 uCmdShow [in] : 檔案顯示方式,參數可參考ShellExecute()相同。範例:
開啟DOS console mode,並顯示目錄:
WinExec("cmd.exe /k dir", SW_SHOW);
在使用上,以ShellExecute()較好用。個人在使用中有遇到,在unicode的狀態下,WinExec()有字串轉換的問題。
相关阅读
转载部分: 最近在做项目过程中,有用到ShellExecute函数,功能1,为打开一个URL。代码如下:
ShellExecute 与 ShellExecuteEx 的使用方法
ShellExecute:1.函数功能:你可以给它任何文件的名字,它都能识别出来并打开它。2.函数原型:HINSTANCE ShellExecute(
hellExecute的功能是运行一个外部程序,或者打开一个已注册的文件、打开一个目录、打印文件等等功能,它可以打开电脑内的任何文件,也
用ShellExecute执行Dos cmd命令失败的原因详见第1第二
用ShellExecute执行cmd命令遇到的问题总结 1、如果命令中的路径包含空格,要把路径
SHELLEXECUTEINFO 和 ShellExecuteEx的使用
在日常工作中用到的一些知识,很久没有总结过,前几日参加一个会议,很是无聊。自己思索着自己这两年来所做过的东西,写着写着居然也写下