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

Вниз

надеюсь несложный вопрос   Найти похожие ветки 

 
and00   (2002-08-23 10:37) [0]

Здравствуйте, подскажите пожалуйста, как перехватить сообщение сомманды ipconfig в TListBox


 
RV ©   (2002-08-23 11:37) [1]

а зачем?
можно создать консоль, запустить ipconfig, да и считать.

procedure TForm1.Button1Click(Sender: TObject);
var
info : TOSVersionInfo;
ClassName : string;
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;

H : HWND;
Z : PChar;
B : array[0..200] of char;
Begin
AllocConsole;
SetConsoleTitle("Delphi Console");
FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
with StartupInfo do begin
cb := SizeOf(TStartupInfo);
dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW;
wShowWindow := SW_SHOW;
end;
if CreateProcess(nil,"ipconfig.exe"{Path to starting DOS exe-file},
nil,nil,False{False True},NORMAL_PRIORITY_CLASS,nil,nil,StartupInfo,ProcessInfo)
then
DosHandle := ProcessInfo.hProcess
else
begin
ShowMessage("Programm not found"); Exit;
end;
ConsHndl:=GetStdHandle(STD_OUTPUT_HANDLE);

info.dwOSVersionInfoSize := sizeof(info);
GetVersionEx(info);
if (info.dwPlatformId = VER_PLATFORM_WIN32_NT) then begin
ClassName := "ConsoleWindowClass";
end else begin
ClassName := "tty";
end;
H:=FindWindow(PChar(ClassName), "Delphi Console");
ShowMessage(IntToStr(H));
////send a message to a window that holds console
ShowWindow(H,SW_MINIMIZE);
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
ReadConsole(nil);
end;

procedure TForm1.ReadConsole(Sender: TObject);
var
ToWCount, WCount : DWORD;
xy : TCOORD;
i : Integer;
ConsoleText : array [0..80] of char;
PConsoleText : PChar;
Begin
Memo1.Clear; PConsoleText:=@ConsoleText;
ToWCount:=80; WCount:=0;
for i := 0 to 24 do
begin xy.X := 0; xy.Y := i;
FillChar(ConsoleText, SizeOf(ConsoleText), 0);
ReadConsoleOutputCharacter(ConsHndl, @ConsoleText, ToWCount, xy, WCount);
Memo1.Lines.Append(String(PConsoleText)); // console text
end;
end;

надеюсь это то что те надо


 
And00   (2002-08-30 09:22) [2]

Спасибо, примерно так и хотел сделать.


 
Ученик ©   (2002-08-30 09:32) [3]

Еще вариант:

procedure TForm1.Button1Click(Sender: TObject);
var
pi : TProcessInformation;
si : TStartupInfo;
begin
FillChar(si, SizeOf(TStartupInfo), 0);
si.cb := SizeOf(TStartupInfo);
si.dwFlags := STARTF_USESHOWWINDOW;
si.wShowWindow := SW_HIDE;
if CreateProcess(NIL, "command.com /c ipconfig.exe >c:\ipconfig.txt",
NIL, NIL, False, 0, NIL, NIL, si, pi) then try
WaitForSingleObject(pi.hProcess, INFINITE)
finally
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess)
end;
ListBox1.Items.LoadFromFile("c:\ipconfig.txt")
end;



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

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

Наверх




Память: 0.47 MB
Время: 0.014 c
8-27126
JC
2002-05-04 14:49
2002.09.09
Универсальный графический формат.


4-27263
Rumrunner
2002-04-19 01:54
2002.09.09
Email Attachment


4-27256
asmer
2002-07-07 15:26
2002.09.09
Accelerators в модальном диалоговом окне


1-27084
Tornado
2002-08-27 15:42
2002.09.09
Компонент


1-27032
oomneeq
2002-08-26 23:21
2002.09.09
Format function & VarArray