2011-11-08 24 views
4

我正在創建一個程序,其中包括控制服務。我試圖列出與msconfig(下面的第一個窗口)中列出的服務類似的服務。如何獲取DLL或EXE的文件說明

我發現服務在註冊表中列出的位置。在Vista和Win7中,DisplayName和Description通常是引用。例如@%SystemRoot%\system32\aelupsvc.dll,-1是服務Application Experience的DisplayName數據。在Win7中有一個存儲這些引用的位置,可以很容易地獲取正確的DisplayName。但在Vista中,我沒有在註冊表中找到存儲此信息的地方。所以我看着被引用的文件,發現文件屬性的Details選項卡上的File Description就足夠了。

enter image description here

所以,我怎麼能得到File Description?我使用Java,所以我更喜歡使用Java或Command Line top獲取此信息。

+0

它存儲在版本資源中。你可以通過Win32 API來做到這一點,但我猜測某個地方有一個公開htis的Java API。 –

回答

1

版本號與說明位於同一頁面上。

所以我猜這個線程可能會有所幫助:

Get Version Info for .exe

+0

我能夠修改接受的鏈接代碼,以獲得我想要的信息。謝謝! – Dorothy

+0

@Dorothy我知道這篇文章有點舊了,但請問你是怎麼做到的(改編VS_FIXEDFILEINFO)?非常感謝你! – casaout

2

好工作,好運氣,但我建議你等,可能更容易解決。

使用命令行實用程序sc和/或WMI。您可以通過直接從java程序使用cscript實用程序或使用諸如JaWin,Jintegra或Jinterop之類的interoporability工具來執行腳本(JScript或VBScript)來連接到WMI。

JaWin和Jinterop是開源產品。

+0

我寧願使用類似WMI的東西,但我不知道什麼命令會讓我得到我想要的東西。我試過'wmic datafile',其中name ='C:\\ Windows \\ system32 \\ aelupsvc.dll',但它沒有文件描述。 – Dorothy