Форум: "WinAPI";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];
ВнизCreateProcess или что делаю не так? Найти похожие ветки
← →
BillyJeans (2003-07-01 09:23) [0]Подскажите, почему не работает следующий код?
procedure TMainForm.StartClick;
var
FileName: String;
si: STARTUPINFO;
pi: PROCESS_INFORMATION;
begin
FileName := "Start.bat"#0;
ZeroMemory(@si, SizeOf(STARTUPINFO));
si.cb := SizeOf(STARTUPINFO);
si.wShowWindow := SW_HIDE;
si.dwFlags := STARTF_USESHOWWINDOW;
CreateProcess(nil, PChar(FileName), nil, nil, False,
IDLE_PRIORITY_CLASS or DETACHED_PROCESS,
( pi.hThread) Подскажите, почему не работает следующий код?
procedure TMainForm.StartClick;
var
FileName: String;
si: STARTUPINFO;
pi: PROCESS_INFORMATION;
begin
FileName := "Start.bat"#0;
ZeroMemory(@si, SizeOf(STARTUPINFO));
si.cb := SizeOf(STARTUPINFO);
si.wShowWindow := SW_HIDE;
si.dwFlags := STARTF_USESHOWWINDOW;
CreateProcess(nil, PChar(FileName), nil, nil, False,
IDLE_PRIORITY_CLASS or DETACHED_PROCESS,
nil, nil, si, pi);
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
end;
← →
Lord Warlock (2003-07-01 09:33) [1]может вот по этому:
FileName := "Start.bat"#0;
тк CreateProcess - API функция, ей надо передавать полный путь к файлу.
А еще посмотри, что возвращает CreateProcess, True или False
← →
BillyJeans (2003-07-01 09:47) [2]я уже пробовал
FileName := "c:\Start.bat"#0;
и всеравно :(
← →
Lord Warlock (2003-07-01 10:03) [3]Еще вызывают подозрение флаги, лично я выставляю 0.
← →
BillyJeans (2003-07-01 13:24) [4]из флагов оставил только DETACHED_PROCESS, вроде даже заработало!
Но под w98 в памяти после выполнения батника остается процесс :(
Под w2000 батник отработав выгружается из памяти нормально.
← →
Morfein (2003-07-01 16:22) [5]А причём здесь вообще CreateProcess()?
uses
ShellAPI;
begin
ShellExecute(0, nil, "start.bat", nil, nil, SW_SHOWNORMAL);
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c