Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.03;
Скачать: CL | DM;

Вниз

CreateProcess и ошибки   Найти похожие ветки 

 
S@shka ©   (2003-10-23 12:13) [0]

Есть вот тако кусок кода
var
si:STARTUPINFO;
pi:PROCESS_INFORMATION;
cmdline:string;
begin
ZeroMemory(@si,sizeof(si));
si.cb:=SizeOf(si);
cmdline:="C:\command.com";
si.dwFlags := STARTF_USESHOWWINDOW;
si.wShowWindow := SW_HIDE;
if not CreateProcess( nil, // No module name (use command line).
PChar(cmdline), // Command line.
nil, nil,False,0,nil,nil, si,pi )
then begin
ShowMessage( "CreateProcess failed." );
Exit;
end;
WaitForSingleObject( pi.hProcess, INFINITE );
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
ShowMessage("Done ! ");
ВНИМАНИЕ ВОПРОС....
Ошибки типа неправильный формат Cmdline (например, нет такой комманды и т.п.) отлавливаются и уходят в "CreateProcess failed."
А как отлавливать если cmdline корректна а ошибка возникает в ОС на этапе выполнения комманды?
Например, copy C:\aaa.txt M:\ - не существует пути М:\
По справке это GetLastError() - но как ее использовать???


 
clickmaker ©   (2003-10-23 12:23) [1]

GetExitCodeProcess ?


 
Fiend ©   (2003-10-23 12:23) [2]

var Msg: PChar;

Msg:= AllocMem(65535);
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, nil, GetLastError, 0, Msg, 65535, nil);
ShowMessage(Msg);
FreeMem(Msg);

иногда нужно чтобы система использовала форматирование сообщения об ошибке и добавляла туда параметры. Для этого слегка другая конструкция вызова FormatMessage.


 
Zacho ©   (2003-10-23 12:25) [3]


> S@shka © (23.10.03 12:13)
> По справке это GetLastError() - но как ее использовать???

В смысле, как ? Так и используй. Если хочешь кроме кода ошибки получить еще и текст сообщения - то используй FormatMessage.


 
S@shka ©   (2003-10-23 12:58) [4]

Собсьвенно
выполнял я вот такую комманду
cmdline:="net use Z: \\Alfa\Com"
...
res := GetLastError();
В итоге если такой ресурс есть и соединение происходит
res=1447
если такого ресурса нет то есно net use даст ошибку, по-моему 53
но оптять
res=1447
это и ???



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

Текущий архив: 2003.11.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
1-8341
Andreev Pavel
2003-10-17 16:34
2003.11.03
Ветки в Object TreeView


14-8622
undert
2003-10-14 23:00
2003.11.03
Помогите


1-8348
MaXie
2003-10-23 12:01
2003.11.03
Как дождаться завершение приложения?


14-8589
Max Zyuzin
2003-10-15 14:08
2003.11.03
McAfee pro v7.02


6-8573
Ellik
2003-09-05 14:08
2003.11.03
Отправить E-mail, подцепив файл