vc 运行exe文件的方法

WinExec最简单,两个参数,前一个指定路径,后一个指定显示方式.后一个参数  
  值得说一下,比如泥用   SW_SHOWMAXMIZED方式去加栽一个无最大化按钮的   程序,  
  呵呵就是Neterm,calc等等,就不会出现正常的窗体,但是已经被加到任务列表里  
  了。  
  ShellExecute较   WinExex灵活一点,可以指定工作目录,下面的   Example就是直接  
  打开   c:/temp/1.txt,而不用加栽与   txt文件关联的应用程序,很多安装程序完成  
  后都会打开一个窗口,来显示Readme   or   Faq,就是这么作的啦.  
   
  ShellExecute(NULL,NULL,_T("1.txt"),NULL,_T("c://temp"),SW_SHOWMAXMIZED);  
 

CreateProcess最复杂,一共有十个参数,不过大部分都可以用NULL代替,它可以  
  指定进程的安全属性,继承信息,类的优先级等等.来看个很简单的   Example:  
   
  STARTUPINFO   stinfo;   //启动窗口的信息  
  PROCESSINFO   procinfo;   //进程的信息  
   
  CreateProcess(NULL,_T("notepad.exe"),NULL,NULL.FALSE,   NORMAL_PRIORITY_  
  CLASS,NULL,NULL,   &stinfo,&procinfo);  

ShellExecute应用详细解释

ShellExecute(m_hWnd, "open", "calc.exe" ,"", "", SW_SHOW );

ShellExecute(m_hWnd, "open" , "notepad.exe", "c://testLog.log","",SW_SHOW );

系统自带程序也可以不使用全路径名。

打开一个同系统程序相关连的文档

ShellExecute(m_hWnd,"open", "c://abc.txt","","",SW_SHOW );

如何打开一个网页

ShellExecute(m_hWnd,"open", " http://www.google.com","","", SW_SHOW );

激活相关程序,发送EMAIL

ShellExecute(m_hWnd,"open", "mailto:liang5158270@hotmail.com","","", SW_SHOW );

用系统打印机打印文档

ShellExecute(m_hWnd,"print", "c://test.txt","","", SW_HIDE);

如何用系统查找功能来查找指定文件

ShellExecute(m_hWnd,"find","d://destfile", NULL,NULL,SW_SHOW);

 

 

启动一个程序,直到它运行结束

方法一:

SHELLEXECUTEINFO ShExecInfo = {0};

ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);

ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;

ShExecInfo.hwnd = NULL;

ShExecInfo.lpVerb = NULL;

ShExecInfo.lpFile = "c://MyProgram.exe";

ShExecInfo.lpParameters = "";

ShExecInfo.lpDirectory = NULL;

ShExecInfo.nShow = SW_SHOW;

ShExecInfo.hInstApp = NULL;

ShellExecuteEx(&ShExecInfo);

WaitForSingleObject(ShExecInfo.hProcess,INFINITE);

方法二:

PROCESS_INFORMATION ProcessInfo;

STARTUPINFO StartupInfo; //This is an [in] parameter

ZeroMemory(&StartupInfo, sizeof(StartupInfo));

StartupInfo.cb = sizeof StartupInfo ; //Only compulsory field

if(CreateProcess("c://winnt//notepad.exe", NULL, NULL,NULL,FALSE,0,NULL, NULL,&StartupInfo,&ProcessInfo))

{

WaitForSingleObject(ProcessInfo.hProcess,INFINITE);

CloseHandle(ProcessInfo.hThread);

CloseHandle(ProcessInfo.hProcess);

}

else

{

MessageBox("The process could not be started...");

}

显示文件或文件夹的属性

SHELLEXECUTEINFO ShExecInfo ={0};

ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);

ShExecInfo.fMask = SEE_MASK_INVOKEIDLIST ;

ShExecInfo.hwnd = NULL;

ShExecInfo.lpVerb = "properties";

ShExecInfo.lpFile = "c://"; //can be a file as well

ShExecInfo.lpParameters = "";

ShExecInfo.lpDirectory = NULL;

ShExecInfo.nShow = SW_SHOW;

ShExecInfo.hInstApp = NULL;

ShellExecuteEx(&ShExecInfo);

要加命令参数就是:ShExecInfo.lpParameters = "";或者

ShellExecute(m_hWnd, "open", "calc.exe" ,"", "", SW_SHOW );得第4个参数!!!

 

本文内容来自网络, 我正好要用到,所以整理以方便大家查阅. 有什么问题可以留言或者加我QQ252511116进行交流, EMAIL: gonewone@gmail.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值