vc中winexec使用,VC 中如何呼叫exe

2023-02-11 05:10:40 字數 4849 閱讀 7215

1樓:護膚達人it宅族

該函式只提供對16位機子的相容。應用程式應該使用createprocess函式。

declare function winexec lib "kernel32" alias "winexec" (byval lpcmdline as string, byval ncmdshow as long) as long

說明執行指定的程式

返回值long,大於31表示成功,請參考findexecutable函式

參數列引數 型別及說明

lpcmdline string,包含要執行的命令列

ncmdshow long,定義了以怎樣的形式啟動程式的常數值。參考showwindow函式的ncmdshow引數

註解請參考對createprocess函式的說明,瞭解在目錄中查詢指定檔案的順序

vc中如何使用

winshellapi void winapi winexecerrora(hwnd hwnd, int error, lpcstr lpstrfilename, lpcstr lpstrtitle);

winshellapi void winapi winexecerrorw(hwnd hwnd, int error, lpcwstr lpstrfilename, lpcwstr lpstrtitle);

引數說明:

hwnd,視窗控制代碼,一般為null。

error,出錯資訊。

lpstrfilename 檔名。

lpstrtitle標題名。

使用winexec命令

⑴ 函式原型:

uint win exec(lpcstr lpcmdline, uint ucmdshow);

⑵ 引數:

lpcmdline:指向一個空結束的字串,串中包含將要執行的應用程式的命令列(檔名加上可選引數)。

ucmdshow:定義windows應用程式的視窗如何顯示,併為createprocess函式提供startupinfo引數的wshowwindow成員的值。

⑶ 返回值:

若函式呼叫成功,則返回值大於31。若函式呼叫失敗,則返回值為下列之一:

① 0:系統記憶體或資源已耗盡。

② error_bad_format:exe檔案無效(非win32.exe或.exe影像錯誤)。

③ error_file_not_found:指定的檔案未找到。

④ error_path_not_found:指定的路徑未找到。

大於 31

等於 0

error_file_not_found = 2;

error_path_not_found = 3;

error_bad_format = 11;

//ucmdshow 引數可選值:

sw_hide = 0;

sw_shownormal = 1;

sw_normal = 1;

sw_showminimized = 2;

sw_showmaximized = 3;

sw_maximize = 3;

sw_shownoactivate = 4;

sw_show = 5;

sw_minimize = 6;

sw_showminnoactive = 7;

sw_showna = 8;

sw_restore = 9;

sw_showdefault = 10;

sw_max = 10;

案例:1)執行完關閉視窗2000和xp中:

winexec( "cmd   /c   type   aaa.txt ",sw_normal);   //執行完後立即關閉dos視窗

或winexec( "cmd   /k   type   aaa.txt ",sw_normal);   //執行完後不關閉dos視窗

2)winexec是非同步執行。不能等待命令結束。

例如,移動資料夾,小心還未複製結束,就已經被刪除了。

