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函数简单说明

平时在delphi写代码的过程中总是能遇到ShellExecute函数,于是索性将它的用法整理一下,因为我在微软的网站上也没能查到个详细解释(当然我查的中文版,俺菜嘛)ShellExecute函数原型...

ShellExecute, WinExec, CreateProcess区别

ShellExecute, WinExec, CreateProcess ShellExecute   ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件、打开一个目...

ShellExecute使用详解,并示范发送电子邮件和打开CHM文档

 有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。CreateProcess因为使用复杂,比较少用。 WinExec主要运行EXE文件。如:W...
  • oklys
  • oklys
  • 2006年07月07日 14:50
  • 3029

shellexecute 详解

注意事项:使用该函数时,需添加该头文件: [1]#include   ShellExecute函数原型及参数含义如下:   ShellExecute(   hWnd: HWND; {指定父窗...
  • heary29
  • heary29
  • 2015年03月03日 11:30
  • 1074

C++之ShellExecute使用详解

有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。 1.CreateProcess因为使用复杂,比较少用。 2.WinExec主要运行EXE文件。...

Delphi下的ShellExecute使用

ShellExecute使用 函数原型 function ShellExecute(hWnd: HWND; Operation, FileName, Parameters, Director...

ShellExecute使用详解

有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。CreateProcess因为使用复杂,比较少用。  WinExec主要运行EXE文件。如:Wi...
  • dlyhlq
  • dlyhlq
  • 2008年03月19日 20:19
  • 440

ShellExecute详解

有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。  1.CreateProcess因为使用复杂,比较少用。  2.WinExec主要运行EX...

ShellExecute使用详解

 ShellExecute使用详解 有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。CreateProcess因为使用复杂,比较少用。 WinE...

ShellExecute使用详解

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

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