本人刚学DELPHI  有很多东西都不怎会用```
  想问下各位
   怎能检测一个程序是不是在运行
  如果程序关闭了就再运行它``
  在它启动的时候就把它隐藏起来!!!
   要用到什么函数还有其他方面的东西!!!!
   大家帮帮忙!!!

解决方案 »

  1.   

    其实很简单的, findwindows然后postmessage消息。
      

  2.   

    查找窗口名或者句柄,然后发送消息。
    拿WindowsXP自带的计算器举例:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      hWndClose: HWnd;
    begin
      hWndClose := FindWindow(nil, '计算器');
      if hWndClose <> 0 then
        SendMessage(hWndClose,WM_CLOSE,0,0)//若发现在运行则关闭它
      else
        ShellExecute(Handle, 'open', PChar('c:\windows\system32\calc.exe'), nil, nil, SW_SHOW);//反之,则启动它
    end;
    //---------------------------------------
      

  3.   

    另外,需要注意的是 ShellExecute 需要引用 ShellAPI 单元。
      

  4.   

    突然发现你小子肯定是第一次使用Delphi,并且是0分 空手套白狼,一看就知道从来不逛CSDN论坛,不说了x_x ~~
    除非你先给100分,然后偶再帮你搞定当前问题,HOHO~~
      

  5.   

    啊?????
     我是新手```
    随意向大家来帮帮忙!!!
    findwindows然后postmessage消息sinkiang大哥ShellExecute怎用的???
      

  6.   

    啊?????  
     我是新手```  
    所以向大家来帮帮忙!!!  
    findwindows然后postmessage消息  什么意思```
     程序启动后怎样去隐藏它呢?
     
    sinkiang大哥ShellExecute怎用的???