程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> VC調用外部程序接口

VC調用外部程序接口

編輯:關於VC++

(1) system()

函數名: system

功 能: 發出一個DOS命令

用 法: int system (char *command);

備 注: system函數已經被收錄在標准c庫中,可以直接調用

返回值

=-1:出現錯誤

=0:調用成功但是沒有出現子進程

>0:成功退出的子進程的id

樣 例:

system("D:\\game.exe");
system("mmc.exe \"c:\\windows\\system32\\gpedit.msc\"");

(2) WinExec()

函數原型:

UINT WINAPI WinExec(

__in          LPCSTR lpCmdLine,

__in          UINT uCmdShow);

參數說明:

lpCmdLine,  // 命令路徑

uCmdShow,  // 顯示方式,共有11種,具體可以 查閱MSDN的ShowWindow函數

返回值:

成功,返回值大於31

返回0表示內存或者資 源溢出

返回ERROR_BAD_FORMAT表示exe文件非法或者已損壞。

返回 ERROR_FILE_NOT_FOUND指定的文件沒有找到。

返回ERROR_PATH_NOT_FOUND找不到指定路徑

樣例:

WinExec("Notepad.exe", SW_SHOW); // 打開記事本

WinExec ("D:\\Program Files\\Test\\Test.exe",SW_SHOWMAXIMIZED); // 以最大化的方式打開 Test.exe(注意文件名的大小寫也必須完全一樣)

(3) ShellExecute()

函數原型:

HINSTANCE ShellExecute(

HWND hwnd,              //父窗口句柄

LPCTSTR lpOperation,     //操作, 打開方式 "edit","explore","open","find","print",& quot;NULL"

LPCTSTR lpFile,           //文件名,前面可加路 徑

LPCTSTR lpParameters,   //參數

LPCTSTR lpDirectory,       //默認文件夾

INT nShowCmd             //顯示方式

);

用例:

ShellExecute(NULL,"open","C:\\Test.txt",NULL,NULL,SW_SHOWNORMAL); // 打開C:\Test.txt 文件

(4) CreateProcess()

函數原型:

BOOL CreateProcess(

LPCTSTR lpApplicationName, //執行程序名

LPTSTR lpCommandLine, // 參數行

//下面兩個參數 描述了所創建的進程和線程的安全屬性,如果為NULL則使用默認的安全屬性

LPSECURITY_ATTRIBUTES lpProcessAttributes, //進程安全屬性

LPSECURITY_ATTRIBUTES lpThreadAttributes,    // 線程安全屬性

BOOL bInheritHandles, // 繼承標志

DWORD dwCreationFlags, // 創建標志

LPVOID lpEnvironment, // 環境變量

LPCTSTR lpCurrentDirectory,   // 運行該進程的初始目 錄

LPSTARTUPINFO lpStartupInfo, // 用於在創建子進程時設置各種屬性

LPPROCESS_INFORMATION lpProcessInformation //用於在進程創建後接受相關信息

);

評論:

system(),主要用在DOS環境下.

WinExec(),簡單實用,方便打開執行進程 ,但不能操作控制進程。

ShellExecute(),增強了操作能力,但對進程的控制還是不夠用。

CreateProcess(),目前最強勁的進程函數,通過設置StartupInfo結構體參數,來設置子進程的 屬性, 子進程創建後的信息也保存在ProcessInformation結構體中,便於操作,功能強大,但參數過 多.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved