Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.013 c
9-8241
Polymorphic
2003-04-30 16:36
2003.11.03
AccessViolation при уничтожении интерфейсов


3-8336
grifon-nn
2003-10-14 16:59
2003.11.03
Проблемы с Paradox


1-8372
DimaK
2003-10-21 23:42
2003.11.03
MainMenu


8-8550
dozer
2003-06-29 01:05
2003.11.03
ShockwaveFlash в Delphi


4-8729
konstantinov
2003-08-30 23:04
2003.11.03
Помогите с указателями





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский