[英]How do I run a .java file on a server that other java programs can interact with?
[英]How to write a program that can interact with other programs
我想写一个可以在windows上播放纸牌的程序。 用户将运行该程序并打开纸牌,并在卡片移动时观看。 很容易编写AI用于播放纸牌的程序(我显然没有Windows纸牌的源代码)。 我可以想到这样做的一种方式是,如果我拍摄了纸牌的图像并对其进行分析以确定卡片的当前状态,那么我可以将卡片的当前状态传递给我的程序,这可以决定下一步行动。 但是我将如何执行click命令。
更一般地说,我想编写一个可以像用户那样与另一个程序交互的程序。 我有C,C ++,Java,Ruby方面的经验。 但我不知道如何开始这个,或者甚至可以做到这一点?
我不确定这里的所有其他帖子,但是Java有一个Robot类,它允许你(轻松地)将键盘和鼠标事件发送到底层操作系统(在这种情况下为Windows),这样就可以让你完全按照自己的意思行事了。再谈。 这是一个小课程我已经用了很多次来“自动化”Windows上的任务。
(我知道这是一个老话题,但万一其他人在世界各地偶然发现它并且想要做你已经概述的事情。)
如果要自动执行Windows任务,请使用专门编写的语言来执行此操作。 想到的那些包括WinBatch,AutoIt和AutoHotkey。
Java不是执行此操作的语言。 为了促进这样的功能,您需要严重依赖Windows API,尤其是那些允许您注入输入的API。 作为一个起点,我建议您熟悉Windows应用程序实际处理输入的方式。 这是一篇关于这个主题的好文章。
Windows有一个所谓的“UI自动化”API,它非常有助于实现您的要求 - 一些链接包含详细信息/源/样本:
备注:
从Java执行此操作可能有点困难,因为AFAIK需要使用JNI。
我个人不喜欢屏幕刮刀技术,因为它们经常受到底层应用程序更改或甚至屏幕分辨率变化的影响。
然而,这似乎是一种你可以采用的方法。
我同意java不是这里的最佳选择。
搜索“屏幕刮刀API”,你应该找到一些东西让你开始。
更新:
第一个看起来很有希望的是http://community.screen-scraper.com/API
反直觉似乎是基于java的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.