替换system()以运行不在后台打开cmd窗口的.exe文件

时间:2013-03-25 05:44:07

标签: visual-c++ visual-studio-2005 cmd

我正在使用visual studio 2005并在我的系统中安装了7。在c ++中,我使用URLDownloadToFile()从本地服务器下载.exe。下载后我需要运行这个.exe文件。我能够使用系统(“.exe文件的路径”)执行此操作,但它在后台打开一个cmd窗口。任何人都可以告诉我,我可以用什么方法来替换不能在后台打开cmd窗口的system()。

我还尝试了以下方法

 1. ShellExecute(NULL,(LPCWSTR) "explore",(LPCWSTR) "C:/Users/ay\\AppData/Roaming/path-here/file.exe", NULL, NULL, SW_SHOWNORMAL);
 2.     LPTSTR szCmdline = _tcsdup(TEXT("C:\\Users\\ay\\AppData\\Roaming\\path-here\\file.exe -L -S"));
        CreateProcess(NULL, szCmdline,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);

但这些命令都不能开始运行我的.exe文件。提前谢谢。

1 个答案:

答案 0 :(得分:0)

成功下载后,请尝试以下解决方案。

CString exeFileName;
ShellExecute(NULL, _T("open"), exeFileName.GetBuffer(), NULL, sExePresentInDirectory, SW_SHOWNORMAL);

exeFileName.ReleaseBuffer();

我试过,它运作正常。

如需更多帮助,请参阅this