如何从与应用程序相同的文件夹中运行exe

时间:2013-07-28 06:28:54

标签: c++ c winapi

我正在使用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文件的代码,但我不希望这个文件使用静态位置,如何在应用程序文件夹中添加文件,并且同样添加了设置文件。

1 个答案:

答案 0 :(得分:0)

尝试使用此代码运行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, ...