有这样一句语句UINT a=WinExec("c:\\1.bat",SW_SHOWMAXIMIZED);执行后一些正常,但是好像1.bat没有执行过一样。我直接双击1.bat,却很正常。是不是vc中不能直接调用执行bat文件?还是另有原因?
请指点

解决方案 »

  1.   

    能否具体一些?WinExec和你的程序是占用不同的进程。你所说的没有执行过,是怎么判断出来的?
      

  2.   

    BAT文件只能在Shell中执行
    看看ShellExecute函数即可,
    最简单的方法:
    #include "process.h"

    system("c:\\sssss.bat") ;
    这样也可以!我原来做Corba调用Proe的项目时用过,
    虽然好用,但是屏幕会出现黑色的Shell窗口,尽管Bat执行完毕后会消失
    也是不太好看呀。
    好在程序是在Server端运行的,不影响什么
      

  3.   

    我试了OK。
    以下是我的试验:cpp内容:
    void CMFCTESTDlg::OnButton2() 
    {
    // TODO: Add your control notification handler code here
    WinExec("c:\\1.bat", SW_SHOWMAXIMIZED);
    }1.bat内容:
    notepad C:\output.txt点击Button2后,notepad可以打开 c:\output.txt
      

  4.   

    各位,使我自己把没有添加绝对路径,造成BAT的运行目录不是我想象中的哪一个,所以没有看到结果。其实,WinExec是可以的。
    谢谢serverclient告诉我也可以使用system方法,呵呵
    谢谢各位,结贴了