应用-vb中用代码如何将com+组件卸载?

问题描述

vb中用代码如何将com+组件卸载?

'函数名称:DeleteComponent'作用:删除对应com+应用中的组件'参数:sFolder COM+目录,sFileName组件名Public Function DeleteComponent(sComFolder As String, sFileName As String) As Boolean Dim oo As Object Dim oKey As Variant Dim oComponents As Object Dim i As Integer On Error GoTo Errd oCatcol.Populate For Each oo In oCatcol If oo.name = sComFolder Then oKey = oo.Key End If Next Set oComponents = oCatcol.GetCollection("Components", oKey) oComponents.Populate If oComponents.Count > 0 Then i = 0 For Each oo In oComponents If oo.name = sFileName Then oComponents.Remove i oComponents.SaveChanges Exit For End If i = i + 1 Next End If DeleteComponent = True Exit FunctionErrd:End Function以上代码是卸载com+组件的,但是上面的sFileName 并不是dll的文件名,而是“工程名.类模块名”,我怎么才能根据dll名获得它的所有类模块名?比如说我有个编译好名为test.dll 的com+组件,本身没编译前的工程里有这三个类名clsInfo,clsUpdate,clsOther.如果是把组件手工拖到com+组件服务里面某个应用下的话就会这样展示:test.clsInfo,test.clsUpdate,test.clsOther,我想要的就是怎么才能获取这三个名称出来,用于以上的卸载

解决方案

在delphi可以这么写,你参考一下

//卸载COM+应用程序

function UnInstallCOMApplication:Boolean;stdcall;
const
SComApplicationName = '你的应用程序名';
var
COMAdminCatalog : OleVariant;
CatalogCollection : OleVariant;
i : Integer;
begin
try
COMAdminCatalog := CreateOleObject('COMAdmin.COMAdminCatalog');
CatalogCollection := COMAdminCatalog.GetCollection('Applications');
CatalogCollection.Populate;
for i := 0 to CatalogCollection.Count - 1 do
if CatalogCollection.Item[i].Name = SComApplicationName then
begin
CatalogCollection.Remove(i);
CatalogCollection.SaveChanges;
Break;
end;
Result := True;
except
Result := False;
end;
end;

解决方案二:

使用VB编写的组件注册与卸载程序

详细说明
使用VB编写的组件注册与组件卸载程序,只需点击程序中的控制按钮,即可一键实现控件的注册与卸载。程序运行“demo”文件夹中的工程,并需要注册DB_SqlSever.dll组件,打开工程文件,选择“工程”/“引用”命令,选择组件位置。

下载地址:http://code.it168.com/d-12385.shtml

解决方案三:

请问你这个名称SComApplicationName是组件的名称么?还是具体的“组件.类模块名”?

解决方案四:

我要卸载某个应用里面的组件,不是整个应用都卸掉,卸掉应用我知道写法

解决方案五:

'函数名称:DeleteComponent
'作用:删除对应com+应用中的组件
'参数:sFolder COM+目录,sFileName组件名.类模块名
Public Function DeleteComponent(sComFolder As String, sFileName As String) As Boolean
Dim oo As Object
Dim oKey As Variant
Dim oComponents As Object
Dim i As Integer
On Error GoTo Errd
oCatcol.Populate
For Each oo In oCatcol
If oo.name = sComFolder Then
oKey = oo.Key
End If
Next
Set oComponents = oCatcol.GetCollection("Components", oKey)
oComponents.Populate
If oComponents.Count > 0 Then
i = 0
For Each oo In oComponents
If oo.name = sFileName Then
oComponents.Remove i
oComponents.SaveChanges
Exit For
End If
i = i + 1
Next
End If
DeleteComponent = True
Exit Function
Errd:
End Function
我的代码是这样的,sFileName是“组件名.类模块名”来的,我不知道怎么才能根据dll文件去获取到它的所有类模块名称

解决方案六:

Somebody help?

时间: 2024-09-22 19:25:02

应用-vb中用代码如何将com+组件卸载?的相关文章

ReactiveCocoa代码实践之-UI组件的RAC信号操作_Android

