现在的位置: 首页 > 综合 > 正文

ShellExecute 用法收集

2013年08月12日 ⁄ 综合 ⁄ 共 1832字 ⁄ 字号 评论关闭

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

抱歉!评论已关闭.