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

Вниз

консольное окно, взять информацию   Найти похожие ветки 

 
RV ©   (2002-07-16 11:01) [0]

как? я делаю

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;
wShowWindow := SW_SHOW;
end;
if CreateProcess(nil,"c:\nc5\nc.exe",nil,nil,False,
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.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;

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

все получается, а если не чисто досовское окно, то оно остается просто черным и соответственно инфа не берется

чего делать, как заставить окно отображать текст?


 
Song ©   (2002-07-16 11:15) [1]

CreatePipe() не легче ?


 
RV ©   (2002-07-16 13:42) [2]

прошу прощения за неверный вопрос
мне тогда надо как запустить консольное приложение, так что-бы в нем отображались буковки
а то у меня черный экран, а окно нужно не только для взятия из него информации


 
FLAME   (2002-07-16 15:51) [3]

Может быть стоит попробовать в CreateProcess(nil,"c:\nc5\nc.exe",nil,nil,False,NORMAL_PRIORITY_CLASS,nil,nil,StartupInfo,ProcessInfo)
указать CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS


 
RV ©   (2002-07-17 08:47) [4]

Вигвам, однако. Не получилось, опять черное окно
а может быть что это просто прога такая? (HyTech SQL-сервер, если кто знает)
Ау, мастера! Хелп ми!


 
RV ©   (2002-07-17 15:36) [5]

нет ни у кого мыслей?
или отказаться от этой затеи? конектится к нему уж больно не охота ради чтения одной строчки...



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

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

Наверх




Память: 0.47 MB
Время: 0.026 c
1-95282
DenKop
2002-07-17 01:04
2002.07.29
LPT


1-95297
Leny
2002-07-15 08:20
2002.07.29
Потоки


1-95384
chak
2002-07-15 11:42
2002.07.29
Создание


7-95577
KUAW
2002-05-13 16:35
2002.07.29
Как БЫСТРО повернуть область Canvas-a заданную TRect на 90 град.


3-95266
UnDISCOvery
2002-07-08 14:15
2002.07.29
MS ADO. Как определить установлено ли ?