Главная страница
    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.45 MB
Время: 0.008 c
1-8527
han-bratan
2003-10-23 15:41
2003.11.03
OutputDebugString


3-8306
miklo
2003-10-13 13:14
2003.11.03
Перекодировка базы Dos-Win1251 в Interbase v.5.6


6-8560
Александр из Минска
2003-09-07 14:26
2003.11.03
Можно ли переслать директорию?


1-8522
__Я__
2003-10-23 16:20
2003.11.03
Сервисы в NT


1-8504
Dimaz-z
2003-10-23 20:10
2003.11.03
Как выводить пропорциональную картину в DBImage?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский