rt

解决方案 »

  1.   

    Hprevinst := FindWindow('TFrom1',nil);
    if hprevinst <> 0 then application.terminate;
      

  2.   

    楼上的代码不可行ACTIVEXFORM是无法利用 application.terminate 关闭的。
      

  3.   

    var
      mHandle, fHandle: THandle;{$R *.res}begin
      Application.Initialize;
      mHandle := Windows.CreateMutex(nil, true, 'AdKiller');
      if mHandle <> 0 then
      begin
        if GetLastError = Windows.ERROR_ALREADY_EXISTS then
        begin
          fHandle := FindWindow('TfrmAdKiller', nil);
          begin
            ShowWindow(fHandle, SW_RESTORE);
            SetForeGroundWindow(fHandle);
          end;
          Windows.ReleaseMutex(mHandle);
          Halt;
        end;
      end;  Application.CreateForm(TfrmAdKiller, frmAdKiller);
      Application.Run;
    end.
      

  4.   

    呵呵
    同意 weizi2000(秋风啊)的 ,我们以前有个系统就是这么来避免二次运行的。
      

  5.   

    这个太简单啦首先在implementation后加个var
    **************
    implementation var change:string;
    procedure TForm1.FormActivate(Sender: TObject);
      begin
     if change='Y' then begin
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;     // 你的程序的代码
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx  ;  //   change='Y'
       end;
    这样就OK了
      

  6.   

    写错了点东西,少了个冒号。太久没写pascal了首先在implementation后加个var
    **************
    implementation var change:string;
    procedure TForm1.FormActivate(Sender: TObject);
      begin
     if change='Y' then begin
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;     // 你的程序的代码
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx  ;  //   change:='Y';
       end;