Главная страница
    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
4-8707
MadMag
2003-09-01 13:09
2003.11.03
не идет работа с ком портом из dll


1-8438
undert
2003-10-14 22:55
2003.11.03
Rave PDF Render


1-8488
Yurik_Jmurik
2003-10-23 23:12
2003.11.03
Звук и обьём ОП


3-8283
rosl
2003-10-09 02:32
2003.11.03
sql


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