C# 中的SendKeys.Send SendWait 对文本文件 以及其他可输入文本框都有效 但是对LabView写的窗体文本框 就无效 没有反应呢 又经验的朋友求指点一二 问题出在哪里
没具体试过labview。在游戏模式很多也是无效的,因为实现方式不一样。
视图框架行为不是非要从窗口消息实现(焦点、最小化等等一些原则上肯定是要处理的),放到工业视图领域 这个方面应该也是跟游戏一样,消息模式不太适用,会造成资源分配和阻塞等等问题。
你玩玩模拟器游戏对此将会有深刻感受。
非常感谢你的回复 我最初的猜测也是LabView的双层结构 外层的视图框架的确与.Net下的窗体控件不同 并且通过Spy++也只能抓取到整体程序的Handle Class 等等 并不能抓取到文本框 我想寻求可以对视图框架文本框编辑的方法 去模拟键盘输入 .net下的SetForegroundWindow方法也无法为labview文本框获取焦点
@权啊权:
你试试操控“键盘设备”和“鼠标设备”。
以前游戏模拟是通过这样实现的,实现代码通过之前的模拟精灵实现代码来的,你自己查一下。
抓不到Handle是正常的,作为一个专业的工业门类视图体系,如果从Control这么庞大臃肿的控件而来,基本上就玩完了,游戏也是一样。
而且现在的QQ等等,都不再采用传统GDI Handle模式,而是使用DirectUI模式,都抓不到Button之类的Handle。
打上引号不是指具体物理设备,是系统的一个虚拟层,键盘是个256的byte[]。用这个还实现过QQ自动骂架。qq这些是用的消息的,消息也是可以完成的。
LabView写的窗体文本框没有句柄。就是整个窗体只有一个句柄,下面的控件是没有句柄的,跟Qt程序是一样的。