Windows 使用了控制台来实现模拟8086模式。除非你自己做个东西替换

解决方案 »

  1.   

    我曾经问过一个问题,不知能不能解决你这个问题,
    http://www.csdn.net/Expert/topic/387/387245.shtm
      

  2.   

    你说的是什么意思???
    用重定向符将DOS的输出输出到一个文件里再开它???
    像dir > my.txt 或dir >> my.txt
    再打开?????????????????????????
      

  3.   

    楼上说的就是一个很好的解决办法。
    winexec('dir c:\ > my.txt',SW_HIDE) ,你用delphi打开my.txt进行显示就是了。
      

  4.   

    上面说的对,但是需要COMMAND/C 然后加dir c:\ > my.txt'
    然后执行,最后再打开那个文件就可以了,具体代码,得等我回单位给你找找
      

  5.   

    贴出来吧主  题:请各位VB及api高手帮忙,如果截获dos下的输出 ,50分?
    作  者:lx_king
    所属论坛:Visual Basic
    问题点数:50
    回复次数:6
    发表时间:2001-11-25 9:33:04
     
      
      我想编一个汇编编辑程序,利用shell执行 shell("masm aa.asm",normalfocus)
    运行后,出现一ms-dos个窗口,上面让我输入obj的名字等等,而且如果编译错误的情况下,他也显示错误信息,我用什么方法,才能把 输入 obj的名字转到windows下,及编的程序,如何把他们错误信息扑捉到我的应用程序中的文本框上显示出来
    谢谢 
    回复贴子: 
    回复人: gameboy999(我心迷茫) (2001-11-25 10:45:35)  得0分 
    我想只有重定向或者管道可以做到了
    shell("masm aa.asm>>file",normalfocus)
    或者
    shell("masm aa.asm¦handle.exe",normalfocus)第一种方法可以用CreateProcess方式执行上面的shell函数,利用WaitForSingleObject函数检测masm编译结束后退出再读取file文件并解析第二种方法就得测试masm这个可执行文件对管道操作支持的程度如何 才能对其下笔
    我并没有做过这些东西,这只是我的猜想,希望对你有用 
    回复人: chzy00(子逸) (2001-11-25 11:02:21)  得0分 
    可以用CreateProcess函数和 CreatePipe 结合起来,
    创建两个管道可以双向通讯  
    回复人: lx_king(天剑) (2001-11-25 11:29:05)  得0分 
    to chzy00
    能写详细点吗?
    如何在windos下输入参数,写到dos中的
    你的意思是可以互相通信吗,如何做呀
     
    回复人: gameboy999(我心迷茫) (2001-11-25 12:39:36)  得0分 
    to chzy00:
    人家是用别人的程序,
    你能CreatePipe.. masm就不一定会  
    回复人: acptvb(微软全球技术中心 VB技术支持) (2001-11-25 15:05:29)  得0分 
    感谢您使用微软产品。您需要把 输入编译时输入obj的名字转到windows下,并且将错误信息捕捉到应用程序中的文本框上显示出来。您可以使用如下方法:1.重定向输出
    使用Visual Basic的Shell函数,PROCESSID=Shell ("MY_APPLICATION " & APPLICATION_PRAR  & "> TEMP_FILE", vbHide)
    其中APPLICATION_PRAR为应用程序的命令行参数,如编译时输入的obj文件名。2.使用Win32API CreateProcess
    Declare Function CreateProcess Lib "kernel32" _
      Alias "CreateProcessA" ( _
        ByVal lpApplicationName As String, _
        ByVal lpCommandLine As String, _
        lpProcessAttributes As Any, _
        lpThreadAttributes As Any, _
        ByVal bInheritHandles As Long, _
        ByVal dwCreationFlags As Long, _
        lpEnvironment As Any, _
        ByVal lpCurrentDirectory As String, _
        lpStartupInfo As STARTUPINFO, _
        lpProcessInformation As PROCESS_INFORMATION _
    ) As Long
    其中 lpApplicationName为应用程序文件名;lpCommandLine为命令行参数。结构类型PROCESS_INFORMATION和STARTUPINFO中存放应用程序运行时返回的信息。
      
    3.建立与标准输出设备关联的文件(此方法只能提取向标准输出设备输出的信息,如屏幕)
    Dim si As STARTUPINFO
    Dim hFile As Long
    hFile = CreateFile(
        sTempFile, _
        GENERIC_READ Or GENERIC_WRITE, _
        0, _
        ByVal 0&, _
        CREATE_ALWAYS, _
        0, _
        ByVal 0&)
    If hFile Then 
        si.hStdOutput = hFile
    End If
    这种方法将一个临时文件与屏幕设备关联,完成屏幕的重定向。等应用程序完成后,打开临时文件,便可获得屏幕信息。
    更详细的信息,请查找MSDN相关的文章。
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/office97/html/output/F1/D6/S5B2AB.asp
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/prothred_9dpv.asp
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/filesio_7wmd.asp======================
    - 微软全球技术中心  VB技术支持本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
    为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
    ======================  
      

  6.   

    使用多线程,一个线程用shellex输出文件,另一个线程用windows 进行文件检测并输出。
      

  7.   

    我的意思是:先用mfc生成一个对话框,怎么将自己原来的程序(包括C和头文件,有main函数)加入到生成的工程中。我的程序有这样的错误:
    fatal error C1010: unexpected end of file while looking for precompiled header directive 
      

  8.   

    hedayu这里有没有你满意的方法????我的行不行??