使用createprocess 启动多个应用程序,怎么当前只能看到第一个,难道createprocess不能同时启动多个应用程序?改用WinExec,可以同时启动多个程序,但是如何通过程序名获得相应的进程名?

解决方案 »

  1.   

    HMODULE GetModuleHandle(
      LPCTSTR lpModuleName
    );
    根据程序名可以得到进程句柄
      

  2.   

    GetModuleFileName
    获取当前运行进程名.
    当然可以启动N个程序,自己看看用法是否有问题.
      

  3.   

    应该是应用程序本身的问题吧,用CreateProcess是可以同时打开多个进程的。可能应用程序本身在程序里加了个互斥对象,防止用户打开多个例实。。
      

  4.   

    我就是创建一个简单的windows应用程序然后键盘响应,按下键w就执行CreateProcess,没有添加别的程序阿,也没有互斥对象啊!就是不可以补知道为什么阿!
      

  5.   

    chNeed1 的意思是你可以试试直接在资源管理器或者命令行中多次启动目标程序试试,看能不能同时起来多个。
      

  6.   

    可以阿,我使用WinExec都可以阿,我现在不清楚的是,WinExec的底层最终好像也是通过CreateProcess实现的,为什么它现在反而启动不起来,最后我通过PostMessage关闭的时候,如果我使用NotePad打开同一个文件两次怎么只能关闭一个阿?