用程序设置com+应用程序的属性。
今天从别人机器上导出了个代理程序,注册在自己的机器上,在组件服务里查看com+应用程序的属性,发现代理程序有一个属性是可以修改的,就是远程服务器名称,在更改了此名称后,程序中不需要用createremote函数,也可以申请到远程接口指针。可是我们应该给用户一个友好的界面,不能总让用户打开组件服务吧,来,我们写个程序吧。
这次我们只用delphi控件好啦(唉,懒就一个字^_^)
定义三个变量
catacoll:tcomadmincatalogcollection;
cataobj:tcomadmincatalogobject;
comadmincata:tcomadmincatalog;
begin
comadmincata := tcomadmincatalog.create(self);
catacoll := comadmincata.getcollection(&applications&);
catacoll.populate;
for i := 0 to catacoll.count - 1 do
begin
cataobj := catacoll.get_item(i);
if cataobj.name = 你的应用程序名 then
begin
cataobj.set_value(&applicationproxyservername&,新服务器名);
catacoll.savechanges; //记着保存修改
break;
end;
end;
end;
代码并不长,关键的函数是set_value,函数原型如下:
procedure set_value(const bstrpropname: widestring; retval: olevariant);
关键是这个bstrpropname╠╠属性的名称,字符串类型,到底是什么字符串呢?我翻了一通msdn,还是没找到到底该用什么值,瞎猜了一通也不对。微软就是搞笑,给了一个函数,却不给怎么调用,或许是我笨,没找到。不过笨人也有笨办法,把这些属性值找出来。