测试下Live Writer 插件生效否!

测试下客户端插件!

1、首先定义一个存储热键的变量。WORD m_wHotKey = 0x00;
2、在对话框中增加一个热键输入框IDC_HOTKEY(注:不是EditBox而是HotKey框哦),并增加一个设置按钮响应事件如下:
void CHotkeyDlg::OnSetup() 
{
 // 这里取出设置的热键值
 m_wHotKey=(WORD)SendDlgItemMessage(IDC_HOTKEY,HKM_GETHOTKEY,0,0);
 // 注册热键
 RegHotkey();
}
3、在程序中加入一个注册热键的函数以便使用。如:
void CHotkeyDlg::RegHotkey()
{
       // 如果没有设置的热键时,则使用默认的热键,这里为:ctrl + alt + e
 if (0x00 == m_wHotKey)
  m_wHotKey = MAKEWORD('E', HOTKEYF_ALT|HOTKEYF_CONTROL);

 // 将热键值设置到热键输入框
 ::SendDlgItemMessage(m_hWnd,IDC_HOTKEY,HKM_SETHOTKEY,0xffff&m_wHotKey,0);
 // 安全起见,注销先前的热键
 UnregisterHotKey(m_hWnd,99999);
 UINT Mod=0;
        // 看看alt键是否已经被设置
 if(HOTKEYF_ALT&HIBYTE(m_wHotKey))
  Mod|=MOD_ALT;
 if(HOTKEYF_CONTROL&HIBYTE(m_wHotKey))
  Mod|=MOD_CONTROL;
 if(HOTKEYF_SHIFT&HIBYTE(m_wHotKey))
  Mod|=MOD_SHIFT; 
 // 这里进行热键注册,最后一个参数因为我们在存储热键值时使用了16位存储,故这里取出低位值
 if ( !RegisterHotKey(m_hWnd,99999,Mod, LOBYTE(m_wHotKey)) )
 {
  AfxMessageBox("registre failed"); 
  return;
 }

 // 将我们设置的热键存储起来。这里存储到windows目录下,当然你也可以指定存储到其它地方。
 char sz[20];
 sprintf(sz,"%d",m_wHotKey); 
 WritePrivateProfileString("setup","hotkey",sz,"hotkey.ini");
}
4、在初始化函数中加入:
       // 取出我们设置的热键值,第三个参数为默认构造的热键值ctrl + alt + e
 m_wHotKey=0xffff&GetPrivateProfileInt("setup","hotkey",MAKEWORD('E',HOTKEYF_ALT|HOTKEYF_CONTROL),"hotkey.ini");
 // 注册热键
 RegHotkey();
5、在窗体Destory函数中加入热键的注销函数:
     UnregisterHotKey(m_hWnd,99999);

通过以上几个步骤,你的系统热键就可以成功使用了,试试看!
原文地址:https://www.cnblogs.com/tyjsjl/p/2156153.html