Консультация № 29876
20.11.2005, 16:41
0.00 руб.
0 5 2
Здравствуйте!Скажите пожалуйста, как узнать результат выполнения консольного приложения. Я запускаю Winexec(\\‘rar.exe e lll.rar\\‘) и хочу узнать-успешно ли прошла розпаковка...
Спасиибо.

Обсуждение

давно
Мастер-Эксперт
425
4118
20.11.2005, 17:00
общий
это ответ
Здравствуйте, Андрей Дрофяк!
Запускайте консоль с ключом /k, тогда увидите что она наработала.
В Вашем случае:
Winexec(‘cmd.exe /k rar.exe и так далее‘);
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
20.11.2005, 20:03
общий
это ответ
Здравствуйте, Андрей Дрофяк!

Приведите полный код приложения. Иначе не разобраться.
Неизвестный
22.11.2005, 18:44
общий
Я делал так1. процедура розпаковкиprocedure Unpack_File(FFileName:string);var str : string;str2 : array [0..75] of char;P : PChar;a:word;Sdo_current:string;beginSdo_current:=GetCurrentDir;SetcurrentDir(InDir);str:=InDir+‘rar.exe e "‘+FFileName+‘" -ep -o+‘;execWait(str);delay(3000);{StrPCopy(str2, str);P := @str2;Trya:=WinExec(P, SW_HIDE);exceptIf (a=ERROR_FILE_NOT_FOUND) or (a=ERROR_PATH_NOT_FOUND) Then showMessage(‘Îïåðàö³ÿ çàïóñêó ñêðèïòà çàâåðøèëàñü àâàð³éíî‘);end;}SetcurrentDir(Sdo_current);end;и вызов процедурыUnpack_File(Название файла)
Неизвестный
22.11.2005, 18:45
общий
а да процедура execWaitprocedure execWait(const comLine:string);varsi:Tstartupinfo;p:Tprocessinformation;beginfillChar( Si, SizeOf( Si ) , 0 );with Si do begincb := SizeOf( Si);dwFlags := startf_UseShowWindow;wShowWindow := 4;end;Createprocess(nil,pChar(comLine),nil,nil,false,Create_default_error_mode,nil,nil,si,p);Waitforsingleobject(p.hProcess,infinite);end;
Неизвестный
22.11.2005, 18:49
общий
Вариант с ‘cmd /k‘ неработает- просто выкидивает консоль без ошибки и ждёт команды на выполнение. А уменя програма постоянно висит в трее и распаковывает файлы без меня. Я туда заглядываю раз в месяц-мне б это дело писать в лог(было б прекрасно)
Форма ответа