不需要解锁会话的SendKeys替代方案

4

情况:

一个GUI应用程序包含功能(通过菜单选项)来生成经常更新的图像到一个目录。

登录并运行的应用程序是这个图像的唯一来源(依赖于显示设备的功能)。我已经研究了很多,这是一个悲伤的事实。

GUI应用程序提供COM接口,但没有生成图像的接口。

GUI代码不能改变(大惊小怪)。

要求:

其他进程需要在各种时间获得这些当前的图像。

明显的解决方案:

创建GUI应用程序的一个实例并使用SendKeys操作控件生成图像的过程。

障碍(我需要详细说明吗)

除了Sendkeys的不稳定性之外-假设Sendkeys是可靠的...

当控制台会话被锁定时,Sendkeys无法工作(锁定是产品要求)

SendMessage API无法发送类似“shift / letter”这样的键组合(需要调用菜单选项)。

问题

是否有其他方法在会话被锁定时与应用程序进行编程交互?

Windows服务能否在预定时间内解锁/锁定会话-允许生成图像。

我知道,我知道,这太糟糕了。任何高层次的想法和大多数意见都将不胜感激;)

1个回答

2

虚拟电脑。

锁定主机而不是虚拟机。


但实际上回答你的问题:我认为你不能向锁定的计算机发送按键。为什么?如果有多个已登录会话,那么它会将按键发送到哪一个会话?


好的,虚拟PC是一个选项 - 谢谢。我仍然为实际生成(并需要)GUI运行实例的COM接口感到震惊。这让我很困惑。也许我误解了,但我认为COM的美妙之处在于您可以在不受实现限制的情况下获得功能。 - Chris
COM旨在将使用与实现分离(例如,只要接口不改变,实现就可以更改)。在这种情况下,听起来他们让人们使用接口驱动他们的UI;但是你仍然在驱动一个接口。他们可以重新编写应用程序,使其UI使用接口驱动底层逻辑-但是这样做有多少收益和回报... - Ian Boyd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接