深入浅出ShellExecute

原创 2002年08月27日 14:28:00
 

深入浅出ShellExecute
译者:徐景周(原作: Nishant S )

Q: 如何打开一个应用程序?<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW );

ShellExecute(this->m_hWnd,"open","notepad.exe",

    "c://MyLog.log","",SW_SHOW );

As you can see, I haven't passed the full path of the programs.

 

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

 

深入浅出ShellExecute

Q: 如何打开一个应用程序? ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW ); 或 ShellExecute(this-...
  • u013472838
  • u013472838
  • 2015年08月18日 10:49
  • 152

ShellExecute用法种种

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

ShellExecute 的使用方法总结

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

ShellExecute使用详解

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

ShellExecute使用详解

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

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

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

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

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

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

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

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

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

日常工作问题总结(三十二)shellExecute、shellExecuteEx、WinExec、CreateProcess的区别

shellExecute,shellExecuteEx,WinExec,CreateProcess这几个函数有
  • wu_123_456
  • wu_123_456
  • 2014年10月09日 11:11
  • 2168
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深入浅出ShellExecute
举报原因:
原因补充:

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