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

Вниз

WinExec и Ping   Найти похожие ветки 

 
S46E ©   (2006-07-22 14:01) [0]

WinExec(Pchar("ping 127.0.0.1 > c:\1.txt"), SW_show);

пишу в cmd "ping 127.0.0.1 > c:\1.txt" - работает.
пишу в Выполнить - не работает.
пишу в дельфи - тоже.
пишу "ping 127.0.0.1" - везде работает.

Задача: запустить из дельфи "ping 127.0.0.1 > c:\1.txt" что-бы пинг не ругался "Неверный параметр".


 
Anatoly Podgoretsky ©   (2006-07-22 14:20) [1]

Сам же пишешь, что пишешь в CMD, вот и в Дельфи также делай или перенаправляй потоки вывода. Символ переназначения обрабатывается командным процессором.


 
Palladin ©   (2006-07-22 14:56) [2]

символ > это фича коммандного процессора, который, запуская приложение, заменяет stdin на файл указанный после этого символа, ни winexec ни createprocess ни shellexecute естественно этот символ никак не обрабатывают и передают параметром приложению, ping конечно же будет ругаться на этот неизвестный параметр...

потому если хочешь записать вывод результата ping в файл, то придется организовать что то вроде этого...



Var
si:STARTUPINFO;
h:THandle;
pi:PROCESS_INFORMATION;
sa:SECURITY_ATTRIBUTES;
Begin
ZeroMemory(@si,sizeof(si));
With sa Do
 Begin
  nLength:= SizeOf(sa);
  lpSecurityDescriptor:=Nil;
  bInheritHandle:=BOOL(True);
 End;
h:=CreateFile("c:\1.txt",GENERIC_WRITE,0,@sa,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL ,0);
With si do
 Begin
  cb:=SizeOf(si);
  hStdOutput:=h;
  hStdInput:=STD_INPUT_HANDLE;
  hStdError:=STD_ERROR_HANDLE;
  dwFlags:=STARTF_USESTDHANDLES;
 End;
CreateProcess(nil,"ping 127.0.0.1",nil,nil,true,0,nil,nil,si,pi);
WaitForSingleObject(pi.hProcess,WAIT_OBJECT_0);
FileClose(h);
End;



хотя я так понимаю выполняешь ты это с целью последующего чтения из этого файла :) ну а вышеприведенный пример косвенно показывает, что можно обойтись и без файла... как? пусть это будет домашним заданием...



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

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

Наверх




Память: 0.47 MB
Время: 0.053 c
6-1143459925
Ozone
2006-03-27 15:45
2006.08.13
Indy + TCPServer + "Connected" = проблемы


15-1153149555
HeadHunter
2006-07-17 19:19
2006.08.13
Qulix Systems (BelHard) приглашает на работу программистов


15-1153387260
vajo
2006-07-20 13:21
2006.08.13
Ширина и высота ячеек в Excel


2-1153887740
O.O
2006-07-26 08:22
2006.08.13
Имена каталогов


10-1122965770
KVA
2005-08-02 10:56
2006.08.13
встраивание ActiveX формы