编程多个自定义剪贴板,使用windows剪贴板-很少的复杂性
本文关键字:剪贴板 复杂性 windows 使用 自定义 编程 | 更新日期: 2023-09-27 18:14:58
我正在尝试建立一个c#背景应用程序,将钩键盘按键(例如CAPS + (a/B/C/....))作为复制到许多不同的剪贴板。
首先,我寻找了一个Windows方法,它会像CTRL+V一样:直接粘贴一个完整的字符串。我还尝试了SendInputs来"粘贴",错误的想法是执行时间太长。由于我没有找到任何商品,我决定使用Windows剪贴板。
场景是(当我做CAPS+A时)
- 缓存剪贴板的内容以便以后检索
- 模拟CTRL+C
- 获取剪贴板的内容并将其设置为与' a '键对应的变量
- 将剪贴板设置为默认缓存值
当我在记事本上时,这个效果很好。但是,当在另一个应用程序上执行CTRL+C时,我在步骤3中得到异常CLIPBRD_E_CANT_OPEN(整整5秒,剪贴板不能被我的应用程序访问)
我的问题:-有没有一种方法发送窗口的信号,为它"粘贴"一些给定的文本,像一个CTRL+V不使用Windows剪贴板?-是否有一种方法来强制剪贴板回到我的应用程序在5秒内?-我错过了一个更聪明的场景吗?
谢谢!
看一下这个拦截键:
[DllImport("user32.dll")]
public static extern int GetAsyncKeyState(long vKey);
VK_CONTROL = 0x11
VK_SHIFT = 0x10
C键= 0x43
如果按下一个键,函数返回一个整数值>0。