Форум по 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
По умолчанию

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

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<b>procedure</b> RunDosInMemo( CmdLine: <b>string</b>; AMemo: TMemo );
<b>const</b>
  ReadBuffer = <font color="RoyalBlue">2400</font>;
<b>var</b>
  Security: TSecurityAttributes;
  ReadPipe, WritePipe: THandle;
  start: TStartUpInfo;
  ProcessInfo: TProcessInformation;
  Buffer: Pchar;
  BytesRead: DWord;
  Apprunning: DWord;
<b>begin</b>
   Screen.Cursor := CrHourGlass;
   <b>with</b> Security <b>do</b>
   <b>begin</b>
      nlength := SizeOf( TSecurityAttributes );
      binherithandle := true;
      lpsecuritydescriptor := <b>nil</b>;
   <b>end</b>;
   <b>if</b> Createpipe( ReadPipe, WritePipe, @Security, <font color="RoyalBlue">0</font> ) <b>then</b>
   <b>begin</b>
      Buffer := AllocMem( ReadBuffer+<font color="RoyalBlue">1</font> );
      FillChar( Start, Sizeof( Start ), <font color="RoyalBlue">#0</font> );
      start.cb := SizeOf( start );
      start.hStdOutput := WritePipe;
      start.hStdInput := ReadPipe;
      start.dwFlags := STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW;
      start.wShowWindow := SW_HIDE;
      <b>if</b> CreateProcess( <b>nil</b>, PChar( CmdLine ), @Security, @Security, true,
                        NORMAL_PRIORITY_CLASS, <b>nil</b>, <b>nil</b>,  start, ProcessInfo ) <b>then</b>
      <b>begin</b>
         <b>repeat</b>
            Apprunning := WaitForSingleObject( ProcessInfo.hProcess, <font color="RoyalBlue">100</font> );
            ReadFile( ReadPipe, Buffer[<font color="RoyalBlue">0</font>], ReadBuffer, BytesRead, <b>nil</b> );
            Buffer[BytesRead] := <font color="RoyalBlue">#0</font>;
            OemToAnsi( Buffer, Buffer );
            AMemo.Text := AMemo.text + string( Buffer );
            Application.ProcessMessages;
         <b>until</b> ( Apprunning <> WAIT_TIMEOUT );
      <b>end</b>;
      FreeMem( Buffer );
      CloseHandle( ProcessInfo.hProcess );
      CloseHandle( ProcessInfo.hThread );
      CloseHandle( ReadPipe );
      CloseHandle( WritePipe );
   <b>end</b>;
   Screen.Cursor := CrDefault;
<b>end</b>;
 
<b>procedure</b> TForm1.Button1Click(Sender: TObject);
<b>begin</b>
   Memo1.Clear;
   Button1.Enabled := false;
   RunDosInMemo( <font color="RoyalBlue">'ping 127.0.0.1'</font>, Memo1 );
   <i><font color="RoyalBlue">// RunDosInMemo( 'net send 127.0.0.1 Привет', Memo1 );</font></i>
   Button1.Enabled := true;
<b>end</b>;
а 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, время: 17:36.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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