天下

记录修行的印记

VC调用外部程序接口

VC调用外部程序接口 
(
1) system()

函数名: system 
功 能: 发出一个DOS命令 
用 法: 
int system(char *command); 
备 注: system函数已经被收录在标准c库中,可以直接调用 
返回值
  
=-1:出现错误 
  
=0:调用成功但是没有出现子进程 
  
>0:成功退出的子进程的id
样例: 
system(
"D:\\game.exe");

int system(
   
const char *command 
);
int _wsystem(
   
const wchar_t *command 
);



(
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,
    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结构体中,便于操作,功能强大,但参数过多.

posted on 2010-11-24 16:22 天下 阅读(767) 评论(0)  编辑 收藏 引用 所属分类: Win32


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2010年11月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿(4)

随笔分类(377)

随笔档案(327)

链接

最新随笔

搜索

最新评论