我有一个写的cab包,在ie上点击时调用cab中的一个方法,在ROT中加入一个对象,不关ie可以用GetObject(,""thtf.myRot")可以得到 ROT中放的对象,可关了ie就得不到了,ROT的对象不是跨进程的吗?需要什参数Private Const ACTIVEOBJECT_STRONG = 0
Private Const ACTIVEOBJECT_WEAK = 1
Private Declare Function CLSIDFromProgID Lib "ole32.dll" (ByVal ProgID As Long, rclsid As GUIDs) As Long
Private Declare Function CoDisconnectObject Lib "ole32.dll" (ByVal pUnk As IUnknown, pvReserved As Long) As Long
Private Declare Function RegisterActiveObject Lib "oleaut32.dll" (ByVal pUnk As IUnknown, rclsid As GUIDs, ByVal dwFlags As Long, pdwRegister As Long) As Long
Private Declare Function RevokeActiveObject Lib "oleaut32.dll" (ByVal dwRegister As Long, ByVal pvReserved As Long) As LongPublic Sub runExcel(Optional path_ As String = "")
Dim myRot_
On Error GoTo l
Set myRot_ = GetObject(, "thtf.myRot")
GoTo l1l:
Set myRot_ = New myRot
Call addRot("thtf.myRot", myRot_)
l1:
'......
End SubPublic Sub addRot(strName As String, up)
Dim mGuid As GUIDs
Dim lp As Long
OLEInstance = 0 lp = CLSIDFromProgID(StrPtr(strName), mGuid)
If lp = 0 Then
lp = RegisterActiveObject(up, mGuid, ACTIVEOBJECT_WEAK, OLEInstance)
End If
End Sub
对象ROT
Private Const ACTIVEOBJECT_WEAK = 1
Private Declare Function CLSIDFromProgID Lib "ole32.dll" (ByVal ProgID As Long, rclsid As GUIDs) As Long
Private Declare Function CoDisconnectObject Lib "ole32.dll" (ByVal pUnk As IUnknown, pvReserved As Long) As Long
Private Declare Function RegisterActiveObject Lib "oleaut32.dll" (ByVal pUnk As IUnknown, rclsid As GUIDs, ByVal dwFlags As Long, pdwRegister As Long) As Long
Private Declare Function RevokeActiveObject Lib "oleaut32.dll" (ByVal dwRegister As Long, ByVal pvReserved As Long) As LongPublic Sub runExcel(Optional path_ As String = "")
Dim myRot_
On Error GoTo l
Set myRot_ = GetObject(, "thtf.myRot")
GoTo l1l:
Set myRot_ = New myRot
Call addRot("thtf.myRot", myRot_)
l1:
'......
End SubPublic Sub addRot(strName As String, up)
Dim mGuid As GUIDs
Dim lp As Long
OLEInstance = 0 lp = CLSIDFromProgID(StrPtr(strName), mGuid)
If lp = 0 Then
lp = RegisterActiveObject(up, mGuid, ACTIVEOBJECT_WEAK, OLEInstance)
End If
End Sub
对象ROT
解决方案 »
- 如何把一个.txt文件转换成16进制格式,象Uedit32.exe一样?
- vb程序错误
- VB combo1实现中文检索
- (高分求)如何向AD发出账号和密码以及身份认证请求,然后获取认证结果?
- 有那位高手知道怎么给文件夹加密或换脸???????????????????????????????????????????????????
- 关于ActiveX 控件不能安装的问题。
- 急求自动出卷系统源代码
- MSCOMM很急的问题?老板要开除我啦,急急急........
- 请教各位老师一个问题。我在学VB的时候,不能用ACCESS2000的数据库,而能用97的,我应该怎么办呢?谢谢。
- VB与多线程
- 能不能改成四级显示文件夹或n级显示文件
- 如何输出Frame1控件里的所有内容到EXCEL表格里
要在页面关闭之后继续使用对象的话,把对象移动到一个单独的进程里面去。
浏览器启动了一个Excel,要得到Excel进程的Application,现在是如果是起了多个Excel进程的话通过getObject(,"Excel.Appliction") 得到的不一定是我想用的那个Appcation,所以我想创建一个变量存放加载了插件的Application 让Excel和IE都能访问,看了些资料放在ROT中。那个对象其实在Excel进程中存在的,不知到怎么让IE访问