|
 |
栏目导栏 |
|
| |
|
|
|
|
 |
资料搜索 |
|
| |
|
|
|
|
 |
热门文章 |
|
| |
|
|
|
|
 |
最新文章 |
|
| |
|
|
|
| |
| |
|
|
|
|
今天从别人机器上导出了个代理程序,注册在自己的机器上,在组件服务里查看COM+应用程序的属性,发现代理程序有一个属性是可以修改的,就是远程服务器名称,在更改了此名称后,程序中不需要用CreateRemote函数,也可以申请到远程接口指针。可是我们应该给用户一个友好的界面,不能总让用户打开组件服务吧,来,我们写个程序吧。2M4Linux联盟 2M4Linux联盟 这次我们只用Delphi控件好啦(唉,懒就一个字^_^)2M4Linux联盟 2M4Linux联盟 定义三个变量2M4Linux联盟 2M4Linux联盟 CataColl:TCOMAdminCatalogCollection;2M4Linux联盟 2M4Linux联盟 CataObj:TCOMAdminCatalogObject;2M4Linux联盟 2M4Linux联盟 COMADminCata:TCOMAdminCatalog;2M4Linux联盟 2M4Linux联盟 begin2M4Linux联盟 2M4Linux联盟 COMADminCata := TCOMAdminCatalog.Create(self);2M4Linux联盟 2M4Linux联盟 CataColl := COMADminCata.GetCollection('Applications');2M4Linux联盟 2M4Linux联盟 CataColl.Populate;2M4Linux联盟 2M4Linux联盟 for i := 0 to CataColl.Count - 1 do2M4Linux联盟 2M4Linux联盟 begin2M4Linux联盟 2M4Linux联盟 CataObj := CataColl.Get_Item(i);2M4Linux联盟 2M4Linux联盟 if CataObj.Name = 你的应用程序名 then2M4Linux联盟 2M4Linux联盟 begin2M4Linux联盟 2M4Linux联盟 CataObj.Set_Value('ApplicationProxyServerName',新服务器名);2M4Linux联盟 2M4Linux联盟 CataColl.SaveChanges; //记着保存修改2M4Linux联盟 2M4Linux联盟 break;2M4Linux联盟 2M4Linux联盟 end;2M4Linux联盟 2M4Linux联盟 end;2M4Linux联盟 2M4Linux联盟 end;2M4Linux联盟 2M4Linux联盟 代码并不长,关键的函数是Set_Value,函数原型如下:2M4Linux联盟 2M4Linux联盟 procedure Set_Value(const bstrPropName: WideString; retval: OleVariant);2M4Linux联盟 2M4Linux联盟 关键是这个bstrPropName――属性的名称,字符串类型,到底是什么字符串呢?我翻了一通MSDN,还是没找到到底该用什么值,瞎猜了一通也不对。微软就是搞笑,给了一个函数,却不给怎么调用,或许是我笨,没找到。不过笨人也有笨办法,把这些属性值找出来。2M4Linux联盟 2M4Linux联盟 TCOMAdminCatalogCollection这个变量保存的是一个集合(Collection),变量通过GetCollection函数来赋值,MSDN中有对这些集合的说明,找到了一个PropertyInfo集合(看着像),于是把它取了出来,用for循环进行遍历,就可以得到相应的属性名了,代码如下:2M4Linux联盟 2M4Linux联盟 CataColl := CataColl.GetCollection('PropertyInfo',CataObj.Get_Key);2M4Linux联盟 2M4Linux联盟 CataColl.Populate;2M4Linux联盟 2M4Linux联盟 for j := 0 to CataColl.Count - 1 do2M4Linux联盟 2M4Linux联盟 begin2M4Linux联盟 2M4Linux联盟 CataObj := CataColl.Get_Item(j);2M4Linux联盟 2M4Linux联盟 self.Memo1.Lines.Add(CataObj.Name);2M4Linux联盟 2M4Linux联盟 end;2M4Linux联盟 2M4Linux联盟 从Memo中就可以读出各个属性值了。对COM+目录的操作就是一个取集合和遍历集合的过程,大家自己去举一反三吧^_^2M4Linux联盟 2M4Linux联盟 以下是PropertyInfo集合的各个属性名称,也就是Set_Value方法的第一个参数bstrPropName的值:2M4Linux联盟 2M4Linux联盟 Name2M4Linux联盟 2M4Linux联盟 ID2M4Linux联盟 2M4Linux联盟 Description2M4Linux联盟 2M4Linux联盟 IsSystem2M4Linux联盟 2M4Linux联盟 Authentication2M4Linux联盟 2M4Linux联盟 ShutdownAfter2M4Linux联盟 2M4Linux联盟 RunForever2M4Linux联盟 2M4Linux联盟 Identity2M4Linux联盟 2M4Linux联盟 Password2M4Linux联盟 2M4Linux联盟 Activation2M4Linux联盟 2M4Linux联盟 Changeable2M4Linux联盟 2M4Linux联盟 Deleteable2M4Linux联盟 2M4Linux联盟 CreatedBy2M4Linux联盟 2M4Linux联盟 AccessChecksLevel2M4Linux联盟 2M4Linux联盟 ApplicationAccessChecksEnabled2M4Linux联盟 2M4Linux联盟 CommandLine2M4Linux联盟 2M4Linux联盟 ImpersonationLevel2M4Linux联盟 2M4Linux联盟 CRMEnabled2M4Linux联盟 2M4Linux联盟 AuthenticationCapability2M4Linux联盟 2M4Linux联盟 3GigSupportEnabled2M4Linux联盟 2M4Linux联盟 QueuingEnabled2M4Linux联盟 2M4Linux联盟 QueueListenerEnabled2M4Linux联盟 2M4Linux联盟 EventsEnabled2M4Linux联盟 2M4Linux联盟 ApplicationProxy2M4Linux联盟 2M4Linux联盟 ApplicationProxyServerName2M4Linux联盟 2M4Linux联盟 CRMLogFile2M4Linux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论 |
|
|
|
|
|