在Java中是否可以从我未制作的gui的工具提示中获取文本。例如,我可能在Web浏览器中或在桌面应用程序中,而我的Java程序在后台运行。我想获取任何时候弹出的工具提示信息,并将其返回给Java程序。

只是为了澄清一下,我不是在问如何在gui中创建工具提示或获取工具提示数据,我只制作出现在其他第三方软件中的工具提示。谢谢。

最佳答案

工具提示文本必须在软件中的“某处”。根据软件的构建和分发方式,“ Somewhere”可以位于几个不同的位置:


源代码中的字符串文字(以及字节代码中的字符串文字),这通常发生在非国际化的程序中
资源包,即将字符串从源代码外部化为一个单独的文件(通常每个受支持的UI语言一个)


如果该软件以* .jar-File的形式分发,请使用您喜欢的unzip软件进行解压缩(如有疑问,请使用7zip)。

到处寻找* .properties文件,这些文件可能包含您正在寻找的资源包(= UI文本字符串的集合)。

如果找不到资源束,则工具提示文本可能直接在字节码中的字符串文字中隐藏。在* nix-ish平台上使用strings(1)之类的东西(该链接没有链接,似乎我只能发布2个链接),或者在Windows上使用Strings从* .class-files中提取可打印的字符串。

请注意,您可能会在其中找到许多可打印的字符串,因此您可能希望使用合适的正则表达式对其进行过滤。

09-15 18:08