相关阅读: ReactiveCocoa代码实践之-更多思考 ReactiveCocoa代码实践之-RAC网络请求重构这一节是自己对网络层的一些重构,本节是自己一些代码小实践做出的一些demo程序,基本涵盖大多数UI控件操作. 一.用UISlider实现调色板 假设我们现在做一个demo,上面有一个View用来展示颜色,下面有三个UISlider滑竿分别控制RGB的色值,随着不同滑竿的拖动上面view的颜色会随之改变. 可以先脑补一下不用RAC该怎么写. 如果使用RAC只需要将三个信号包装起来用适

ReactiveCocoa代码实践之-UI组件的RAC信号操作

相关阅读: ReactiveCocoa代码实践之-更多思考 ReactiveCocoa代码实践之-RAC网络请求重构这一节是自己对网络层的一些重构,本节是自己一些代码小实践做出的一些demo程序,基本涵盖大多数UI控件操作. 一.用UISlider实现调色板 假设我们现在做一个demo,上面有一个View用来展示颜色,下面有三个UISlider滑竿分别控制RGB的色值,随着不同滑竿的拖动上面view的颜色会随之改变. 可以先脑补一下不用RAC该怎么写. 如果使用RAC只需要将三个信号包装起来用适

公司软件部VB组代码撰写暂行约定 probezy(转贴)

公司软件部VB组代码撰写暂行约定    probezy(转贴)   出处     http://www.vbprobe.com    一.变量和对象     程序中的变量遵循匈牙利表示法,即"前缀+变量含义",变量的含义为一个或多个英文单词,每个单词的第一个字母大写,不要用汉语拼音代替.变量前缀为三个小写字母示意其类型,所需添加的前缀遵循微软在MSDN中的建议.列表如下:     基本数据类型 变量类型  前缀  示例 Boolean  bln  blnFound Byte  byt 

使用Web服务将C#代码转换为VB.NET代码

web|web服务|转换 Internet正在飞速的发展,将来的Web站点不会象今天这样单调,而是可以将它直接与企业.应用程序或设备相连接.这样的站点也摆脱了简单的被动访问而成为可重用智能服务. 本文将说明如何使用www.kamalpatel.net提供的Web服务支持将C#代码转换成VB.NET格式的代码.由于在此文中讲到的内容使用到了Web服务,所以需先添加Web服务引用.在IE里输入如下地址"http://www.kamalpatel.net/convertcsharp2vbservice

写代码-怎么实现整个组件内容居中 而不是在页面左边

问题描述 怎么实现整个组件内容居中 而不是在页面左边 怎么实现整个组件内容居中 而不是在页面左边 解决方案 <div style='height:500px;width:500px;line-height:105px;overflow:hidden;border:1px solid #FF0099;text-align:center;display:table-cell;vertical-align:middle;'> 中间是你登录的内容区域 </div> 解决方案二: 为你想要居

ARC中用代码检测一个对象有没有释放掉

ARC中用代码检测一个对象有没有释放掉 你试过在ARC中用代码检测对象有没有释放掉这种事情呢?即使你想过肯定也不知道怎么去实现,因为,这里会用到一个你基本上没怎么接触过的类:NSHashTable. 我们以检测导航控制器push出一个新的控制器为例,以下是效果: 所有你需要的源码: ObjectDetector.h + ObjectDetector.m // // ObjectDetector.h // ARCBlock // // Copyright (c) 2014年 Y.X. All ri

C#中用代码控制命令来备份mysql的数据,可是备份不了,怎么回事??

问题描述 C#中用代码控制命令来备份mysql的数据,可是备份不了,怎么回事?? 方法1:Process.Start(""cmd.exe""/c mysqldump -hlocalhost -P3306 -uroot –p12111 samp_db1 > E:cs.sql"");方法2:ProcessStartInfo psi = new ProcessStartInfo();psi.FileName = ""cmd.e

C#与VB.NET代码自动转换插件(For Visual Studio)

问题描述 ivanx著于2007-11-2918:56:13附件中的源代码包括一个VisualStudio的插件项目.这个插件可以在tools菜单中添加一个按钮,用于转换Vb.net代码到C#,或者C#到VB.NET.附件里还包括了一个这个插件add-in的安装项目. 解决方案 解决方案二:MARK

关于C#转为VB.net代码如下

问题描述 关于C#转为VB.net代码如下:privateTimerTimer{get{if(_timer==null){_timer=newTimer(newTimerCallback(delegate(objectobj){TimeSpants=DateTime.Now-_lastReceiveTime;if(ts.TotalMilliseconds>ReceiveTimeout){_lastReceiveTime=DateTime.Now;OnReceiveFileTimeout(Even