使用ShellExcute(或CreateProcess)调用了运行了一个DOS程序
每次运行该dos程序时的窗体标题都是不同的(这是问题的关键),所以不能用FindWindows函数找到这个窗体再把它close掉,也不能用GetWindow来获取窗体标题
各位,还有什么办法?

解决方案 »

  1.   

    SendMessage(FindWindow('ConsoleWindowClass', nil), WM_CLOSE, 0, 0); 
    我想不到好的办法!
      

  2.   

    你可以生成一个bat文件,在bat中运行那个DOS程序,然后再删除这个bat就可以了
      

  3.   

    delphi99(delphi99) 
    所运行程序本身就是一个BAT文件啊wosuifeng(笑风) 
    进程ID怎么记录?用什么方法可以取得到他的ID?ShellExecute的返回值是不行的,好像CreateProcess中的进程信息单元也不行。
    各位,有不有什么好办法没?hottey(孤独的探索者)(起步中)的方法可以
    循环运行的话,会把所有的DOS窗口都关掉,还有没有别的方法?没有就结贴了
      

  4.   

    版主,能不能换个分啊?给
    hottey (40)、 delphi99 (5)、 wosuifeng (5)手一快,没看清楚就给分了。。对不起hottey了,其他两人有苦劳:)