当前位置: 首页 > 知识库问答 >
问题:

从C语言中自动化遗留Java应用程序#

巫马庆
2023-03-14

我有一个非常古老的遗留Java应用程序,我想从C#中实现自动化。问题是我们没有应用程序的源代码,程序员早就离开了公司。我可能可以“反编译”这个文件。jar文件,但我也不是java程序员,我不认为访问源代码(没有注释)会让我走得更远。

到目前为止,我使用以下代码(我在循环中轮询,因为Java应用可能有多个实例),成功地(相当成功地)自动化了应用程序的登录对话框:

while (true) {
            var processes = Process.GetProcesses().Where(p => p.MainWindowTitle.Equals("Title of Java Login Window"));
            foreach (var process in processes) {
                var handle = process.MainWindowHandle;
                SetForegroundWindow(handle);

                await Task.Delay(500);

                SendKeys.SendWait("the password");
                SendKeys.SendWait("{TAB}");
                SendKeys.SendWait("the username");
                SendKeys.SendWait("{ENTER}");

                await Task.Delay(3000);
            }
            await Task.Delay(500);
        }

现在的问题是我无法获取Java窗口的内容。例如,登录可能有问题,比如用户或密码错误。所以我不想在Java窗口中查看登录失败消息。

是否有办法访问Java窗口的实际内容(文本)?

此外,Java应用程序的所有实例都共享相同的PID,因为实际上它只是一个Java。运行所有应用程序的exe进程。有没有办法区分这些应用程序?这显然不能用PID来完成。。。

共有1个答案

卫沈义
2023-03-14

反编译jar文件非常容易。只需下载(目前)使用最广泛的java反编译器,单击文件-

 类似资料:
  • 我面临的问题是,有一个服务,我必须调用,这是一个传统的Spring启动应用程序,而不是反应性的! 下面是一个示例endpoint,它接近上述遗留系统的想法: 我知道我不能用这个来实现真正的反应性善,有没有一个快乐的非阻塞和阻塞的媒介我可以在这里实现? 谢谢

  • 我有一个遗留的应用程序,它是建立在一个旧的自定义MVC框架上的,我想最终远离它。这个框架不依赖于单个前端控制器,所以大多数页面仍然有专用的php文件来调用受人尊敬的控制器,其他的是混合的php/html。我已经阅读了使用各种方法(https://symfony.com/doc/current/migration.html)将应用程序迁移到symfony,但是我对这两种方法都有问题,并且意识到我并不

  • 我有一个关于重构遗留PHP应用程序以与PHP的PSR-4标准兼容的问题。我有一些类位于应用程序/类/文件夹,尚未正确命名空间,我想让他们直接自动加载时,我调用作曲家的供应商/autoload.php.我添加了一个名称空间根据

  • 本文向大家介绍C语言实现程序开机自启动,包括了C语言实现程序开机自启动的使用技巧和注意事项,需要的朋友参考一下 程序比较简单,用到了C语言获得自身路径和系统路径,修改注册表项等,某些函数不理解可以查看MSDN

  • 问题内容: 我最近听说过,然后我在一个网站上看到 传统类用于在Collections出现之前保存对象。 那么,为什么这些不被称为类,为什么呢? 问题答案: 传统类和接口是在Java 早期版本 中形成集合框架的类和接口,以及现在如何对其进行重组或重新设计。它们与框架完全兼容。 正式 不被弃用。 重新设计了所有旧类,以支持JDK5中的泛型。 Pratically 都不会被弃用,但也有其他类比较合适。

  • 本文向大家介绍C#留言时间格式化,包括了C#留言时间格式化的使用技巧和注意事项,需要的朋友参考一下 平台:Vs2012 主要实现例如空间发表说说时间的显示,如:某人在10秒前回复了你这种效果,可用在Web浏览器,窗体,等... 计算两个时间差值的函数,返回时间差的绝对值: 以上所述就是本文的全部内容了,希望大家能够喜欢。