2014-05-19 22 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

相关问题