C#关于操作系统的消息处理
楼主最近在做一个关于C#的智能输入的小程序
程序功能如下:点击一个按钮,就开始发送http请求。每次请求得到的是一段文字,这个小程序能把得到的文字发送到当前的光标的位置,任意位置。比如notepad,word,IE的输入框等,只要是光标在的地方。
楼主现在遇到的 问题是:
1.刚开始想使用SendMessage实现,但是得获取当前的焦点的应用程序的句柄,对于简单的notepad还是可以的,但是想是应用程序内嵌的TextBox好像就比较复杂了。
2.后来想着直接操作剪切板,然后模拟剪切板的ctrl+v事件进行处理。
楼主使用的Key_event发送的虚拟键盘消息。
顺序是:
1.获取当前剪切板的内容记录下来
2.将http请求的得到的消息放入到剪切板中
3.发送ctrl+v消息
4.将刚开始记录的消息放入到剪切板中
但是由于消息的处理的速度和Key_event可能是PostMessage形式的,在操作系统执行ctrl+v事件的时候,程序可能已经执行过了第4步。也就是粘贴了一个错误的string上去。
大家有什么方法能等ctrl+v执行完毕了再返回或者是其他的能在光标出输入String的好的方法么。感激不尽