ShellExecute详解

原创 2011年01月19日 11:06:00

ShellExecute()功能: 运行一个外部程序,并对外部程序有一定的控制.

原型:

            HINSTANCE ShellExecute(    HWND hwnd,
                                                            LPCTSTR lpOperation,
                                                            LPCTSTR lpFile,
                                                            LPCTSTR lpParameters,
                                                            LPCTSTR lpDirectory,
                                                            INT nShowCmd
);

hwnd: 父窗口句柄;

lpOperation: 指定进行的操作,默认操作为open;

                   open:执行由lpFile指定的程序,或打开由lpFile指定的文件或文件夹

                   print: 打印由pFile指定的文件

                   explore: 浏览由pFile指定的文件夹

                   find: 从指定的目录开始搜索
lpFile: 指定需要执行指定操作的文件或文件夹

lpParameters: lpFile参数是一个可执行程序,则此参数指定命令行参数,否则此参数应为NULL

lpDirectory: 指定默认目录

nShowCmd:lpFile参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为NULL

返回值: 执行成功则返回大于32的实例句柄,失败则返回小于32的值

实例:

1.打开一个应用程序:

ShellExecute(NULL,"open","D://myprocess.exe","","", SW_SHOW );

2.用系统程序打开一个相关的文档

ShellExecute(NULL,"open","notepad.exe","c://MyLog.log","",SW_SHOW );

3.打开一个网页

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

4. 发送email

ShellExecute(NULL,"open","luckyangel887@qq.com","","", SW_SHOW );

5.用系统打印机打印文档

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

6.用系统查找功能来查找指定文件

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

7.启动一个程序直到它运行完毕

SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = NULL;
ShExecInfo.lpFile = "c://MyTest.exe";
ShExecInfo.lpParameters = "";
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
WaitForSingleObject(ShExecInfo.hProcess,INFINITE); //等待句柄有信号

8.显示文件或文件夹的属性

SHELLEXECUTEINFO ShExecInfo ={0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_INVOKEIDLIST ;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = "properties";
ShExecInfo.lpFile = "c://Programer Files";

ShExecInfo.lpParameters = "";
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);

9.运行一个批处理,把当前运行目录传送进去

ShellExecute(NULL,"open","d://master.cmd",NULL,"D://",SW_SHOW);

ShellExecute使用详解

ShellExecute命令    ⑴ 函数原型:  HINSTANCE ShellExecute(HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFi...
  • zhanglidn013
  • zhanglidn013
  • 2015年07月31日 22:46
  • 2524

ShellExecute使用详解

有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。 1.CreateProcess因为使用复杂,比较少用。 2.WinExec主要运行EXE文件。...
  • hellokandy
  • hellokandy
  • 2016年01月19日 17:41
  • 1616

ShellExecute用法种种

 Q: 如何打开一个应用程序?  ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW );或 ShellExecute(thi...
  • jiangqin115
  • jiangqin115
  • 2015年08月01日 13:56
  • 946

ShellExecute 的使用方法总结

这篇文章是介绍ShellExecute的使用方法的总结,详细介绍了ShellExecute函数的使用方法。...
  • CreatedSign
  • CreatedSign
  • 2014年01月27日 11:01
  • 3269

VC++ ShellExecute 执行、运行一个外部程序函数功能详解:

ShellExecute 函数功能:     ShellExecute 的功能是运行一个外部程序(或者是打开一个已注册的文件、打开一个目录、打印一个文件等等),并对外部程序有一定的控制。 函数简...
  • whui890911
  • whui890911
  • 2015年05月20日 11:52
  • 2972

如何调用一个程序,等待运行结束,并知晓程序运行成功与否:ShellExecuteEx;WaitForSingleObject;GetExitCodeProcess(C代码)

 ShellExecute: 1.函数功能: 你可以给它任何文件的名字,它都能识别出来并打开它。 2.函数原型: HINSTANCE ShellExecute(            ...
  • gdfyl
  • gdfyl
  • 2014年10月27日 15:50
  • 2843

windows客户端开发--通过ShellExecute函数打开浏览器

在我们的客户端中常常会有一些link,点击后希望通过浏览器导航到该链接。我们是通过ShellExecute函数来实现的。ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件、打...
  • wangshubo1989
  • wangshubo1989
  • 2016年02月19日 21:35
  • 2683

ShellExecute使用详解

有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。 1.CreateProcess因为使用复杂,比较少用。 2.WinExec主要运行EXE文...
  • aidem_brown
  • aidem_brown
  • 2016年05月27日 15:47
  • 224

判断ShellExecute函数是否执行完一个程序的方法

ShellExecute是windows的API函数,功能是执行可执行文件(exe)或任何关联文件(doc、txt、xls等)。但ShellExecute是异步执行的,也就是说,不管执行的程序是否成功...
  • u011429664
  • u011429664
  • 2013年09月09日 15:16
  • 1010

ShellExecute使用详解

有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。 1.CreateProcess因为使用复杂,比较少用。 2.WinExec主要运行EXE文...
  • killer0717
  • killer0717
  • 2015年04月04日 19:31
  • 264
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ShellExecute详解
举报原因:
原因补充:

(最多只允许输入30个字)