Форум: "Основная";
Текущий архив: 2002.09.09;
Скачать: [xml.tar.bz2];
Внизнадеюсь несложный вопрос Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c