我试图build立一个C#的背景应用程序,将挂钩键盘击键(例如CAPS +(A / B / C / ….))充当复制到许多不同的剪贴板。
首先,我查找了一个类似于CTRL + V的Windows方法:直接粘贴一个完整的string。 我也尝试了SendInputs来“粘贴”,错误的想法花了太长的时间来执行。 由于我没有find任何商品,我决定使用Windows剪贴板。
情景是(当我做CAPS + A时)
当我在记事本上时,这效果很好。 但是,当在另一个应用程序上执行CTRL + C时,我在第3步得到exceptionCLIPBRD_E_CANT_OPEN(正好5秒,我的应用程序无法访问剪贴板)
我的问题: – 有没有办法发送一个Windows的信号来“粘贴”一些给定的文本,就像一个CTRL + V而不使用Windows剪贴板? – 有没有办法强制剪贴板回到我的应用程序在5秒内? – 我错过了一个更聪明的情况?
谢谢!
先来看看这个拦截Keys:
[DllImport("user32.dll")] public static extern int GetAsyncKeyState(long vKey);
VK_CONTROL = 0x11
VK_SHIFT = 0x10
C密钥= 0x43
如果按下某个键,该函数返回一个大于0的整数值。