C# 模拟按键Win+R

sunzh1we1 2012-05-17 07:53:59
请问怎么模拟Win+R?
System.Windows.Forms.SendKeys.SendWait("");我知道怎么模拟Alt+F4,但不知道Win+R怎么模拟?
...全文
733 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
onlymatch 2012-09-24
  • 打赏
  • 举报
回复
请问何如实现ALT+F4呢?
test2050 2012-05-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
C# code

/// <summary>
/// 键盘事件
/// </summary>
/// <param name="bvk"></param>
/// <param name="bScan"></param>
/// <param name="dwFlags"> 0 为按下,2……
[/Quote]
++
lixan8672 2012-05-19
  • 打赏
  • 举报
回复
5 楼的可以,8楼的貌似报错。
言多必失 2012-05-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
C# code

/// <summary>
/// 键盘事件
/// </summary>
/// <param name="bvk"></param>
/// <param name="bScan"></param>
/// <param name="dwFlags"> 0 为按下,2……
[/Quote]

这个挺好,等会试试, 不知道能到达效果不,不希望是一个先一个后的。希望是同时按住的。
九度空间 2012-05-19
  • 打赏
  • 举报
回复
用win32API应该可以
sanguorewrite 2012-05-19
  • 打赏
  • 举报
回复
     public static void SendCombineKeyboardEvent(Keys Key1,Keys Key2, IntPtr windowHandler, int delay)
{
const int KEYEVENTF_EXTENDEDKEY = 0x1;
const int KEYEVENTF_KEYUP = 0x2;
keybd_event((byte)Key1, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0);
keybd_event((byte)Key2, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0);
System.Threading.Thread.Sleep(delay);
keybd_event((byte)Key1, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, (UIntPtr)0);
keybd_event((byte)Key2, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, (UIntPtr)0);
}
main ()
{
SendCombineKeyboardEvent(Keys.LWin, Keys.R, hwnd, 30);
}
gaofq 2012-05-19
  • 打赏
  • 举报
回复
我现在也在纠结这个问题,求高人解答。PS:641451308@qq.com
sunzh1we1 2012-05-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

没做过,提供个思路给你。
给菜单选项添加快捷键。比如:“添加人员”选项,快捷键是ctr+w,“添加人员”选项的名称设为toolStripMenuItem2。
在men.designer.cs文件中,toolStripMenuItem2的设置代码下添加:

this.toolStripMenuItem2.ShortcutKeys = ((System.Windows……
[/Quote]

Ctrl+...这个好做,但我需要的是win+...这种快捷键。。。
EnForGrass 2012-05-18
  • 打赏
  • 举报
回复

/// <summary>
/// 键盘事件
/// </summary>
/// <param name="bvk"></param>
/// <param name="bScan"></param>
/// <param name="dwFlags"> 0 为按下,2为释放</param>
/// <param name="dwExtraInfo">一般情况下设成为 0</param>
[DllImport("user32.dll")]
public extern static void keybd_event(byte bvk, byte bScan, int dwFlags, int dwExtraInfo);
//调用
keybd_event((byte)Keys.LWin, 0, 0, 0); //按下LWIN
keybd_event((byte)Keys.R, 0, 0, 0); //按下R
keybd_event((byte)Keys.LWin, 0, 2, 0); //释放LWIN
keybd_event((byte)Keys.R, 0, 2, 0); //释放R
EnForGrass 2012-05-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:

没做过,提供个思路给你。
给菜单选项添加快捷键。比如:“添加人员”选项,快捷键是ctr+w,“添加人员”选项的名称设为toolStripMenuItem2。
在men.designer.cs文件中,toolStripMenuItem2的设置代码下添加:

this.toolStripMenuItem2.ShortcutKeys = ((System.Win……
[/Quote]
参考http://blog.csdn.net/zuoxingyu/article/details/3364701
kangkang08 2012-05-18
  • 打赏
  • 举报
回复
用钩子!
wlcsdf 2012-05-17
  • 打赏
  • 举报
回复
没做过,提供个思路给你。
给菜单选项添加快捷键。比如:“添加人员”选项,快捷键是ctr+w,“添加人员”选项的名称设为toolStripMenuItem2。
在men.designer.cs文件中,toolStripMenuItem2的设置代码下添加:

this.toolStripMenuItem2.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.W)));

即可以实现预定效果。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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