用程序设置COM+应用程序的属性。

原创 2003年05月08日 12:07:00
 

用程序设置COM+应用程序的属性。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

今天从别人机器上导出了个代理程序,注册在自己的机器上,在组件服务里查看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

win7组件服务COM+应用程序编录错误解决办法

win7组件服务COM+应用程序编录错误解决办法   一般情况下,我们遇到过的COM+应用程序编录错误共有两个:(1)第一个是打开COM+应用程序时出现“编录错误,执行最后操作发生错误,...
  • mfkpie
  • mfkpie
  • 2015年03月04日 22:21
  • 1422

com 与com+加是有什么区别

COM的产生         在以前程序设计过程中,程序员把它们的函数库放在一个叫做目标(Object)文件的单独文件中,在这些文件中,包含了编译过的代码。当程序员要使用一个特别的目标文件的时...
  • guomei
  • guomei
  • 2007年06月23日 17:13
  • 620

vs设置应用程序图标

我不是画家,但撷取美的瞬间是我的心愿;我不是作家,但记录心灵的感悟,是我的习惯... 废话先说到这里,我得赶紧记录下我学习的点点滴滴了,即怕自己不争气的记性遗忘,也能为将来的温故知新留下线索。 高级W...
  • lunweiwangxi3
  • lunweiwangxi3
  • 2015年02月28日 15:26
  • 2055

COM+在Windows 2003上的部署和调用

     使用COM+开发的软件,从XP转移到2003时出现了问题,客户端无论如何都访问不到安装在Windows 2003上的COM+服务。经过测试,找到了问题的原因,下面是对相关设置的描述和测试的经...
  • JasonDotWong
  • JasonDotWong
  • 2007年01月23日 15:29
  • 1887

用程序删除已注册的COM+应用程序

使用COM接口1. 找到接口描述文件COMAdmin_TLB.pas还是用了个笨办法,新建一个ActiveX Library,再新建一个COM Object,随便起个名字吧。保存。然后选菜单View-...
  • eastliangliang
  • eastliangliang
  • 2003年04月02日 08:58
  • 708

VS2015软件设置

一、VC++和C++的区别 VC,全称是Visual C++,它只是一个工具而已。 C++是一门和C、Basic、C#、Java一个概念的东西,它是一门语言。 二、常见配置 工具—选项—文本编辑器—所...
  • mzpmzk
  • mzpmzk
  • 2016年09月11日 10:05
  • 2398

windows server 2008 r2 COM+配置

1 服务器角色,增加“应用程序服务器”。 2 组件服务-计算机-我的电脑-属性-默认属性页的默认身份验证级别是“连接”,默认模拟级别是“标识” 3 COM安全页-访...
  • yz304zhang
  • yz304zhang
  • 2017年02月14日 11:13
  • 751

应用程序配置文件及数据保存

作为一个应用程序,配置文件或许是最好的数据保存方式。 共享内存的方式也可以较好保存数据(能做到就算应用程序退出,此块内存的数据任然保持原样,以便程序再次启动,可以恢复到退出时的状态),但是有一个缺陷就...
  • lx627776548
  • lx627776548
  • 2016年07月21日 11:07
  • 583

通过启动项设置实现应用程序自启动功能

上一篇通过WinForm+C#代码实现控制应用程序自启动功能,这篇讲下在不用代码情况下是如何利用电脑启动项来设置开机自启动。 我这里主要通过截图展示如何添加QQ自启动实现,当然我这里只是举例说明,其...
  • fuyifang
  • fuyifang
  • 2015年06月18日 22:22
  • 1718

COM编程入门(第一部分 什么是COM,如何使用COM)

COM编程入门 第一部分 ...
  • jiangxinyu
  • jiangxinyu
  • 2006年11月14日 14:31
  • 1505
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用程序设置COM+应用程序的属性。
举报原因:
原因补充:

(最多只允许输入30个字)