3

我正在为我在 Eclipse(使用 Java)中的开发工作开发一个活动跟踪器。我现在有了程序的路径和我在其中花费的持续时间。

例如:7min C:\Program Files (x86)\Internet Explorer\iexplore.exe10min C:\Program Files\Microsoft Office\Office14\OUTLOOK.EXE

我现在想知道程序的名称。在 C# 中,我得到它是这样的:

System.Diagnostics.FileVersionInfo versionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(file);
return (versionInfo.FileDescription == string.Empty) ? null : versionInfo.FileDescription;

不幸的是,我在 Java 中没有找到这样的方法,我不确定这是否可能?

谢谢!

编辑:我也阅读了这篇文章和接受的答案,但无法获得 FileDescription ...

4

2 回答 2

1

我不知道Java中有这样的API。但是,您可以执行以下操作:

  1. 使用返回程序名称的所需方法创建 C# 项目。
  2. 将此项目导出到 DLL。
  3. 在您的 java 代码中,您可以使用 JNI 从您的 DLL 项目中调用本机代码。您可以查看这些示例: SUN JNI 示例从 Java 应用程序中进行本机 Windows API 调用

(我建议你考虑一下你是否绝对需要这个描述。)祝你好运!

于 2012-09-10T07:53:16.743 回答
0

我花了很长时间才找到这个,但我终于能够拼凑出这个内联脚本: (get-command *.exe).fileversioninfo.filedescription 现在我使用了*.exe并且.filedescription因为我试图为exe目录中的每个返回美化的文件名,但你可以使用任何可用的变量。

于 2021-10-20T13:03:09.220 回答