Windows C 呼叫帶引數exe

2021-06-08 09:05:10 字數 2804 閱讀 4563

1.使用system函式

system("***.exe引數1引數2 引數3...)

chars[300];

char*filename = "*****";

sprintf_s(s,"%s %s %s %s","....**.exe", "aa", "bb",filename);

system(s);

system 的一般格式為:system("teqc.exe meta");

缺陷:會出現命令列視窗。

2.使用execl或execv函式

3.使用winexec函式

winexec('c:\winnt\system32\notepad.exe',0)引數1:.exe檔案全路徑名引數2:控制引數

4.使用createprocess函式

boolcreateprocess(

lptstrlpcommandline,

lpsecurity_attributeslpprocessattributes,

lpsecurity_attributeslpthreadattributes,

boolbinherithandles,

dworddwcreationflags,

lpvoidlpenvironment,

lpctstrlpcurrentdirectory,

lpstartupinfolpstartupinfo,(welcomebbs)

lpprocess_informationlpprocessinformation

5.使用shellexecute\shellexecuteex函式

hinstanceshellexecute(hwnd hwnd,

lpctstrlpoperation,

lpctstrlpfile,

lpctstrlpparameters,

lpctstrlpdirectory,

intnshowcmd

::shellexecute(null,"open",pszpname, "引數1引數2 引數3", null, sw_show);

shellexecuteinfoshexecinfo= ;

shexecinfo.cbsize=sizeof(shellexecuteinfo);

shexecinfo.fmask=see_mask_nocloseprocess;

shexecinfo.hwnd=null;

shexecinfo.lpverb=_t("open");

shexecinfo.lpfile =_t("c4.5.exe");

shexecinfo.lpparameters= _t("-ftrain");

shexecinfo.lpdirectory= null;shexecinfo.nshow = sw_hide;

shellexecuteex(&shexecinfo);

waitcursorbegin();

waitforsingleobject(shexecinfo.hprocess,infinite);

waitcursorend();

6.system.diagnostics.processproc

system.diagnostics.processproc = newsystem.diagnostics.process(); //程式名稱

proc.startinfo.filename="mt3000.exe"; //引數

proc.startinfo.arguments= "/p1 /b38400/fstock /mr"; //隱藏

proc.startinfo.windowstyle=system.diagnostics.processwindowstyle.hidden; //執行

proc.start();

system函式和execl、execv函式不能控制程式視窗是否顯示,我要的效果是不顯示該exe程式的視窗,所以這兩種方法不予考慮。winexec函式不好控制主程式來等該exe程式的結束,所以放棄。createprocess函式是新建乙個程序,所以,你必須人為地控制該程序的生死,不如shellexecuteex方便。shellexecute可以指定工作目錄,並且還可以尋找檔案的關聯直接開啟不用載入與檔案關聯的應用程式,shellexecute還可以開啟網頁,啟動相應的郵件關聯傳送郵件等等。

winexec,shellexecute,createprocess(welcomebbs)的注意

1、定義標頭檔案在標頭檔案stdafx.h中必須定義以下兩個標頭檔案:

#include// 可替換為 windows.h

#include如果定義了標頭檔案 #include的話就不必定義#include了,"windows.h"不光是包含了"shellapi.h",它還定義了許多資料型別,如果沒有這些資料型別,shellapi.h本身會出錯。

2、定義路徑c++中所表示的路徑要用" \\ "而不是平常所用的"\ ",所以以上三個函式表示路徑都為:disk:\\directory\\...\\filenamewinexec("d:\\programfiles\\test\\test.exe",sw_showmaximized);shellexecute(null,"open","c:\\test.txt",null,null,sw_shownormal);

boolfret=createprocess("d:\\putty.exe",null,null,false,null,null,null,null,&si,π);

C 呼叫帶引數EXE檔案及帶啟動引數EXE

一 先製作乙個帶啟動引數的exe檔案。步驟 1 定義全域性私有變數 private string s new string 1 這裡為了簡單起見,只做乙個引數 2 在窗體的建構函式中初始化啟動引數 public form1 string p 3 在main 函式中進行引數判斷 到這裡,帶啟動引數的e...

9 呼叫http api的姿勢 帶引數呼叫

func callapi s selector.selector 使用生成的pb檔案中的結構體作為引數封裝到請求體中 var resp models.prodlistresponse 這裡使用生成的response物件,客戶端只需要傳入這個就可以了,無需關心服務端返回什麼格式,因為服務端已經用rpc...

ODATAPOST方法呼叫JSON帶引數

基礎的獲取所有原始資料 http localhost opcenterrdnlgil odata metadata查詢entitytype http localhost opcenterrdnlgil odata rndvsc根據主鍵查詢 http localhost opcenterrdnlgil...