程序已经最小化,并且不是当前窗口,
如何使用快捷键,将他显示在当前窗口前面

解决方案 »

  1.   

    设置系统HOTKEY,然后写入相应代码。
      

  2.   

    RegisterHotKey函数原型及说明:BOOL RegisterHotKey(  HWND hWnd,         // window to receive hot-key notification  int id,            // identifier of hot key  UINT fsModifiers,  // key-modifier flags  UINT vk            // virtual-key code);参数 id为你自己定义的一个ID值,对一个线程来讲其值必需在0x0000 - 0xBFFF范围之内,对DLL来讲其值必需在0xC000 - 0xFFFF 范围之内,在同一进程内该值必须唯一参数 fsModifiers指明与热键联合使用按键,可取值为:MOD_ALT MOD_CONTROL MOD_WIN MOD_SHIFT参数 vk指明热键的虚拟键码   首先(举个例子):    RegisterHotKey(handle,globaladdatom('hot key'),MOD_ALT,vk_f12);然后在form中声明一个函数(过程):  procedure hotkey(var msg:tmessage);message wm_hotkey;过程如下:procedure TForm1.hotkey(var msg:tmessage);begin  if (msg.LParamHi=VK_F12) and (msg.LParamLo=MOD_ALT) then  begin   form1.show;   SetForegroundWindow(handle);  end;end;这样,不管你在什么地方,窗口就会显示出来。当然,你要GlobalDeleteAtom;
      

  3.   

    下面演示按F9还原窗口TFormDemo = class(TForm)
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
      private
        procedure WMHotkey( var msg: TWMHotkey ); message WM_HOTKEY;
      public
        { Public declarations }
      end;var
      FormDemo: TFormDemo;implementation
    procedure TFormDemo.FormCreate(Sender: TObject);
    begin
      RegisterHotkey (Handle, 1, 0, VK_F9);
    end;procedure TFormDemo.FormDestroy(Sender: TObject);
    begin
      UnRegisterHotkey( Handle, 1 ) ;
    end;procedure TFormDemo.WMHotkey(var msg: TWMHotkey);
    begin
      if msg.hotkey = 1 then
      begin
        if IsIconic(Application.Handle) then
         Application.Restore;
        BringToFront;
      end;
    end;
      

  4.   

    好象直接针对窗口使用SetHotKey之类的就可以了.