我这边有一个程序为X.EXE,还有一个Y.EXE,在X没开启的情况下,点Y会自动升级X后调用X,
我现在要在X打开的情况下,在X的一个Form(设为Z)里面设一个按钮,点后要调用Y,然后关闭Z,
再关闭X;问题是Y在X打开的情况下并不能升级,那么如何能既要调用Y来升级又要保证X和Z在Y启动
前关闭呢?

解决方案 »

  1.   

    >>Y来升级又要保证X和Z在Y启动
    前关闭呢?Y 運行是地先檢測X有沒有運行, 有好多方法, 
    1, Y 用FindWindow 查2, X 運行Y時, 將自己Application.Handle 當做參數傳給 Y, Y Sendmessage(handle, WM_Close, 0, 0) 結束X程序
    ...
      

  2.   

    谢谢ari,你的第二种和我想的差不多,我现在的想法是修改Y,程序执行前先判断X是否运行,X运行的话就先关掉它
    var
       HWndX : HWnd;
    begin
      HWndX:=FindWindow(nil,'X');
      if HWndKinnDepot<>0 then
      SendMessage(HWndX,WM_CLOSE,0,0);
    ……
    end;
    但是回报出WM_CLOSE参数undefined的错误,奇怪!还有没有人有更好的方法来分享一下呢?
      

  3.   

    >>但是回报出WM_CLOSE参数undefined的错误,奇怪!
    uses windows;
      

  4.   

    windows我倒是uses了,结果没uses message,呵呵