菜鸟问题,在C#中用RegisterHotKey热键怎么没有反应? RegisterHotKey(hWnd,999,0,121);RegisterHotKey(hWnd,99,1,65);改成16进制 顺便查看一下windows定义消息,看看你的正确吗 ? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.vccode.com/file_show.php?id=1863 不好意思,上面贴错了。。 TheAres(班门斧) ( ) 信誉:256 2002-11-23 20:40:32Z 得分:25 参考:文章末尾有代码下载,是讲述如何使用RegisterHotKey来杀掉弹出窗口弹出窗口杀手(上)http://www.csdn.net/develop/read_article.asp?id=15534弹出窗口杀手(下) http://www.csdn.net/develop/read_article.asp?id=15535 还有就是你要激活热键。要不你只是注册了没什么用啊。http://dev.csdn.net/develop/article/43/43413.shtm参考这个 然后去msdn上找 ! 你在程序中需要自己注册全局热键,用到APIRegisterHotKeyUnregisterHotKey首先,创建一个WinHotKey类,如下public class WinHotKey{ [DllImport("user32.dll",SetLastError=true)] public static extern bool RegisterHotKey( IntPtr hWnd, //窗口句柄 int id, KeyModifiers fsModifiers, Keys vk ); [DllImport("user32.dll",SetLastError=true)] public static extern bool UnregisterHotKey( IntPtr hWnd, int id ); [Flags()] public enum KeyModifiers { None = 0, Alt = 1, Control =2, Shift = 4, Windows = 8 } public WinHotKey() { // // TODO: 在此处添加构造函数逻辑 // }}然后,在程序中这样调用//快捷键定义 private bool key_Ctrl = false; private bool key_Shift = false; private bool key_Alt = false; private bool key_Windows = false; private Keys key_other; public void SetHotKey(bool bCtrl,bool bShift,bool bAlt,bool bWindows,Keys nowKey) { try { this.key_Alt = bAlt; this.key_Ctrl = bCtrl; this.key_Shift = bShift; this.key_Windows = bWindows; this.key_other = nowKey; WinHotKey.KeyModifiers modifier = WinHotKey.KeyModifiers.None; if( this.key_Ctrl ) modifier |= WinHotKey.KeyModifiers.Control; if(this.key_Alt ) modifier |= WinHotKey.KeyModifiers.Alt; if(this.key_Shift) modifier |= WinHotKey.KeyModifiers.Shift; if(this.key_Windows) modifier |= WinHotKey.KeyModifiers.Windows; WinHotKey.RegisterHotKey(Handle,100,modifier,nowKey); } catch { //login.ShowMessage("快捷键定义错误!"); } } //激活热键 protected override void WndProc(ref Message m ) { const int WM_HOTKEY = 0x0312; switch(m.Msg) { case WM_HOTKEY: { //如果有新消息,弹出消息 if( ReceiveNewMessage == true) { for(int i=0;i<this.manInforList.Count;i++) { ManInfor searchMan = (ManInfor)this.manInforList[i]; if( searchMan.manInforID.Equals( getFriendID)) { searchMan.Clicked = true; searchMan.P2PShow(); break; } } } else { this.Show(); this.TopMost = true; this.panel_Main.Refresh(); this.WindowState = System.Windows.Forms.FormWindowState.Normal; } } break; } base.WndProc(ref m ); }自己研究吧 Oracle触发器 急!!!!! 求点wpf silverlight 画柱形图 折线图 饼图的资料例子。 问一个关于数据库的知识 如果winfrom要做成定时执行是不是必须要做成服务? C/S ,客户端直接连接远程数据库 ,都有什么缺点。 从一个子窗体切换到另一个子窗体,造成闪烁?如何解决 google中国编程挑战赛-练习题之三(250分题) 大家好,想学C# ,能提点建议吗? 哪本书适合初学者 如何在DataGrid中实现拖放操作? 想用c#写一个转fon文件的程序 问题有点白痴``。。`我想问``怎样运行一个C#程序? 关于TEXTBOX
参考:
文章末尾有代码下载,是讲述如何使用RegisterHotKey来杀掉弹出窗口弹出窗口杀手(上)
http://www.csdn.net/develop/read_article.asp?id=15534弹出窗口杀手(下)
http://www.csdn.net/develop/read_article.asp?id=15535
要不你只是注册了没什么用啊。
http://dev.csdn.net/develop/article/43/43413.shtm参考这个 然后去msdn上找 !
用到API
RegisterHotKey
UnregisterHotKey
首先,创建一个WinHotKey类,如下
public class WinHotKey
{
[DllImport("user32.dll",SetLastError=true)]
public static extern bool RegisterHotKey(
IntPtr hWnd, //窗口句柄
int id,
KeyModifiers fsModifiers,
Keys vk
); [DllImport("user32.dll",SetLastError=true)]
public static extern bool UnregisterHotKey(
IntPtr hWnd,
int id
); [Flags()]
public enum KeyModifiers
{
None = 0,
Alt = 1,
Control =2,
Shift = 4,
Windows = 8
} public WinHotKey()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
}然后,在程序中这样调用
//快捷键定义
private bool key_Ctrl = false;
private bool key_Shift = false;
private bool key_Alt = false;
private bool key_Windows = false;
private Keys key_other; public void SetHotKey(bool bCtrl,bool bShift,bool bAlt,bool
bWindows,Keys nowKey)
{
try
{
this.key_Alt = bAlt;
this.key_Ctrl = bCtrl;
this.key_Shift = bShift;
this.key_Windows = bWindows;
this.key_other = nowKey;
WinHotKey.KeyModifiers modifier = WinHotKey.KeyModifiers.None; if( this.key_Ctrl )
modifier |= WinHotKey.KeyModifiers.Control;
if(this.key_Alt )
modifier |= WinHotKey.KeyModifiers.Alt;
if(this.key_Shift)
modifier |= WinHotKey.KeyModifiers.Shift;
if(this.key_Windows)
modifier |= WinHotKey.KeyModifiers.Windows;
WinHotKey.RegisterHotKey(Handle,100,modifier,nowKey);
}
catch
{
//login.ShowMessage("快捷键定义错误!");
}
} //激活热键
protected override void WndProc(ref Message m )
{
const int WM_HOTKEY = 0x0312;
switch(m.Msg)
{
case WM_HOTKEY:
{
//如果有新消息,弹出消息
if( ReceiveNewMessage == true)
{
for(int i=0;i<this.manInforList.Count;i++)
{
ManInfor searchMan = (ManInfor)this.manInforList[i];
if( searchMan.manInforID.Equals( getFriendID))
{
searchMan.Clicked = true;
searchMan.P2PShow();
break;
}
}
}
else
{
this.Show();
this.TopMost = true;
this.panel_Main.Refresh();
this.WindowState = System.Windows.Forms.FormWindowState.Normal;
}
}
break;
}
base.WndProc(ref m );
}自己研究吧