如何内嵌一个DOS窗口?(50分)

  • 主题发起人 主题发起人 wein
  • 开始时间 开始时间
W

wein

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个程序,在里面想内嵌一个DOS窗口,而且自己可以控制DOS窗口。<br>控制台我会做。可惜控制台要独占一个Project.<br>怎么内嵌进去呢?<br>我想的是,像是在一个窗口里,像加一个memo那样内嵌呵。<br>还有,用OLE好像不行呵,在里面只显示一个图标。<br>而且自己弄一个空投台程序好像容易控制。<br>是不是这样呢?<br><br>谢谢!
 
能不能用流?(或其它的什么东西)<br>即自己写一个输入和输出流,向隐藏的DOS窗口读写数据,再用一个Memo模拟显示?
 
似乎办不到。
 
我也试过 ,但是很难,我也办不到啊,可以的话。。。我也给分
 
我不知道你是这样启动这个dos的?如果dos是一个独立的进程,在启动是可以获得process<br>Id ,也就是说,你能够在你的win32的程序中控制dos的界面的位置。如果该dos是外部启动<br>的话,就麻烦了,而且控制的可能性较小:)<br><br>就怎么多了,有什么问题再讨论:)
 
只能自已写一个模拟器了,再调Shell函数、DOS命令,或嵌入汇编了。
 
还有没有讲清楚一点的??
 
提问者:<br>如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。<br>请认真阅读大富翁论坛规则说明 &nbsp;http://www.delphibbs.com/delphibbs/rules.asp
 
可不可以问问CTerm的作者呀?
 
有意思!!我以前做过一个程序,不是只是看上去象dos<br>只是一个memo而已,用一个timer来控制,模拟格式化的过程<br>唬人的!
 
用管道!
 
我也想解决这个问题呢,但还没有啊,希望与你讨论啊
 
在MSDN中查查这些函数:<br>Console Functions<br>The following functions used to access a console. &nbsp; <br>AllocConsole &nbsp;<br>CreateConsoleScreenBuffer &nbsp;<br>FillConsoleOutputAttribute &nbsp;<br>FillConsoleOutputCharacter &nbsp;<br>FlushConsoleInputBuffer &nbsp;<br>FreeConsole &nbsp;<br>GenerateConsoleCtrlEvent &nbsp;<br>GetConsoleCP &nbsp;<br>GetConsoleCursorInfo &nbsp;<br>GetConsoleMode &nbsp;<br>GetConsoleOutputCP &nbsp;<br>GetConsoleScreenBufferInfo &nbsp;<br>GetConsoleTitle &nbsp;<br>GetLargestConsoleWindowSize &nbsp;<br>GetNumberOfConsoleInputEvents &nbsp;<br>GetNumberOfConsoleMouseButtons &nbsp;<br>GetStdHandle &nbsp;<br>HandlerRoutine &nbsp;<br>PeekConsoleInput &nbsp;<br>ReadConsole &nbsp;<br>ReadConsoleInput &nbsp;<br>ReadConsoleOutput &nbsp;<br>ReadConsoleOutputAttribute &nbsp;<br>ReadConsoleOutputCharacter &nbsp;<br>ScrollConsoleScreenBuffer &nbsp;<br>SetConsoleActiveScreenBuffer &nbsp;<br>SetConsoleCP &nbsp;<br>SetConsoleCtrlHandler &nbsp;<br>SetConsoleCursorInfo &nbsp;<br>SetConsoleCursorPosition &nbsp;<br>SetConsoleMode &nbsp;<br>SetConsoleOutputCP &nbsp;<br>SetConsoleScreenBufferSize &nbsp;<br>SetConsoleTextAttribute &nbsp;<br>SetConsoleTitle &nbsp;<br>SetConsoleWindowInfo &nbsp;<br>SetStdHandle &nbsp;<br>WriteConsole &nbsp;<br>WriteConsoleInput &nbsp;<br>WriteConsoleOutput &nbsp;<br>WriteConsoleOutputAttribute &nbsp;<br>WriteConsoleOutputCharacter &nbsp;<br>
 
用管道就可以解决<br>相当于给CMD包了一层外壳
 
我也有一个问题,现在有一dos程序,我要给他写个外壳,不希望别人看到dos界面怎么作呢!<br>强烈关注中...
 
没错,用管道。有一组控件(他带有一范例,就是做一个类似Explore的程序)<br>这个范例里面有一模拟DOS操作功能,即上面的LISTBOX显示出本来是显示在DOS介面的内容<br>,下面一个EDIT控件用于用户输入命令,回车后程序会执行,并将结果显示在上面的<br>LISTBOX窗口中,我想你要的应该是这个东西吧,我看过它的代码,是用管道实现的<br>可惜日子长了,忘记了它是在什么控件组里了。本来我还想改进它到我的一个木马程序里面<br>即接到客户端的命令后,服务器端将它执行(为什么?因为没有DOS窗口啊)<br>这样我就可以为所欲为了,想想,DIR可以知道所有文件,直接执行程序也可以。<br>只是不能运行象EDIT这样的真正的DOS窗口下才可以运行的程序而已:)<br>
 
调用WINAPI <br>函数为:ShellExecute
 
&gt;&gt;调用WINAPI <br>&gt;&gt;函数为:ShellExecute<br>开玩笑
 
后退
顶部