找到窗口的handle,用SetWindowPos,其中hWndInsertAfter参数设为HWND_TOP

解决方案 »

  1.   

    那么那个handle,怎么找呢?一个程序可能会有很多的窗口呢
      

  2.   

    //列举窗口
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Hnd:THandle;
      s:Array [0..255] of char;
    begin
      ListBox1.Clear;  Hnd:=GetWindow(Self.Handle,GW_HWNDFIRST);
      FillChar(s,65,255);
      while Hnd<>0 do
      begin
        if IsWindowVisible(Hnd) then
        begin
          GetWindowText(Hnd,s,Length(s));
          ListBox1.Items.AddObject(s,pointer(Hnd));
        end;
        Hnd:=GetWindow(Hnd,GW_HWNDNext);
      end;end;//切换到
    procedure TForm1.Button2Click(Sender: TObject);
    var
      Hnd:HWND;
    begin
      Hnd:=HWND(ListBox1.Items.Objects[ListBox1.ItemIndex]);
      SetWindowPos(hnd,HWND_TOP,0,0,0,0,
        SWP_NOMove or SWP_NOSIZE or SWP_SHOWWINDOW);
      OpenIcon(Hnd);
    end;