打开应用程序,关闭应用程序

以前打开应用程序,用的ShellExecuteEx,但是这种方法,不好关闭应用程序

 

   

void rizhishuoming(CString szFilePath)
{
    SHELLEXECUTEINFO ShellInfo;


     memset(&ShellInfo, 0, sizeof(ShellInfo));

     ShellInfo.cbSize = sizeof(ShellInfo);

     ShellInfo.hwnd = NULL;

     ShellInfo.lpVerb = _T("open");

     ShellInfo.lpFile = szFilePath; // 此处写执行文件的绝对路径

     ShellInfo.nShow = SW_SHOWNORMAL;

     ShellInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
       
     ShellExecuteEx(&ShellInfo);

}

 

现在改成线程的,可以软件关闭应用程序,例子:打开一个TXT文本

    PROCESS_INFORMATION pi;

    TCHAR szAppName[_MAX_PATH] = TEXT("pword.exe");
    TCHAR szCmdLine[_MAX_PATH] = _T("//jilu.txt");
    CreateProcess(szAppName,szCmdLine, NULL, NULL,FALSE, 0, NULL, NULL, NULL, &pi);

 

 

关闭应用程序:例子:关闭刚才打开的TXT文本

    TerminateProcess(pi.hProcess,0);

 

参考:

 

CreateProcess( 
LPCWSTR lpszImageName, //指向可执行的模块的指针 
LPCWSTR lpszCmdLine, //指向可执行命令行字符串的指针 
LPSECURITY_ATTRIBUTES lpsaProcess, //CE 不支持 
LPSECURITY_ATTRIBUTES lpsaThread, //CE 不支持 
BOOL fInheritHandles, //CE 不支持 
DWORD fdwCreate, //创建标志 
LPVOID lpvEnvironment, //CE 不支持 
LPWSTR lpszCurDir, //CE 不支持 
LPSTARTUPINFOW lpsiStartInfo, //CE 不支持 
LPPROCESS_INFORMATION lppiProcInfo //指向进程信息结构体的指针 
); 


//其他情况使用
该函数最重要的两个参数是lpszImageName和lpszCmdLine,下面的几个应用也主要是通过设置这两个参数来达到目的。(以下的程序在Pocket PC 2003 SE上通过测试) 
1、打开指定的URL 
TCHAR szAppName[_MAX_PATH] = TEXT("iexplore.exe");//IE浏览器程序 
TCHAR szCmdLine[_MAX_PATH] = TEXT("http://www.cnblogs.com"); 
CreateProcess(szAppName,szCmdLine, NULL, NULL,FALSE, 0, NULL, NULL, NULL, NULL); 

2、打开指定的文件夹 
TCHAR szAppName[_MAX_PATH] = TEXT("fexplore.exe");//资源管理器程序 
TCHAR szCmdLine[_MAX_PATH] = TEXT(//Windows//); 
CreateProcess(szAppName,szCmdLine, NULL, NULL,FALSE, 0, NULL, NULL, NULL, NULL); 

3、打开帮助文件 
PROCESS_INFORMATION pi; 
TCHAR szAppName[_MAX_PATH] = TEXT("peghelp.exe");//系统帮助程序,PC上是在c:/WINDOWS目下的winhlp32.exe 
TCHAR szCmdLine[_MAX_PATH] = TEXT("myhelp.html");//自己制作的帮助文档,甚至是系 
//统原有的帮助文件,如wince.htm、bluetooth.htm等等。myhelp.html应该放在/Windows目录下 
CreateProcess(szAppName,szCmdLine, NULL, NULL,FALSE, 0, NULL, NULL, NULL, &pi); 
通过以上的方式,可以在自己的应用程序里打开相应的帮助文件。 
从以上的3种应用可以看出,只要知道系统自带的应用程序名,就可以通过设定szAppName和szCmdLine相应的值,来调用相应的程序,来达到自己想要的目的。只要认真挖掘,一定可以发现更多的应用。

 

 

作者:cfanlwn

时间:2010-08-13   14:49:48

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值