Delphi

本类阅读TOP10

·分布式网络考试系统原型分析及实现
·游戏外挂设计技术探讨①
·使用HOOK随心监视Windows
·Delphi 水晶报表打包解决
·试题库开发中非文本数据的处理
·如何将几个DBGRID里的内容导入同一个EXCEL表中....的问题
·如何使用Delphi设计强大的服务器程序
·工人线程中关闭窗体的实现
·用DLL方式封装MDI子窗体。
·支持XP下托盘栏气球提示的托盘单元

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
用程序设置COM+应用程序的属性。

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

 

用程序设置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,还是没找到到底该用什么值,瞎猜了一通也不对。微软就是搞笑,给了一个函数,却不给怎么调用,或许是我笨,没找到。不过笨人也有笨办法,把这些属性值找出来。

TCOMAdminCatalogCollection这个变量保存的是一个集合(Collection),变量通过GetCollection函数来赋值,MSDN中有对这些集合的说明,找到了一个PropertyInfo集合(看着像),于是把它取了出来,用for循环进行遍历,就可以得到相应的属性名了,代码如下:

CataColl := CataColl.GetCollection('PropertyInfo',CataObj.Get_Key);

CataColl.Populate;

for j := 0 to CataColl.Count - 1 do

begin

  CataObj := CataColl.Get_Item(j);

  self.Memo1.Lines.Add(CataObj.Name);

end;

Memo中就可以读出各个属性值了。对COM+目录的操作就是一个取集合和遍历集合的过程,大家自己去举一反三吧^_^

以下是PropertyInfo集合的各个属性名称,也就是Set_Value方法的第一个参数bstrPropName的值:

Name

ID

Description

IsSystem

Authentication

ShutdownAfter

RunForever

Identity

Password

Activation

Changeable

Deleteable

CreatedBy

AccessChecksLevel

ApplicationAccessChecksEnabled

CommandLine

ImpersonationLevel

CRMEnabled

AuthenticationCapability

3GigSupportEnabled

QueuingEnabled

QueueListenerEnabled

EventsEnabled

ApplicationProxy

ApplicationProxyServerName

CRMLogFile




相关文章

相关软件