我正在尝试构建一个C#后台应用程序,它可以挂钩键盘按键(例如CAPS +(A / B / C / ....)),作为复制到许多不同的剪贴板。
首先,我找了一个像CTRL + V一样的Windows方法:直接粘贴一个完整的字符串。我还尝试了SendInputs来粘贴"错误的想法执行时间太长。由于我没有找到任何商品,我决定使用Windows剪贴板。
情景是(当我做CAPS + A时)
当我在记事本上时这很有效。但是,当在另一个应用程序上执行CTRL + C时,我在步骤3得到异常CLIPBRD_E_CANT_OPEN(正好5秒钟,我的应用程序无法访问剪贴板)
我的问题: - 有没有办法向Windows发送信号,以便粘贴"粘贴"一些给定的文本,像CTRL + V一样不使用Windows剪贴板? - 有没有办法强制剪贴板在5秒内回到我的应用程序? - 我错过了一个更聪明的场景吗?
谢谢!
答案 0 :(得分:0)
在此之前看看这个拦截Keys:
[DllImport("user32.dll")]
public static extern int GetAsyncKeyState(long vKey);
VK_CONTROL = 0x11
VK_SHIFT = 0x10
C键= 0x43
如果按下某个键,该函数将返回一个整数值> 0。