我有一程序A,是端口操作的,在本程序运行时,要防止用户再次重WINDOWS运行一个新的程序A,也就是说内存中只能有一个程序A运行。请各位指点一下。

解决方案 »

  1.   

    如何防止一个程序执行两次这是一个比较简单的防止程序执行两次的方法
    implementation 
    var hnd: THandle;initialization
        hnd := CreateMutex(nil, True, 'irgendwaseinmaliges');
        if GetLastError = ERROR_ALREADY_EXISTS then Halt;finalization
        if hnd <> 0 then CloseHandle(hnd);
    end.
      

  2.   

    建立互斥元,以“二次运行”为关键字搜索一下CSDN,有好多相关贴子的
      

  3.   

    在project中
    uses windows ;
    var
     hMutex:HWND;
     Ret:Integer;
    begin
      Application.Title := 'aaa';
      hMutex:=CreateMutex(nil,False,'aaa');
      Ret:=GetLastError;
      If Ret<>ERROR_ALREADY_EXISTS Then
      begin
        Application.CreateForm(TMainMenuFrm, MainMenuFrm);
        Application.Run;
      end
      else
      Application.MessageBox('你已经运行了<<aaa>>程序了!','提示',mb_ok+mb_iconinformation);
      ReleaseMutex(hMutex);
    end.
      

  4.   

    在project中
    uses windows ;begin
      Application.Initialize;
      Application.Title := 'aaa';
      if Findwindow(Nil,application.title)=nil then 
      begin
        Application.CreateForm(TMainMenuFrm, MainMenuFrm);
        Application.Run;
      end
    end.