请问我用VB的shell打开dosbox.exe和直接双击打开dosbox.exe运行结果为什么不一样?

解决方案 »

  1.   

    是这样的,直接运行的话我可以在dosbox.conf里加入批处理命令行,并且运行成功,而用VB打开刚才说的批处理命令行就没有作用了,仅仅能打开dosbox.exe,又需要我逐步去输入批处理命令行。我试着将dosbox.conf删除,同样是刚才的结果,证明采用vb调用dosbox.exe时dosbox.conf是没有作用的。
       帮个忙吧,谢谢你!
      

  2.   

    玩纯DOS游戏?
       ..........在SHELL后面加上命令不就完了
      

  3.   

    试着加了好几个命令,都没有用,我是有个软件需要在纯DOS下运行
      

  4.   

    我想解决这个问题的目的是:在VB界面下实现我那个纯DOS计算软件的功能,所以就找到了dosbox,用vb调用后,还是需要输一些命令才能完成此软件的计算,所以我就想采用一些VB语句进行批处理,但是多次尝试没有成功(试着像调用dos命令那样,没有成功),所以又想到用dosbox下的dosbox.conf进行批处理,没有想到直接运行此dosbox.exe的我批处理命令是可以实现的,但是采用VB调用又还是没有用,调用仅仅打开了dosbox.exe,而我的批处理部分没有作用。所以我希望各位帮帮忙,看看是怎么回事?是用vb语句实现我的命令有误呢,。。还是有其他实现方法呢?另外,此问题解决了,我用vb怎么知道或控制dosbox环境下运行完成的弹出窗口。谢谢各位啦!
      

  5.   

    现在不方便安装DosBox,大致在dosbox.conf最后加上如下命令(假定软件的路径为D:\dos\abc\abc.exe)
    [code=INIFile]mount C: C:\dos\
    CD C:\abc
    abc.exe[/code]
      

  6.   

    可能是我没有表达清楚,这些命令我是会的,但是只能在dosbox里逐行输入,我现在希望用vb语句实现,或者用dosbox.conf输入批处理命令实现,但是用前一个方法,什么命令输进去都没有用(可能我用vb语句有问题,我用的是shell“c:\dosbox\dosbox.exe \   mount d d:\”),但是只能打开dosbox而后面的命令没有作用;而用第二种在dosbox.conf输入批处理命令本来已经可以完成啦,但是又只能直接双击dosbox.exe才能达到目的,而采用vb调用的结果是仅仅打开了dosbox.exe,刚才加的批处理命令又没有作用,就是将dosbox.conf删除,也是一样的效果,证明用vb调用dosbox.exe此时dosbox.conf没有作用。
       希望指点。。
      

  7.   

    在启动对话框中输入c:\dosbox\dosbox.exe是否能执行dosbox.conf中的命令?
    改用API的ShellExecute调用试试。
      

  8.   

    还有可以先试试Shell调用前用ChDir将当前目录定位到dosbox目录。
      

  9.   

    呵呵,API需要加载呵呵,怎么用呀,我不会呢;第2种办法,ChDir "c:\dosbox\";Shell "dosbox.exe"。没有运行成功,说找不到文件,呵呵,我的命令有误?
      

  10.   

    Private Const SW_SHOWNORMAL As Long = 1Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
       (ByVal hwnd As Long, _
        ByVal lpOperation As String, _
        ByVal lpFile As String, _
        ByVal lpParameters As String, _
        ByVal lpDirectory As String, _
        ByVal nShowCmd As Long _
      ) As Longsub main()
        ShellExecute 0, vbnullstring, "C:\dosbox\dosbox.exe", vbnullstring, "C:\dowbox\", SW_SHOWNORMAL
    end sub用CurDir()检查是否盘符不对,用ChDrive()更改。
      

  11.   

    试试这样
    Shell "cmd /c c: && cd dosbox && dosbox.exe"