int Result = -1;
DWORD ExitCode;
STARTUPINFO si;
PROCESS_INFORMATION pi;
BOOL isProcessRunning;
ZeroMemory((PVOID)&si, (DWORD)sizeof(si));
ZeroMemory((PVOID)&pi, (DWORD)sizeof(pi));
si.cb = sizeof(si);
si.wShowWindow = ShowMode /* SW_SHOWNORMAL */;
Log.Write(AnsiString("Выполнение внешней программы: ") + CmdLine); // Это мой объектик для записи лога…
if(CreateProcess(NULL,
CmdLine.c_str(), // Командная строка типа здеся…
NULL,
NULL,
FALSE,
CREATE_NEW_CONSOLE | NORMAL_PRIORITY_CLASS,
NULL,
WorkDir.c_str(),
&si,
&pi) == TRUE)
{
CloseHandle(pi.hThread);
WaitForInputIdle(pi.hProcess, INFINITE);
WaitForSingleObject(pi.hProcess, INFINITE);
GetExitCodeProcess(pi.hProcess, &ExitCode);
CloseHandle(pi.hProcess);
Result = ExitCode;
Log.Write(AnsiString("Выполнение внешней программы завершено,"
" код возврата ") + AnsiString(ExitCode));
}
else
{
throw Exception("Не могу запустить внешний процесс!");
} // <<< if(CreateProcess(...
Помогите запустить bаt файл из билдера
Сори, забыл как ето делается.
Цитата:
Originally posted by Baglandir
Помогите запустить bаt файл из билдера
Сори, забыл как ето делается.
Помогите запустить bаt файл из билдера
Сори, забыл как ето делается.
Код:
См. также ShellExecuteEx()
Код:
ShellExecute ( Sender, "open", "mybat.bat", NULL, NULL, SW_SHOWNORMAL );
Цитата:
Originally posted by Anton Chik
ага. я вот так это делал
ага. я вот так это делал
Код:
ShellExecute ( Sender, "open", "mybat.bat", NULL, NULL, SW_SHOWNORMAL );
ага, а откуда хэндл запущенного процесса взять?
ShellExecute ( Sender, "open", "mybat.bat", NULL, NULL, SW_SHOWNORMAL );