可用createprocess( "測試程式.exe ",   null,   null,   null,

//用下面地**等待程式執行結束:

waitforsingleobject(mprocessinfor.hprocess,   infinite);

2樓:

*****

*****首先,常量字串中『\』必須寫成『\\』,也就是winexec("e:\qq.exe",sw_show); 必須改為:

winexec("e:\\qq.exe",sw_show);

*****

*****補充回答:sw_hide不行的話用sw_showminnoactive。

除以上提到的三個以外,第二個引數還有以下7種選擇:

sw_maximize //最大化執行

sw_minimize //最小化執行

sw_restore //將最大化或最小化的視窗恢復正常

sw_showmaximized //啟用視窗並以最大化執行

sw_showminimized //啟用視窗並以最小化執行

sw_shownoactivate //不啟用

sw_shownormal //普通方式

*****

*****繼續補充回答:

shellexecute我在專案中用過,我是這樣呼叫的。shellexecute (null,

"open",

"winrar.exe", // 程式名

"/c a // 以下5行命令列引數

-sfx default.sfx

-i bck

-i icon test.ico

-z sescript flashfxp flashfxp",

null,

sw_shownormal) // 程式介面顯示方式

*****

*****最後一個引數還是視窗顯示方式,用的預設的sw_shownormal,但我實現了winrar壓縮/解壓介面的隱藏,主要是通過命令列引數實現,即第三個包含隱藏介面設定,而且優先權比最後一個引數高,所有實現了隱藏。你自己找找qq命令列引數設定,暫且只能幫你到這了。

3樓:匿名使用者

winexec 開頭的w要大寫

winexec("e:\\qq.exe",sw_show); 要這樣寫 第一個\是轉義字元 第二個才是真正的\

vc++ 中如何呼叫exe

4樓:今生今滅

一個比較簡單的方法是用

system("cmd命令");

比如system("cls");是清屏.

system("d:\\study\\xx.exe");開啟xx.exe檔案(記住要多加一個\)..

5樓:匿名使用者

有兩個windows api可以實現你的要求:

一個是shellexecute函式原型及引數含義如下:

shellexecute(

hwnd: hwnd;

operation: pchar;

filename: pchar;

parameters: pchar;

directory: pchar;

showcmd: integer

)例子: //呼叫計算器

shellexecute(null,"open","calc.exe",null,null,sw_shownormal);

//呼叫記事本

shellexecute(null,"open","notepad.exe",null,null,sw_shownormal);

還有一個函式是winexec()函式原型如下:

uint winexec(

lpcstr lpcmdline, // command lineuint ucmdshow // window style);lpcmdline引數指向一個0結尾字串,這個字串中包含可執行檔案加上命令列引數,如果被執行的檔案會顯示一個視窗,那麼函式可以在dwcmdshow引數中指定視窗顯示方式,這個引數的定義同showwindow函式中的dwcmdshow引數。

vc++中system(), winexec(), shellexecute(),createprocess()這幾個函式的詳細用法?

6樓:黯湮灬逍遙

system()是傳送系統命令,和在桌面上開啟cmd時鍵入差不多

後面3個是windows帶的api,都可開啟可執行檔案。

system()就很簡單了,比如system("c:\\qq.exe"); 就開啟了c盤的qq

vc++中winexec的問題 :呼叫exe時,如何讓它不閃一下dos視窗?

7樓:匿名使用者

winexec(「d:\ \ qq2009 \ \ bin \ \為qq.exe」,sw_hide);

vc中呼叫外部exe程式

8樓:匿名使用者

void cscommdlg::onbutton2()

mfc中::winexec()中 不能使用賦值來做嗎

9樓:匿名使用者

::winexec("str",sw_showminimized);

不要雙引號。

::winexec(str,sw_showminimized);

在vc中巨集的作用是什麼,在vc中巨集的作用是什麼?

t使得編譯器會根據編譯目標環境選擇合適的 unicode還是ansi 字元處理方式。原型類似 ifdef unicode enclose constant strings and literal characters in the t macro to make them unicode const...

VC 設定畫筆粗細問題,VC 6 0中畫線不能改變粗細的問題

就跟畫了一個矩形一樣 直接畫矩形不就行了嗎,白色畫筆 白色畫刷 你說的直線一頭是半圓的,因為畫素是一個個的圓呀 還是試試畫一個同等大小的矩形,然後用畫刷填充這種方法吧 vc 6.0中畫線不能改變粗細的問題 10 我不知道你mfc出了什麼問題,要不你直接呼叫win32 試試 建立畫筆 createpe...

vc中shelleecute函式如何用預設印表機打湧

1.函式功能 你可以給它任何檔案的名字,它都能識別出來並開啟它。2 函式原型 hinstance shellexecute hwnd hwnd,lpctstr lpoperation,lpctstr lpfile,lpctstr lpparameters,lpctstr lpdirectory,in...