如何判断一个程序是否在运行?请高手为我支招,谢谢!

解决方案 »

  1.   

    试试这样:
    HWD:= FindWindow('TFrm_dcb_main',nil);
      if HWD>0 then
      begin
        SetForegroundWindow(HWD);
        // DBEBarcode
        //Application.MessageBox('该程序已在系统中运行,请确认退出后再启动!','系统提示');
        halt; //退出程序
      end;
      

  2.   

    在程序运行时用FINDWINDOW判断是否已运行,如已运行则Application.Terminate;
      

  3.   

    HANDLE hMutex = CreateMutex( NULL, FALSE, "RunOnlyOneInstance") ;
                if( hMutex==NULL||ERROR_ALREADY_EXISTS==::GetLastError() )
                {
                      Warnning( "程序已经启动!") ;
                      SendMessage(Application->Handle, WM_SYSCOMMAND, SC_RESTORE, 0);
                      //ShowWindow(Application->Handle, SW_RESTORE);
                      return 0 ;
                }
      

  4.   

    >>>那如何取消正在运行的程序的进程呢?2种方法:1、先取它名柄,然后SendMessage(..,wm_close..);2、结束进程