ShellExecute用法种种

本文介绍如何使用ShellExecute函数执行各种操作,包括打开应用程序、文档、网页、发送电子邮件、打印文档、查找文件、显示文件属性等。

 


作者 :cooldog 日期 :2005-01-20

字体大小 :

 

 

Q: 如何打开一个应用程序?

ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW ); ShellExecute(this->m_hWnd,"open","notepad.exe","c://MyLog.log","",SW_SHOW ); 正如您所看到的,我并没有传递程序的完整路径。

 

Q: 如何打开一个同系统程序相关连的文档? ShellExecute(this->m_hWnd,"open","c: //abc.txt","","",SW_SHOW );

 

Q: 如何打开一个网页?

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

 

Q: 如何激活相关程序,发送 EMAIL

ShellExecute(this->m_hWnd,"open","mailto:nishinapp@yahoo.com",""," ", SW_SHOW );

 

Q: 如何用系统打印机打印文档?

ShellExecute(this->m_hWnd,"print","c://abc.txt ","","", SW_HIDE);

 

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

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

 

Q: 如何启动一个程序,直到它运行结束?

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...");

}

 

Q: 如何显示文件或文件夹的属性?

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);

### 回答1: `ShellExecute` 是 Windows API 函数,用于在 Windows 操作系统中执行程序或文件。使用方法如下: ``` ShellExecute(NULL, "open", "C:\\Program Files\\MyProgram\\MyProgram.exe", NULL, NULL, SW_SHOWNORMAL); ``` - 第一个参数为父窗口句柄,通常为 NULL。 - 第二个参数为执行动作,通常为 "open"。 - 第三个参数为要执行的程序或文件路径。 - 第四个参数为命令行参数,通常为 NULL。 - 第五个参数为工作目录,通常为 NULL。 - 第六个参数为窗口显示状态,通常为 SW_SHOWNORMAL。 注意:使用 `ShellExecute` 函数需要在程序中包含 `Shellapi.h` 头文件。 ### 回答2: ShellExecute是Windows API中一个非常重要的函数,它可以让我们在Windows操作系统中启动其他应用程序或打开文件等等操作。ShellExecute是一个非常高级的函数,同时也是使用最为广泛的函数之一。ShellExecute可以完成以下的操作: 打开文件:ShellExecute可以帮我们打开指定的文件,并且可以指定打开方式(仅读、写、读写、新窗口等等)。 打开网址:ShellExecute可以通过默认的浏览器打开指定的网址。 执行其他程序:ShellExecute可以启动其他的程序,比如说我们可以使用它启动计算器、记事本等程序。 发送电子邮件:ShellExecute可以启动默认的邮件程序,并创建一封新邮件。 在Shell中运行DOS命令:ShellExecute可以通过cmd.exe来执行DOS命令。 ShellExecute用法非常简单,我们只需要在需要使用的地方,调用ShellExecute函数,并将参数传入即可。ShellExecute函数的参数包含非常多的信息,都是我们需要处理的数据,比如说文件路径、打开方式、窗口句柄等等。比较重要的参数如下: HWND hwnd:表示父窗口的句柄。 LPCTSTR lpOperation:表示操作名称,可以为空,例如open、explore、print等等。 LPCTSTR lpFile:表示要操作的文件名,可以是本地文件路径或一个Web地址。 LPCTSTR lpParameters:表示文件名后面跟随的命令行参数。 LPCTSTR lpDirectory:表示工作目录,如果是NULL,则使用当前目录。 INT nShowCmd:表示窗口的显示方式,例如SW_SHOW、SW_HIDE等等。 总之,ShellExecute是Windows API中非常实用的一个函数,因为他可以帮我们启动其他程序,打开文件、网页,执行DOS命令,并具有传参,指定窗口句柄、指定打开方式、指定工作目录等等功能。这使得我们可以在编写程序时,完全按照自己的需求来完成各种操作,提高了程序的灵活性和可扩展性。 ### 回答3: Shellexecute是Windows API中的一个函数,可用于打开或执行任何类型的文件。 该函数可以将指定文件与系统中的默认应用程序关联,以便在打开文件时使用该应用程序。 在Windows操作系统中,使用Shellexecute函数可以打开文件、网址、电子邮件地址等。 Shellexecute函数可以在使用较小的代码量和不需要依赖特定的编程语言还可以使用。 Shellexecute函数有以下语法: HINSTANCE ShellExecute(HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd); 参数: hwnd:指向一个父级窗口的指针。可以将其设置为NULL,以便创建一个独立的窗口。 lpOperation:操作字符串,用于指定要执行的动作。在常规的文件操作中,该字符串通常为“open”。 lpFile:包含文件名和位置的字符串。 lpParameters:用于传递附加参数的字符串。 可以将其设置为NULL。 lpDirectory:当前文件夹的位置,如果未指定,可以将其设置为NULL。 nShowCmd:用于指定窗口显示方式的参数。 例如,可以将其设置为SW_SHOW以显示窗口。 使用Shellexecute函数,只需要传递相应的参数即可打开指定的文件。 例如,可以使用以下代码行打开一个网站: ShellExecute(NULL, L"open", L"http://www.google.com", NULL, NULL, SW_SHOWNORMAL); 在这种情况下,传递了操作字符串“open”,指定了网站的URL,并且未使用附加参数。 该函数的返回值为HINSTANCE类型,表示文件执行的结果,如果执行成功,该函数返回值为大于32的整数,否则为NULL。 总的来说,Shellexecute函数是一个非常方便和实用的Windows API,它可以用于打开或执行任何类型的文件,并能够与系统中的默认应用程序关联。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值