主页
Top.Mail.Ru Yandeks.Metrika
论坛:“主要”;
当前存档:2002.07.29;
下载:[xml.tar.bz2];

向下

控制台窗口,获取信息 找到类似的分支


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

как? я делаю

过程TForm1.Button1Click(Sender:TObject);
VAR
info:TOSVersionInfo;
ClassName : string;
StartupInfo:TStartupInfo;
ProcessInfo: TProcessInformation;
H:HWND;
Z : PChar;
B : array[0..200] of char;
开始
AllocConsole;
SetConsoleTitle("Delphi Console");
FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
with StartupInfo do begin
cb := SizeOf(TStartupInfo);
dwFlags := STARTF_USESTDHANDLES;
wShowWindow := SW_SHOW;
结束;
if CreateProcess(nil,"c:\nc5\nc.exe",nil,nil,False,
NORMAL_PRIORITY_CLASS,nil,nil,StartupInfo,ProcessInfo)
然后
DosHandle := ProcessInfo.hProcess
其他
开始
ShowMessage("Programm not found"); Exit;
结束;
ConsHndl:=GetStdHandle(STD_OUTPUT_HANDLE);

info.dwOSVersionInfoSize:= sizeof(info);
GetVersionEx(info);
if(info.dwPlatformId = VER_PLATFORM_WIN32_NT)然后开始
ClassName := "ConsoleWindowClass";
结束其他开始
ClassName := "tty";
结束;
H:=FindWindow(PChar(ClassName), "Delphi Console");
ShowMessage(IntToStr(H));
// send a message to a window that holds console
// ShowWindow(H,SW_MINIMIZE);
结束;

procedure TForm1.ReadConsole(Sender: TObject);
VAR
ToWCount, WCount : DWORD;
xy : TCOORD;
我:整数;
ConsoleText : array [0..80] of char;
PConsoleText : PChar;
开始
Memo1.Clear; PConsoleText:=@ConsoleText;
ToWCount:=80; WCount:=0;
对于i:= 0到24
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
结束;
结束;

过程TForm1.Button2Click(Sender:TObject);
开始
ReadConsole(nil);
结束;

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

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



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;
下载:[xml.tar.bz2];

楼上









内存:0.57 MB
时间:0.035 c
1-95318
NEWUSER
2002-07-17 14:20
2002.07.29
弹出窗口


3-95244
Alek_1
2002-07-06 02:27
2002.07.29
从BDE到ADO


14-95558
铺设
2002-07-04 05:56
2002.07.29
俄罗斯DBNavigator


1-95292
VAleksey
2002-07-16 13:29
2002.07.29
调用* .dll后看不见的形式


1-95415
Igor_
2002-07-16 13:30
2002.07.29
有关对象字段的信息





南非荷兰语 阿尔巴尼亚人 阿拉伯语 亚美尼亚 阿塞拜疆 巴斯克 白俄罗斯 保加利亚语 加泰罗尼亚 简体中文 中国(繁体) 克罗地亚 捷克 丹麦语 荷兰人 英语 爱沙尼亚语 菲律宾人 芬兰 法文
加利亚西语 格鲁吉亚语 德语 希腊语 海地克里奥尔语 希伯来语 印地语 匈牙利 北日耳曼语 印度尼西亚人 爱尔兰语 意大利语 日本性玩偶 韩语 拉脱维亚 立陶宛 马其顿 马来语 马耳他语 挪威语
波斯语 波兰语 葡萄牙语 罗马尼亚 俄语 塞尔维亚 斯洛伐克 斯洛文尼亚 西班牙语 斯瓦希里 瑞典语 泰国人 土耳其 乌克兰 乌尔都语 越南人 威尔士语 意第绪语 孟加拉 波斯尼亚
宿务 世界语 古吉拉特语 豪萨语 苗族 伊博 爪哇 卡纳达语 高棉 老挝 拉丁语 毛利 马拉 蒙古人 尼泊尔 旁遮普 索马里 泰米尔人 泰卢固语 约鲁巴语
祖鲁
英文 Французский Немецкий Итальянский Португальский 俄文 Испанский