windows 中有ctrl+c,ctrl+v,ctrl+alt+del等快捷键,我如何在系统中注册我的快捷键。
比如我注册ctrl+alt+t,我按下ctrl+alt+t时可自动执行我的程序,好像修改注册表,如何修改?
请高手们帮忙,我时刻守候在电脑旁,及时结帐。

解决方案 »

  1.   

    首先用RegisterHotkey注册热键,然后处理WM_HOTKEY消息
    http://csislabs.palomar.edu/Student/csis285/285%20Source/menu8.c
      

  2.   

    注册系统热键,用来显示隐藏信息 RegisterHotKey(GetSafeHwnd(),WM_SHOWHOTKEY,MOD_ALT|MOD_CONTROL,VK_F3); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
      

  3.   

    使用RegisterHotKey这个API实现,参考:RegisterHotKey(this->m_hWnd,1001,MOD_CONTROL,'A');  //注册Ctrl+A
    RegisterHotKey(this->m_hWnd,1002,MOD_WIN,VK_F2);    //注册WIN+F2响应WM_HOTKEY消息,添加消息处理函数:LRESULT CHotkeyDlg::OnHotKey(WPARAM wParam,LPARAM lParam)
    {
    if(wParam==1001)  //判断是哪一个热键
    ::MessageBox(NULL,"你按了Ctrl+a!","热键提示",MB_OK);
    ::ShowWindow(this->m_hWnd,TRUE);
    if(wParam==1002)  //判断热键
    ::MessageBox(NULL,"你按了Win+F1","热键提示",MB_OK);
    return 0;
    }在程序退出之前,注销你的热键:void CHotkeyDlg::OnCancel() 
    {
    UnregisterHotKey(this->m_hWnd,1001);
    UnregisterHotKey(this->m_hWnd,1002);
    CDialog::OnCancel();
    }
      

  4.   

    参考文章:程序热键的实现
    http://www.xiaozhou.net/cooldog/blogview.asp?logID=78
      

  5.   

    http://support.microsoft.com/?kbid=222829