深入浅出ShellExecute

Q:   如何打开一个应用程序?
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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值