用registerhotkey定义了一个程序的热键 , 比如我定义了F, 按F 程序是响应了,但是在别的窗口F就不能用了, 比如聊天打字窗口什么的,怎么解决,能当激活的窗口和 后台程序一起响应》??

解决方案 »

  1.   

    procedure TForm2.FormCreate(Sender: TObject);begin
     vID := GlobalAddAtom('Ctrl+Enter');
      RegisterHotKey(Handle,vID,MOD_CONTROL,VK_RETURN);
    end因為已經指定了HOTKEY注冊給指定的句柄,所以不同程序用同一個KEY肯定會出現熱鍵沖突的。 換吧
      

  2.   

    试试HotkeyManager组件,比较好用.
    http://www.2ccc.com/article.asp?articleid=1656
      

  3.   

    针对单独的窗口可以设置KeyPreview属性,然后在窗体的OnKeyDown事件中处理;或者是MainMenu里设个ShortCut='F'的菜单
    针对单独vcl模块,可以在Application.OnMessage中拦消息处理
      

  4.   

    楼上几位说得很清楚,我倾向于用GlobalAddAtom函数来处理