C#关于操作系统的消息处理

Super_cpp 2017-01-05 06:20:53
楼主最近在做一个关于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的好的方法么。感激不尽
...全文
202 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
woailiuxiaochang 2017-01-09
  • 打赏
  • 举报
回复
System.Windows.Forms.SendKeys.SendWait("^v"); 楼主试试这个方法
crystal_lz 2017-01-06
  • 打赏
  • 举报
回复
直接 SendKeys 不就搞定了
闭包客 2017-01-06
  • 打赏
  • 举报
回复
做输入法啊?我不懂,关注。 这种程序跟 C# 的关系不大了,C++程序员对这些比较熟悉。
zj_zwl 2017-01-06
  • 打赏
  • 举报
回复
用SendInput函数吧
Poopaye 2017-01-05
  • 打赏
  • 举报
回复
引用 楼主 Super_cpp 的回复:
但是想是应用程序内嵌的TextBox好像就比较复杂了。
键盘消息试试用广播,不用指定窗口
Poopaye 2017-01-05
  • 打赏
  • 举报
回复
把每个字符用WM_CHAR发过去不就行了?干嘛惊动剪贴板……
内容简介 《C#编程宝典(十年典藏版)》是一本集技能、范例、项目和应用为一体的学习手册,书中介绍了应用C#进行程序开发的各种技术和技巧。全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括做好C#程序开发前期准备、掌握c#语言基础之数据类型与变量、领略运算符和表达式带给我们的神奇、巧用流程控制语句、算法、字符串、数组、步入面向对象程序设计的殿堂、使用Windows窗体搭建交互式图形界面、你所必须知道的Windows控件、掌握能够辅助程序开发的Windows控件、数据库管理系统开发必备、LINQ数据访问技术、程序调试与错误处理、打包部署等内容;第2篇为范例演练篇,主要包括基础应用相关、数据库开发相关、图形图像及多媒体应用、WPF图形化显示系统等相关的范例;第3篇为项目实战篇,主要包括明日快递单打印系统、QQ自动登录器、雷速网络下载专家、编程词典销售分析系统等4个小型项目;第4篇为商业系统篇,主要介绍一个大型的商业项目,即企业ERP管理系统(C/S架构)。 《C#编程宝典(十年典藏版)》附有配套DVD光盘,光盘中提供了书中全部实例和项目的源代码,这些源代码全部经过精心调试,能够在Windows XP、Windows Server 2003以及Windows 7操作系统下编译和运行。 《C#编程宝典(十年典藏版)》适用于C#的初学者、编程爱好者,同时也可以作为培训机构、大中专院校老师和学生的学习参考用书。

110,560

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