Вниз
Скачать: CL | DM;

Как под ХР запустить и дождаться завершения дос-приложения ?   Найти похожие ветки 

 
Andrey V. ©   (2003-12-29 13:21) [0]

Как под ХР запустить bat файл или досовское приложение?
Делаю примерно так(под 98 это работает) :
Var
si:STARTUPINFO;
pi:PROCESS_INFORMATION;
cmdline : string;
SaveCursor : TCursor;
begin
result :=false;
SaveCursor :=Screen.Cursor;
Screen.Cursor:=crHourGlass;
try
ZeroMemory(@si,sizeof(si));
si.cb:=SizeOf(si);
//-----------------------
si.dwFlags:=STARTF_USESHOWWINDOW;
si.wShowWindow:=SW_HIDE;
//-----------------------
cmdline:="c:\somejob.bat";
if CreateProcess( nil,// Используем командную строку.
PChar(cmdline), // Командная строка.
nil,
nil, //
False, //
CREATE_SUSPENDED, // флаги создания
nil, // переменные окружения не меняем
nil, // текущая директория не изменна
si, // указатель на структуру STARTUPINFO .
pi ) // указатель на структуру PROCESS_INFORMATION .
then begin
Result:=True;
end;
WaitForSingleObject( pi.hProcess, INFINITE );
тут пробовал и WaitForSingleObject( pi.hProcess, 10000 );
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
except
result:=false;
end;
Screen.Cursor := SaveCursor;
end;

не работает :(


 
alex_*** ©   (2003-12-29 13:47) [1]

что неработает? не запускается? или не ждет?


 
Andrey V. ©   (2003-12-29 19:45) [2]

Если стоит INFINITE - висит (ждет) беконечно долго, пока я его не прибью.
Если WaitForSingleObject( pi.hProcess, 10000 );
то ждет 10 сек и сваливает не выполнив работу , а работы там на 2 секунды. Там что-то типа arj x file.arj

пробовал cmdline:="arj x file.arj"- та же ерунда. Причем из среды все пускается и отрабатывает.


 
Pat ©   (2003-12-30 00:46) [3]

>si.wShowWindow:=SW_HIDE;
Попробуй sw_show и посмотри закрывается ли у тебя окно по окончанию сеанса.


 
Andrey V. ©   (2003-12-31 08:58) [4]

Если кому интиресно ,
надо ставить флаг CREATE_SEPARATE_WOW_VDM.
А в 98 - CREATE_SUSPENDED



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.013 c
3-37529
Witcher
2003-12-16 14:28
2004.01.13
Как скопировать запись?


3-37534
denis24
2003-12-16 11:00
2004.01.13
AdoQuery.close


14-37849
Vlad Oshin
2003-12-23 10:01
2004.01.13
outlook. сохранение вложений.


1-37711
Lony
2004-01-01 17:36
2004.01.13
Работа с файлами


3-37565
User_OKA
2003-12-15 12:53
2004.01.13
Поля




   Наверх