如何建立虚拟控制台(150分)

  • 主题发起人 主题发起人 lynx
  • 开始时间 开始时间
L

lynx

Unregistered / Unconfirmed
GUEST, unregistred user!
某些dos程序(如edit)运行是需依附在一个控制台上(console),其输入输出都直接通过控制台(CONIN/CONOUT),而不是标准输入/输出(STDIN/STDOUT),请问如何建立一个虚拟的控制台队此类程序的运行进行控制?
谢谢

小马哥
 
是想让程序DOS在你编的虚拟控制台下运行,
还是自己编控制台程序,没看懂。
 
是想让程序DOS在我编的虚拟控制台下运行
即不让dos窗口出现在屏幕上,用程序控制其I/O
 
难,需要和V86模式通讯,监视直接写屏。实现起来难度很大。
 
简单呀!如果你用过VC的话就知道,VC的编译和连接都是命令行程序进行的,
在集成环境之中调用这些命令行工具,把它们的输出显示在了Output窗口里面。

实现的原理很简单,不需要什么V86和监视屏幕,只是在调用CreateProcess的时
候把标准输入和标准输出,标准错误的STDHandle给替换掉而已。

我这里有VC和Delphi的例子程序,演示如何这样做,需要的话给我<a href="mailto:peg@263.net">发信</a>或者在这里留地址
 
lynx说的是控制台I/O,即头文件是<conio.h>中的函数,而不是标准I/O,
即<stdio.h>中的函数.
 
lynx说的是控制台I/O,即头文件是<conio.h>中的函数,而不是标准I/O,
即<stdio.h>中的函数.
 
不用《》括号了,搞了两次都被当作HTML标记.

lynx说的是控制台I/O,即头文件是(conio.h)中的函数,而不是标准I/O,
即(stdio.h)中的函数.
 
不好意思, 没有看轻题目, 我以为是通常所说的控制台呢,sigh.

DOS的EDIT另开了控制台?没有吧?只是使用了传统的键盘控制和显存直接输出,这也叫控制台?

自己编写一个内存主流程序监视现存,并和GUI程序通讯,送案件消息到DOS的键盘缓冲区,把显存的变化发到GUI前台来。

问题是这样做的意义何在?
 
V86模式通讯?能说详细点吗,或哪儿能找到资料?
"直接写屏",不用写屏,虚拟控制台不用出现在屏幕上,
只是接管其输入输出即可.

欢迎继续讨论:-)
 
请接受答案或继续提问
 
请大家继续讨论
:-))
 
type input.txt|abc.exe>output.txt 不就可以了吗?
 
<a href="http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=178567">请看本人作答,或许有用</a>
 
接受答案了.
 

Similar threads

D
回复
0
查看
833
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部