【问题标题】:Which is the programming language to retrieve info. such as OS info, memory, processes/threads, program version, DLL version etc?这是检索信息的编程语言。例如操作系统信息、内存、进程/线程、程序版本、DLL 版本等?
【发布时间】:2010-11-19 04:33:19
【问题描述】:

我想开发一个可以检索信息的应用程序,例如 DLL 版本、DLL 构建模式(调试或发布)、信息。关于操作系统、内存、处理器、进程/线程、程序版本等。我主要为 Windows 开发这个,但如果应用程序也支持 Linux(如果适用)会很好。

我基本上是一个java程序员,对C、C++都有一定的了解。

我应该选择哪种编程语言,这样我的工作会更轻松?即哪种语言有 API 来获取这些信息?

【问题讨论】:

    标签: memory process operating-system


    【解决方案1】:

    嗯...无论使用何种语言,API 都是可用的...但最简单的方法是使用 C 或 C++ 应用程序。这并不意味着它会很容易(获得 DLL 版本很容易,获得内存和处理器类型也很容易。其他的东西当然是可能的,但你可能必须卷起袖子学习 win32 API)。

    在您尝试自己开发此应用程序之前,您可能需要查看一个已经完全符合您要求的应用程序 (Process Explorer)... 这将是一项艰巨的任务 - Sys 的人内部人员非常非常擅长这些东西,并且已经做到了。

    【讨论】:

    • 嗨,凯文,感谢您的回答。我只是想知道如果使用 Java,我完成这项任务的机会是否会变得更加困难。因为我不仅更喜欢 Java,而且当谈到 Win API 和其他东西时,我完全是空白。
    • 不 - 从 Java 中执行此操作将比仅在 C 中执行此操作要困难得多。也就是说,如果您的应用程序中有适合 Java 的部分(UI、套接字交互、多线程等...),你当然可以做一个组合 - 用 C 编写低级的东西,然后使用 JNI 将它桥接到 Java。我们在几个应用程序中这样做。但是现在您正在谈论学习 C 和 JNI - 以及 Win32 API(无论您想做什么,都必须学习这些 API)。
    【解决方案2】:

    既然提到了 DLL,我假设我们谈论的是 Windows。 我建议使用 WMI 查询。它们看起来很像 SQL,并且可以让您访问许多非常有用的类。 例如有关操作系统的所有信息都可以在这里找到 - 在 W32_OperatingSystem 中: http://msdn.microsoft.com/en-us/library/aa394239(VS.85).aspx 您可以使用任何语言的 WMI 类,包括 C++。 附带说明 - 如果您从头开始一个新应用程序,请考虑使用 PowerShell - Microsoft 的新脚本语言。

    【讨论】:

      【解决方案3】:

      您评论了 Kevin Day 的回答,您更愿意为此使用 Java。

      Java 不是很适合这种情况,因为您想要获取的信息是非常特定于平台的,而且由于 Java 被设计为独立于平台的,因此获取此类信息的方法并不多来自Java。

      类 java.lang.System 和 java.lang.Runtime 中有一些方法可以获取有关运行 Java 程序的平台的信息。例如,类 Runtime 有一个方法 availableProcessors(),它告诉您有多少处理器可供 Java 虚拟机使用。请注意,这与计算机中存在的处理器(或内核)的数量不同;文档甚至说程序运行时数字可能会发生变化。

      查找 java.lang.System 和 java.lang.Runtime 的文档以获取更多信息。

      使用纯 Java 很可能无法准确获得所需的信息 - C 或 C++ 更适合获得这种特定于平台的信息。如果您需要 Java 程序中的这些信息,您可以编写一个小型 DLL 或共享库,然后使用 JNI 从您的 Java 程序中调用它。

      【讨论】:

      • 非常符合我在考虑使用 Java 时的想法。不过很好的解释。 +1!
      猜你喜欢
      • 2011-03-22
      • 2019-10-15
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      • 2023-03-19
      • 2017-09-11
      • 1970-01-01
      • 2011-03-21
      相关资源
      最近更新 更多