我正在使用MFC应用程序,我有一个由MFC应用程序运行的文件
LPWSTR appParams = A2W(final.c_str());
PROCESS_INFORMATION ProcessInfo; //This is what we get as an [out] parameter
STARTUPINFO StartupInfo; //This is an [in] parameter
ZeroMemory(&StartupInfo, sizeof(StartupInfo));
StartupInfo.cb = sizeof StartupInfo ; //Only compulsory field
if(CreateProcess(L"E:\\Setup\\vncviewer.exe",appParams,NULL,NULL,FALSE,0,NULL,NULL,&StartupInfo,&ProcessInfo))
{
WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
}
上面是在位置e:\ setup \上运行vncviewer.exe文件的代码,但是我不希望该文件使用静态位置,我如何在应用程序文件夹中添加文件,并且在安装文件上也添加了相同的代码。
最佳答案
尝试使用以下代码运行exe:
TCHAR szExeName[_MAX_PATH], drive[_MAX_DRIVE], dir[_MAX_DIR], fname[_MAX_FNAME], ext[_MAX_EXT];
GetModuleFileName(hInst, szExeName, _countof(szExeName));
_tsplitpath_s(szExeName, drive, dir, fname, ext);
_tmakepath(szExeName, drive, dir, L"vncviewer", L".exe");
if (CreateProcess(szExeName, ...