【问题标题】:C# Simulate Key PressC# 模拟按键
【发布时间】:2011-11-10 14:15:35
【问题描述】:

我正在寻找一种方法来模拟在 C# 中按下右 Ctrl 键,它必须是正确的。我知道这可以为左侧完成,但我在右侧找不到任何东西。这样我就可以模拟手动触发的蓝屏按键。

谢谢

【问题讨论】:

  • ...manually triggered bsod. 等等...什么?
  • 我不知道这是否很棒,愚蠢或只是一个剩余的调试密钥(很可能是最后一个)......无论如何,很高兴知道,谢谢。
  • 我将在我同事的 PC 上启用此功能,并使用 AutoHotKey 模拟他输入姓名时的按键操作。哇哈哈哈哈哈。

标签: c# sendkeys bsod


【解决方案1】:

您可以使用keybd_event 事件来模拟右 Ctrl 按键。

[DllImport("user32.dll", SetLastError = true)]
static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo); 

public const int KEYEVENTF_EXTENDEDKEY = 0x0001; //Key down flag
public const int KEYEVENTF_KEYUP = 0x0002; //Key up flag
public const int VK_RCONTROL = 0xA3; //Right Control key code

用法:

keybd_event(VK_RCONTROL, 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(VK_RCONTROL, 0, KEYEVENTF_KEYUP, 0); 

用于其他按键模拟here is virtual key codes list。

【讨论】:

    【解决方案2】:

    如果您使用 AutoHotKey,请尝试查看 here。 {RControl} 你应该得到你想要的

    更新:对于 .NET,请尝试查看 this 以获取更多信息,但 AFAIK 您无法发送正确的 Ctrl 键。猜猜你必须使用win32来完成它

    【讨论】:

    • 感谢您的链接,但我希望从带有 C# 的 vs 应用程序中执行此操作,这可能吗?如果没有,我会看看 AutoHotKey,谢谢。
    【解决方案3】:

    您可能对 Windows 输入模拟器 http://inputsimulator.codeplex.com/ 有一些运气

    【讨论】:

      猜你喜欢
      • 2020-04-29
      • 2011-03-04
      • 2012-02-15
      • 2021-03-07
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多