Главная страница
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.048 c
6-1143620055
Std
2006-03-29 12:14
2006.08.13
Определение IP


1-1151428916
Наиль
2006-06-27 21:21
2006.08.13
COM-объект и слово SET


15-1153050877
novoalex
2006-07-16 15:54
2006.08.13
Ищю работу...


1-1150884112
Darrin
2006-06-21 14:01
2006.08.13
EOSError при закрытии приложения


2-1153722484
Levin_610
2006-07-24 10:28
2006.08.13
Сервис, снова