我想开发一个可以检索DLL版本,DLL构建模式(调试或发布),信息等信息的应用程序。关于操作系统,内存,处理器,进程/线程,程序版本等我正在开发这个主要用于Windows,但如果应用程序也支持Linux(在适用的地方),它会很好。
我基本上是一名java程序员,我在某种程度上了解C,C ++。
我应该选择哪种编程语言,这会让我的工作轻松一点?即哪种语言有API来获取这些信息?
答案 0 :(得分:1)
嗯......无论语言如何都可以使用API ......但是,最简单的方法是获得你想做的事情,那就是C或C ++应用程序。这并不意味着它很容易(获得DLL版本很容易,获得内存和处理器类型很容易。其他的东西肯定是可能的,但你可能需要卷起袖子学习win32 API。) / p>
在尝试自己开发之前,您可能想要查看已经完全按照您的要求(Process Explorer)完成的应用程序...这将是一项艰巨的任务 - 而且这些人在Sys Internals真的很擅长这个东西,而且已经做到了。
答案 1 :(得分:1)
您评论了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程序中调用它。
答案 2 :(得分:0)
由于提到了DLL,我认为我们正在谈论Windows。 我建议使用WMI查询。它们看起来非常像SQL,可以让您访问许多非常有用的类。 例如有关操作系统的所有信息可以在这里找到 - 在W32_OperatingSystem中: http://msdn.microsoft.com/en-us/library/aa394239(VS.85).aspx 您可以使用任何语言的WMI类,包括C ++。 作为旁注 - 如果从头开始创建新应用程序,请考虑使用PowerShell - Microsoft的新脚本语言。