按F1在任何时候都可以将QQ弹出来(QQ已经打开了)(QQ的默认快捷键事Ctrl+Alt+Z)
如何写这样一个程序????

解决方案 »

  1.   

    我想到的最简单的方法:
       注册一个全局热键F1,在热键消息处理中模拟Ctrl + ALT + Z热键。没试过不知道可不可以,你可以试试,就用两个API。明天去试试看,呵呵!
      

  2.   

    上面的朋友說的那樣,代碼我給你個參考,不是QQ的,但是原理一樣
    procedure TForm1.FormCreate(Sender: TObject);
    begin
       RegisterHotKey(Handle,$1055, 0, VK_F1);//註冊熱鍵F1
    end;procedure TForm1.HotKeyDown(var Msg: Tmessage);//寫消息過程
    begin
     // inherited;
      if Msg.WParam = int($1055) then       //如果按鍵為F1
      begin
        ShowWindow(Application.Handle, SW_SHOW);
        ShowWindow(Self.Handle, SW_SHOW);
      end;
    end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
      UnRegisterHotKey(Handle, $1055);  //註銷熱鍵
    end;procedure TForm1.Button1Click(Sender: TObject);//測試按鈕,隱藏工程和窗口
    begin
      ShowWindow(Application.Handle, SW_HIDE);
      ShowWindow(Self.Handle, SW_HIDE);
    end;
      

  3.   

    看了楼上的代码有以下几点不是很明白
    procedure TForm1.HotKeyDown(var Msg: Tmessage);//寫消息過程
    这个过程应该是自己定义的巴,如果是应该放在哪用?
    如果焦点不在程序上,能否将程序调出来?
    ShowWindow(Self.Handle, SW_SHOW);
    请大侠简单介绍一下这个函数
    谢谢!!
      

  4.   

    放在privte就是
    焦点不在程序上 
    也能调出来
    showwindow(self.handle,sw_show)是用API的方式show窗口而已