2009-08-13 24 views
0

我想開發一個應用程序,可以檢索信息,如DLL版本,DLL構建模式(調試或發佈),信息。關於操作系統,內存,處理器,進程/線程,程序版本等。我正在開發這個主要用於Windows,但它應該很好,如果應用程序也支持Linux(任何適用)。哪一種是檢索信息的編程語言。如操作系統信息,內存,進程/線程,程序版本,DLL版本等?

我基本上是一個java程序員,我在某種程度上知道C,C++。

我應該選擇哪種編程語言,這會讓我的工作變得簡單?即哪種語言具有獲取這些信息的API?

回答

1

呃... API可以使用,不管語言如何......但是最簡單的方法是獲取你想要做的事情,將成爲一個C或C++應用程序。這並不意味着它會很容易(獲得一個DLL版本很容易,獲得內存和處理器類型很容易,其他的東西當然是可能的,但你可能需要捲起袖子並學習win32 API)。

你可能想看看已經不完全是一個應用程序則是問有關(Process Explorer)你嘗試這種發展自己......這將是一個很大的承諾之前 - 和鄉親Sys系統內幕真的很擅長這個東西,而且已經做到了。

+0

嗨凱文,謝謝你的回答。我只想知道,如果用Java,我的這個任務的機會就會變得更加困難。因爲我不僅喜歡Java,而且當涉及到Win API時,我完全是空白的。 – 2009-08-13 04:52:25

+0

nope - 在Java中這樣做會比在C中做更困難得多。也就是說,如果你的應用程序的某些部分適合Java(UI,套接字交互,多線程等),那麼你當然可以做一個組合 - 在C中編寫低級別的東西,然後使用JNI將其與Java連接起來。我們在幾個應用程序中這樣做。但是現在你正在談論學習C和JNI,以及Win32 API(無論你想要做什麼,你將不得不學習什麼)。 – 2009-08-13 14:44:02

0

由於DLL被提及,我認爲我們正在談論Windows。 我會推薦使用WMI查詢。它們看起來非常像SQL,並且可以訪問許多非常有用的類。 例如關於操作系統的所有信息可以在這裏找到 - 在W32_OperatingSystem中: http://msdn.microsoft.com/en-us/library/aa394239(VS.85).aspx 您可以使用包括C++在內的任何語言的WMI類。 請注意,如果您從頭開始創建新應用程序,請考慮使用PowerShell - Microsoft提供的新腳本語言。

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程序調用它。

+0

非常符合我在考慮使用Java時的想法。不錯的解釋。 +1! – 2009-08-13 08:56:07

相關問題