Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Почему ничего не происходит при выполнении данного кода ... [D7, XP]


mctarik ©   (2006-06-18 20:36:00) 

function ExecCmd(const aCommand,aPath: String;const aShow, aWaitExit: Boolean): Boolean;
var
pi:PROCESS_INFORMATION;
si:STARTUPINFO;
cmdLine,Path: String;
begin
ZeroMemory(@si,sizeof(si));
si.cb:=SizeOf(si);
si.dwFlags := STARTF_FORCEONFEEDBACK+STARTF_USESHOWWINDOW;
if aShow then si.wShowWindow := SW_SHOWNORMAL else si.wShowWindow := SW_HIDE;
Path := aPath;
cmdLine := aCommand;
Result :=
       CreateProcess( nil
                      PChar(cmdLine),
                      nil,
                      nil,
                      False,
                      0,
                      nil,
                      PChar(Path),
                      si,
                      pi );
if Result then
begin
  CloseHandle(pi.hThread);
  if aWaitExit then WaitForSingleObject( pi.hProcess, infinite );
  CloseHandle(pi.hProcess);
end;
end;

Вызов:
ExecCmd('c:\winnt\system32\cmd.exe /c ping.exe 192.168.0.1>c:\file1.txt','c:\winnt\system32\',true,true);

Почему у меня тоже ничего непишет в фаил, да и не видно запуска ping.exe


mctarik   (2006-06-18 22:57:00) [1]


> Пусик ©   (18.06.06 21:50) [3]

Код то я проверил, и у меня запятая стоит а в вашем примере нет8-)
А вот про каталог подумаю...


Anatoly Podgoretsky   (2006-06-18 21:56:00) [2]

DrPass ©   (18.06.06 21:36) [2]

Зато делает cmd.exe


Пусик   (2006-06-18 21:50:00) [3]

> И не должно. CreateProcess запускает процесс и передает
> в него командную строку. Выделение из строки команд перенаправления
> вывода CreateProcess не делает.


Это вряд ли.


> mctarik ©   (18.06.06 20:36) [0]


Ты даже код как следует не проверил.

Result :=
CreateProcess( nil

Вот здесь запятая должна быть.
У меня все пркекрасно запускается.
Подумай немного головой, какой у тебя системный каталог, где находится cmd.exe, где ping.exe.


DrPass   (2006-06-18 21:36:00) [4]


> Почему у меня тоже ничего непишет в фаил

И не должно. CreateProcess запускает процесс и передает в него командную строку. Выделение из строки команд перенаправления вывода CreateProcess не делает. Для этого есть поле hStdOut в StartupInfo


Virgo_Style   (2006-06-18 21:15:00) [5]


> if Result then


напиши чего-нибудь и в else...


Наверх

Титульная страница Поиск, карта сайта Написать письмо