ShellExecute详细用法(可以单独打开一个文件)

摘要:
ShellExecute的功能是运行一个外部程序,或者打开一个已注册的文件、打开一个目录、打印文件等等功能,它可以打开电脑内的任何文件,也可以打开URL。当函数调用过程中出现错误时,它将作为Windows消息窗口的父窗口。"explort",表示打开由lpFile参数指定的文件夹。lpParameters:若lpFile参数是一个可执行文件,则此参数指定命令行参数,否则此参数应设为NULL。lpDirectory:用于指定默认目录。nShowCmd:用于指定程序窗口初始显示方式。
ShellExecute的功能是运行一个外部程序,或者打开一个已注册的文件、打开一个目录、打印文件等等功能,它可以打开电脑内的任何文件,也可以打开URL

函数的原型:

1 HINSTANCE ShellExecute( 
2 HWND hwnd, 
3 LPCTSTR lpOperation,
4 LPCTSTR lpFile, 
5 LPCTSTR lpParameters, 
6 LPCTSTR lpDirectory, 
7 INT nShowCmd
8        );

hWnd:

用于指定父窗口的句柄。当函数调用过程中出现错误时,它将作为Windows消息窗口的父窗口。

lpOperation:

用于指定要进行的操作,当参数为NULL时,默认操作"open"。

"open",表示执行由lpFile参数指定的程序,或者打开由lpFile参数指定的文件或文件夹

"explort",表示打开由lpFile参数指定的文件夹。

"print",表示打印由lpFile参数指定的文件。

lpParameters:

若lpFile参数是一个可执行文件,则此参数指定命令行参数,否则此参数应设为NULL。

lpDirectory:

用于指定默认目录。

nShowCmd:

用于指定程序窗口初始显示方式。

#define SW_HIDE             0    /*隐藏窗体,并激活另一个窗体*/
#define SW_SHOWNORMAL       1     /*与SW_RESTORE相同*/
#define SW_SHOWMINIMIZED    2     /*激活并以最小化的形式显示窗体*/
#define SW_SHOWMAXIMIZED    3      /*激活并以最大化的形式显示窗体*/
#define SW_MAXIMIZE         3      /*最大化指定的窗体*/
#define SW_SHOWNOACTIVATE   4       /*以上次的状态显示指定的窗体,但不激活它*/
#define SW_SHOW             5      /*激活窗体,并将其显示在当前的大小和位置上*/
#define SW_MINIMIZE         6      /*最小化指定的窗体,并激活另一个窗体*/
#define SW_SHOWMINNOACTIVE  7       /*以最小化形式显示指定的窗体,但不激活它*/
#define SW_SHOWNA           8       /*以当前的状态显示指定的窗体,但不激活它*/
#define SW_RESTORE          9       /*以原本的大小和位置,激活并显示指定的窗体*/
#define SW_SHOWDEFAULT      10      /*设置显示的状态由STARTUPINFO结构体指定*/

打开计算器

1 ShellExecute(this->m_hWnd, "open", "calc.exe",NULL, NULL,SW_SHOWMAXIMIZED );
打开一个指定的程序:
1 ShellExecute(this->m_hWnd, "open","D:\\Program Files (x86)\\Notepad++\\notepad++.exe",NULL,NULL,SW_SHOWMAXIMIZED );  
2 ShellExecute(this->m_hWnd, "open", "notepad++.exe",NULL, "D:\\Program Files (x86)\\Notepad++",SW_SHOWMAXIMIZED ); 
3 ShellExecute(this->m_hWnd,"open", "notepad++.exe",NULL, "D:\\Program Files (x86)\\Notepad++\\",SW_SHOWMAXIMIZED );
4 //三个语句其结果都是一样 
打开一个指定的文件:
1 ShellExecute(this->m_hWnd,"open", "F:\\C\\MFC\\MFC.pdf",NULL,NULL,SW_SHOWMAXIMIZED );  
2 ShellExecute(this->m_hWnd,"open", "MFC.pdf",NULL,"F:\\C\\MFC\\",SW_SHOWMAXIMIZED );
打开一个指定的文件夹:
1 ShellExecute(this->m_hWnd, "open", "F:\\C\\MFC",NULL,NULL,SW_SHOWMAXIMIZED );  
2 ShellExecute(this->m_hWnd, "open", NULL,NULL,"F:\\C\\MFC",SW_SHOWMAXIMIZED );  
3 ShellExecute(this->m_hWnd,"explore", NULL,NULL,"F:\\C\\MFC",SW_SHOWMAXIMIZED );
打开URL:
1 ShellExecute(this->m_hWnd, "open", "http://tmxk.org/2012/", NULL, NULL,SW_SHOWMAXIMIZED );
hWnd,可以设为NULL。

免责声明:文章转载自《ShellExecute详细用法(可以单独打开一个文件)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Maxwell仿真变压器后处理——变压器参数计算EggJS 设置代理实现跨域 egg-http-proxy下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

c# winform 在一个窗体中使用另一个窗体中TextBox控件的值——解决办法

【前提】一个winform应用程序项目中,窗体B,需要使用 窗体A 中一个TextBox控件的值,进行计算等操作。 【解决方案】 1.在窗体A中定义:public static double a;// 如果你的TextBox控件有初始默认值,这里一定要改为public static double a=初始值;否则初始值默认为0 2.在窗体A添加函数: pu...

为友盟消息推送开发的PHP SDK(composer版):可以按省发Android push

一直以来APP希望按省市县推送Android push,只能自己分析用户经纬度,打tag发送。 现在终于有服务商提供了。 友盟消息推送 可以“按省推送”,很方便。 我为友盟做了PHP SDK(composer版),提供给大家使用,便于集成到正规项目里。 包:https://packagist.org/packages/sinkcup/umeng-...

winform窗体 小程序【移动窗体和阴影】

窗体无边框设置后无法移动,引用API 使其获得功能 移动 //窗体移动API [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user32.dll")] public static extern bool SendMessage(IntPt...

Winform布局开源框架,Winform控件框架,插件化框架

  什么是Winform框架?   Winform框架是基于.NET开发平台研发的用于快速开发软件项目的软件模板或开发平台,常用的程序语言有C#.NET, VB.NET。   通常Winform框架界面组件使用第三方控件,如:DevExpress,该控件功能强调,用户体验友好。 若全部采用.NET原生组件,开发效率低,界面不美观,用户体验差,特别是基于数...

在App中添加微信分享功能

随着微信平台运用越来越普遍,在app中往往需要将看到的消息发送给微信好友,分享到朋友圈,因此就需要添加微信分享的功能。我们可以通过微信的开发者平台上的相关文档来实现这个简单的功能。 1.在微信开发者平台注册应用程序的id,通过审核后可以获得一个appid 2.有了appID后下载最新的微信终端sdk文件,SDK文件包括 libWeChatSDK.a,WXA...

解决nginx转发websocket报400错误

说明 由于个人服务器上面有多个项目,配置了二级域名,需要对二级域名进行转发,在转发工作这快采取了大名鼎鼎的nginx。在这之前所有的项目运行转发都没问题,然而今天在部署一个具有websocket通信的项目时,却意外的报错了,错误消息如下: 1failed: Error during WebSocket handshake: Unexpected respo...