Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.11.2006, 13:56
Kristofer Kristofer вне форума
Начинающий
 
Регистрация: 10.07.2006
Сообщения: 110
Репутация: 10
По умолчанию Cmd

вопрос, можно ли это сделать средствами Delphi
имеем форму с двумя Edit и Mемо (ну или нечто похожее) + кнопка
вводим в первый Edit *.exe
вводим во второй Edit некий параметр
нажимаем на кнопку
и получаем в Мемо содержимое консоли
если можно, подскажите как
Ответить с цитированием
  #2  
Старый 22.11.2006, 16:25
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

Примерно так:

Код:
procedure RunDosInMemo( CmdLine: string; AMemo: TMemo );
const
  ReadBuffer = 2400;
var
  Security: TSecurityAttributes;
  ReadPipe, WritePipe: THandle;
  start: TStartUpInfo;
  ProcessInfo: TProcessInformation;
  Buffer: Pchar;
  BytesRead: DWord;
  Apprunning: DWord;
begin
   Screen.Cursor := CrHourGlass;
   with Security do
   begin
      nlength := SizeOf( TSecurityAttributes );
      binherithandle := true;
      lpsecuritydescriptor := nil;
   end;
   if Createpipe( ReadPipe, WritePipe, @Security, 0 ) then
   begin
      Buffer := AllocMem( ReadBuffer+1 );
      FillChar( Start, Sizeof( Start ), #0 );
      start.cb := SizeOf( start );
      start.hStdOutput := WritePipe;
      start.hStdInput := ReadPipe;
      start.dwFlags := STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW;
      start.wShowWindow := SW_HIDE;
      if CreateProcess( nil, PChar( CmdLine ), @Security, @Security, true,
                        NORMAL_PRIORITY_CLASS, nil, nil,  start, ProcessInfo ) then
      begin
         repeat
            Apprunning := WaitForSingleObject( ProcessInfo.hProcess, 100 );
            ReadFile( ReadPipe, Buffer[0], ReadBuffer, BytesRead, nil );
            Buffer[BytesRead] := #0;
            OemToAnsi( Buffer, Buffer );
            AMemo.Text := AMemo.text + string( Buffer );
            Application.ProcessMessages;
         until ( Apprunning <> WAIT_TIMEOUT );
      end;
      FreeMem( Buffer );
      CloseHandle( ProcessInfo.hProcess );
      CloseHandle( ProcessInfo.hThread );
      CloseHandle( ReadPipe );
      CloseHandle( WritePipe );
   end;
   Screen.Cursor := CrDefault;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   Memo1.Clear;
   Button1.Enabled := false;
   RunDosInMemo( 'ping 127.0.0.1', Memo1 );
   // RunDosInMemo( 'net send 127.0.0.1 Привет', Memo1 );
   Button1.Enabled := true;
end;
а Edit'ы сам добавишь.
Ответить с цитированием
  #3  
Старый 22.11.2006, 19:15
Kristofer Kristofer вне форума
Начинающий
 
Регистрация: 10.07.2006
Сообщения: 110
Репутация: 10
По умолчанию

Попробую
авось получиться
Ответить с цитированием
  #4  
Старый 24.11.2006, 16:02
Kristofer Kristofer вне форума
Начинающий
 
Регистрация: 10.07.2006
Сообщения: 110
Репутация: 10
По умолчанию

Ни чего не вышло,
зависает намертво, выполнение Net Send происходит после принудительного завершения exe
а с Edit вообще труп
Ответить с цитированием
  #5  
Старый 24.11.2006, 21:52
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

У меня все работает нормально. ping.zip.
Ответить с цитированием
  #6  
Старый 25.11.2006, 12:15
Kristofer Kristofer вне форума
Начинающий
 
Регистрация: 10.07.2006
Сообщения: 110
Репутация: 10
По умолчанию

Спасибо вам!
разобрался!
Ответить с цитированием
  #7  
Старый 02.03.2007, 12:05
Delphin2007 Delphin2007 вне форума
Прохожий
 
Регистрация: 02.03.2007
Сообщения: 1
Репутация: 10
По умолчанию

Цитата:
Сообщение от Kristofer
Спасибо вам!
разобрался!

Так если разобрался как net send посылать без подвисания проги подскажи пожалуйста, как это делать... потомучто пинг нормально проходит, а на посылке сообщения прога виснит...
Заранее благодарен..
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:17.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter