2014-05-19 59 views
1

我正在使用Inno安裝程序爲ASP.net應用程序創建安裝程序。我想在系統中有一個包含所有應用程序池的組合框。我發現下面的代碼部分讓所有的應用程序池:列出inno setup中的所有應用程序池

IIS := CreateOleObject('IISNamespace'); 
appPools := IIS.GetObject('IIsApplicationPools', 'localhost/W3SVC/AppPools'); 

我還發現如何讓單個特定的應用程序池,但我無法弄清楚如何通過這個appPools迭代。

回答

0

我找到了解決方案。它需要使用名爲WMI的外部程序包。它可以從http://www.vincenzo.net/isxkb/index.php?title=WMI下載。 Heere是一個完整的代碼:

appPools := IIS.GetObject('IIsApplicationPools', 'localhost/W3SVC/AppPools'); 

IISPoolIndex := 1; 

WebSite := IIS.GetObject('IIsWebService', 'localhost' + '/w3svc'); 
// GetObject structure: Schema, NextName of data 
tVariants := ComEnumerate(WebSite.GetObject('IIsApplicationPools', 'AppPools')); 
For i := 0 to GetArrayLength (tVariants) - 1 do 
begin 
// ComboBox with Application Pool Names 
AppPoolsComboBox.Items.Add(tVariants[i].Name); 
end; 
+0

WMI是一個核心的Windows管理技術,而不是外部軟件包。但是,對於您的特定任務,您需要一個外部庫(例如該站點中的一個)來獲取對Inno Setup的Pascal腳本目前無法實現的枚舉器的支持。 – TLama

相關問題