vs调试键F11失效中,祸首是。。。。来者分

cyhcyhhychyc 2009-12-06 12:06:18
原来是被一个上网拨号软件把这个键给占用了,一按就跳出那个软件。
难不成要我去改软件?这当然是不可能啦。
不知道是不是把这个热键注册在注册表里,就算是,我也没找到。
后来想到其快捷图标右击属性给他定义为另一个热键,好了,成功了,按F11那个东东不跳出来了,赶快祭出vs,结果一按F11,乖乖,那软件虽然是不出来,但是vs里的调试箭头也不动了。呵呵,死都要占着那个键。大家想想办法,搞定它!!!怎么?不用那个软件?乖乖,不用它,就不能上网,呵呵
...全文
1929 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyhcyhhychyc 2009-12-07
  • 打赏
  • 举报
回复
要用那个专用的拨号软件
diandian82 2009-12-07
  • 打赏
  • 举报
回复
用windows自带的拨号不就行了?
cyhcyhhychyc 2009-12-06
  • 打赏
  • 举报
回复
这么强大的解决方案,怕怕呀。搞不好就死qiaoqiao了。最好能改注册表。。。楼上辛苦了
sohighthesky 2009-12-06
  • 打赏
  • 举报
回复

using System;
using System.Runtime.InteropServices;

namespace SystemHotKey
{
public delegate void HotkeyEventHandler(int HotKeyID);

public class Hotkey : System.Windows.Forms.IMessageFilter
{
System.Collections.Hashtable keyIDs = new System.Collections.Hashtable();
IntPtr hWnd;

public event HotkeyEventHandler OnHotkey;

public enum KeyFlags
{
MOD_ALT = 0x1,
MOD_CONTROL = 0x2,
MOD_SHIFT = 0x4,
MOD_WIN = 0x8
}
[DllImport("user32.dll")]
public static extern UInt32 RegisterHotKey(IntPtr hWnd, UInt32 id, UInt32 fsModifiers, UInt32 vk);

[DllImport("user32.dll")]
public static extern UInt32 UnregisterHotKey(IntPtr hWnd, UInt32 id);

[DllImport("kernel32.dll")]
public static extern UInt32 GlobalAddAtom(String lpString);

[DllImport("kernel32.dll")]
public static extern UInt32 GlobalDeleteAtom(UInt32 nAtom);

public Hotkey(IntPtr hWnd)
{
this.hWnd = hWnd;
System.Windows.Forms.Application.AddMessageFilter(this);
}

public int RegisterHotkey(System.Windows.Forms.Keys Key, KeyFlags keyflags)
{
UInt32 hotkeyid = GlobalAddAtom(System.Guid.NewGuid().ToString());
RegisterHotKey((IntPtr) hWnd, hotkeyid, (UInt32) keyflags, (UInt32) Key);
keyIDs.Add(hotkeyid, hotkeyid);
return (int) hotkeyid;
}

public void UnregisterHotkeys()
{
System.Windows.Forms.Application.RemoveMessageFilter(this);
foreach (UInt32 key in keyIDs.Values)
{
UnregisterHotKey(hWnd, key);
GlobalDeleteAtom(key);
}
}

public bool PreFilterMessage(ref System.Windows.Forms.Message m)
{
if (m.Msg == 0x312)
{
if (OnHotkey != null)
{
foreach (UInt32 key in keyIDs.Values)
{
if ((UInt32) m.WParam == key)
{
OnHotkey((int) m.WParam);
return true;
}
}
}
}
return false;
}
}
}
该类的使用方法:

在窗体的类中声明一个变量
复制 保存private int Hotkey1
在窗体的Load事件中加入如下代码
复制 保存Hotkey hotkey;
hotkey = new Hotkey(this.Handle);

//定义快键(Ctrl + F1)
Hotkey1 = hotkey.RegisterHotkey(System.Windows.Forms.Keys.F1, Hotkey.KeyFlags.MOD_CONTROL);
hotkey.OnHotkey += new HotkeyEventHandler(OnHotkey);
添加快键调用函数
复制 保存public void OnHotkey(int HotkeyID)
{
if (HotkeyID == Hotkey1)
{
if (this.Visible == true)
this.Visible = false;
else
this.Visible = true;
}
else
{
this.Visible = false;
}
}
asdfa23rdadsdfa 2009-12-06
  • 打赏
  • 举报
回复
F11只是调试你调用的方法里的方法体。。
大不了把方法体拿出来就不用按F11,直接F10咯。
通过之后再放回去 。当然这样的方法不合适长期适用
lijing3333 2009-12-06
  • 打赏
  • 举报
回复
...你不会吧那软件卸载了? 换个拨号软件 晕!
红街咖啡 2009-12-06
  • 打赏
  • 举报
回复
.这样子.设置下网络拨号软件的注册表..去搜搜看有没有.
cyhcyhhychyc 2009-12-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cyhcyhhychyc 的回复:]
有同志知道怎么改注册表么,或者知道怎么改vs的快捷键,在工具》自定义》键盘里,看不懂那个界面,我设置了一下,把F8设置为步进快捷键,但是没有效果。
[/Quote]

老大,我就是修改了半天,但是没有效果呀,要不你随便修改一个试试,怪了。而且vs2005这个快捷键对话面板太小了,拉不大,滚动条拉半天才能找到“步进”
qq2013 2009-12-06
  • 打赏
  • 举报
回复
学习下
woshifou 2009-12-06
  • 打赏
  • 举报
回复
学习下。
redleafe 2009-12-06
  • 打赏
  • 举报
回复
limit_clear 2009-12-06
  • 打赏
  • 举报
回复
jf
DoomLord 2009-12-06
  • 打赏
  • 举报
回复
修改vs的快捷键
wuyq11 2009-12-06
  • 打赏
  • 举报
回复
在工具-->自定义-->键盘 ,
也可以直接打开工具-->选项-->键盘
cyhcyhhychyc 2009-12-06
  • 打赏
  • 举报
回复
有同志知道怎么改注册表么,或者知道怎么改vs的快捷键,在工具》自定义》键盘里,看不懂那个界面,我设置了一下,把F8设置为步进快捷键,但是没有效果。
outou 2009-12-06
  • 打赏
  • 举报
回复
不太清楚。
cyhcyhhychyc 2009-12-06
  • 打赏
  • 举报
回复
搞之不定

7,765

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