各位兄弟,需要你们的时候到了。问题一:现有一个可执行A.exe程序(必须从“开始”-》“运行”-》cmd才能启动),并且该程序执行是为了利用B.txt文件分析另一个C.txt文件(在cmd中执行格式是: A B.txt -k C.txt) ,而现在我需要先执行另一个D.exe程序,让D调用A,然后自动写入A B.txt -k C.txt   ,怎么做?注意是cmd格式的问题二:分布式系统,10台机子同时执行一个程序为了得到一个结果,哪台先做好,就发消息给服务器,服务器接收到消息后,立刻通知其他机器停止执行,继续下一个任务,怎搞?这种机子之间互搞还是头一次接触,麻烦讲解详细点,万分感谢,改天请吃饭。

解决方案 »

  1.   

    问题1
    STARTUPINFO si = {0};
    PROCESS_INFORMATION pi = {0};
    si.cb = sizeof(si); 
    CreateProcess(NULL, _T("这里填a程序的路径 A B.txt -k C.txt"), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
      

  2.   

    哈``没有回答真好``继续答第二个
    问题2
    这个给出想法吧`用socket,每次机子完成后,都发送一个消息到其他9台机子里.代码就不写了..写了整晚的代码..累``
      

  3.   

    第一个问题你说的我试了,不行.
    主要是那个A.exe直接双击没有反应的,要在cmd格式下才能看到效果
      

  4.   

    STARTUPINFO si = {0};
    PROCESS_INFORMATION pi = {0};
    si.cb = sizeof(si); 
    CreateProcess(NULL, _T("这里填a程序的路径 A B.txt -k C.txt"), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);DWORD error = GetLastError(); 
    再试一吓上面的代码,看error里的值是什么
      

  5.   

    B.txt 和 C.txt在当前目录或系统目录下吗?没有的话加上全路径
    ShellExecute和WinExec应该也可以实现
      

  6.   

    看一吓你的代码`CreateProcess的代码``错误代码5就是拒绝访问``而这个错误的原因有很多。。
      

  7.   

    bobob(静思) 
    ------
    是在当前目录,用WinExec如果A.exe可以直接运行的话我还能搞定,不过要用cmd运行就不知道怎么做了
      

  8.   

    问题一CrazyAzreal(顶..真系稳食艰难!)的方法是可行的,
    关键
    CreateProcess(NULL, _T("这里填a程序的路径 A B.txt -k C.txt"), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
    路径,如果是当前路径的话,要用".\\...",如果你用了".\"有可能出现error = 5的错误.
    还有一点,你用CMD运行A.exe可以,而双击去不能.其实,不是A.exe没有执行,而是出现一个一闪而过的窗口,你看不到罢了.所以用CreateProcess时不会有问题的.
      

  9.   

    能不能改A.EXE的代码?如果可以,在A的代码里设定显示控制。如果不能得话,建一个bat文件,在bat里启动A.exe。其他的,我暂时想不出更好的方法
      

  10.   

    对了,你想输入的参数也可以写在bat文件里,和cmd命令下的一样写,然后用CreateProcess直接启动bat文件不就可以得到你要的结果了?