WinExec() and ShellExecute() 的用法

在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檔案所需的參數
lpDirectorylpFile檔案目錄
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()有字串轉換的問題。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值