请问大家如何将已运行过的程序,在第二次运行时将已运行的程序显示到最前面?

解决方案 »

  1.   

    忘记了,要用几个winapi函数,帮你up
      

  2.   

    // from 《葵花宝典》主窗体Create时候var                                             
      ZAppName: array[0..127] of char;
      Hold: String;
      Found: HWND;
    begin
      Hold := Application.Title;
      Application.Title := 'OnlyOne'+ IntToStr(HInstance); // 暂时修改窗口标题
      StrPCopy(ZAppName, Hold); // 原窗口标题
      Found := FindWindow(nil, ZAppName); // 查找窗口
      Application.Title := Hold; // 恢复窗口标题
      if Found<>0 then
      begin          // 若找到则激活已运行的程序并结束自身
        ShowWindow(Found, SW_RESTORE);
        Application.Terminate;
      end;
      

  3.   

    主窗体创建时
      CreateMutex(nil,false,pchar(application.title));//建立互斥区
      if GetLastError=Error_Already_Exists then       //防止程序运行多个实例
       halt;