パラメータ lpCurrentDirectory を指定して createprocess() を使用してアプリケーションからプロセスを作成しましたが、機能しません。「指定されたパスが見つかりません」というエラーが表示されます。私のコードは
CreateProcess( "XYZ\\bin\\run.bat", NULL, NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, "XYZ\\bin", &siStartupInfo, &piProcessInfo ) ;
、GetCurrentDir() を使用して現在のディレクトリを取得し、現在のディレクトリに追加することで、lpCurrentDirectory としてフル パスを指定するXYZ\\bin
こともできますが、それでも機能しません。バッチ ファイルを lpCurrentDirectory から実行したい。createProcess() が lpCurrentDirectory パラメータでどのように機能するかわかりません。フルパスまたは相対パスを期待していますか?
フルパスをハードコーディングしてこれも試しましたが、同じエラーが表示されます。実際、私の元のコードは、 `
char cCurrentPath[FILENAME_MAX];
if (!GetCurrentDir(cCurrentPath, sizeof(cCurrentPath)))
{
printf("\n error...");
}
string path(cCurrentPath);
path += "\\XYZ\\bin";
wstring_convert<std::codecvt_utf8<wchar_t>> converter;
wstring wstringData = converter.from_bytes(path);
TCHAR lpszClientPath[500]= TEXT("XYZ\\bin\\run.bat /y");
if(::CreateProcess(NULL, lpszClientPath, NULL, NULL, TRUE, CREATE_NEW_CONSOLE,NULL, wstringData.c_str(), &si, &pi) > 0)
`。