首页 新闻 会员 周边

com组件 已服务形式注册 其他程序无法通过GetActiveObject来获取这个组件?

0
悬赏园豆:15 [待解决问题]

如题~~

程序A(注册成SYSTEM服务)

function RegisterActiveObject(unk: IUnknown; const clsid: TCLSID;
  dwFlags: Longint; out dwRegister: Longint): HResult; stdcall;
在服务中调用此方法 

程序B

GetActiveObject失败  

可能原因是 系统用户角色不同 服务是SYSTEM角色 
程序B 是Administrator角色

求解决方法~~

梦の华丽的主页 梦の华丽 | 初学一级 | 园豆:172
提问于:2012-07-05 13:48
< >
分享
所有回答(1)
0

更改启动服务的角色,或由调用方模拟SYSTEM角色调用组件。

Launcher | 园豆:45045 (高人七级) | 2012-07-05 14:44

怎么模拟啊 我现在是ie来调用的

支持(0) 反对(0) 梦の华丽 | 园豆:172 (初学一级) | 2012-07-05 15:11

@梦の华丽: 

IE只能调用嵌入在页面中的ActiveX控件,不允许访问本地的其它COM组件。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2012-07-05 16:57

@程序猿.码农: 我是通过ie调用ocx 在用ocx来GetActiveObject 获得这个com组件的

支持(0) 反对(0) 梦の华丽 | 园豆:172 (初学一级) | 2012-07-05 17:39

@梦の华丽: 宿主在IE进程中的应用程序都受到特别的安全限制,以避免通过网页发布不安全的脚本来破坏用户的系统。你的程序A,可以在控制面板=〉服务=〉中修改登录属性来指定启动服务的帐号。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2012-07-05 17:51

@程序猿.码农: 修改登录属性后启动不了服务,而且我的程序a 已服务运行 一般都是system服务拉

支持(0) 反对(0) 梦の华丽 | 园豆:172 (初学一级) | 2012-07-06 10:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册