社区
COM/DCOM/COM+
帖子详情
vb中getobject只能获取同名进程多开时的第一个进程对象的难题
jygrx
2012-04-09 07:33:59
如题,同一程序多开时,getobject只能获取第一个com对象模型,如何获取第二个?知道进程句柄什么的也不行吗?
请教高手
...全文
2514
15
打赏
收藏
vb中getobject只能获取同名进程多开时的第一个进程对象的难题
如题,同一程序多开时,getobject只能获取第一个com对象模型,如何获取第二个?知道进程句柄什么的也不行吗? 请教高手
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zloveyour
2014-11-29
打赏
举报
回复
C# 也遇到同样问题,COM 组件不是 EXCEL 或 WORD,进程有多个,只能获取到第一个进程的 COM Z组件 OBJECT。
不知道楼主有没有解决?
worldy
2012-12-10
打赏
举报
回复
如果没有指定第一个参数,返回的一个新创建的对象
worldy
2012-12-10
打赏
举报
回复
GetObject(aFileName,"Word.Application") 重要的是第一个参数,不是第二个
scchenlin
2012-12-10
打赏
举报
回复
楼上的,可否说详细些
神马都能聊
2012-06-01
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
第一个实例作为主管;
其他实例通过 GetObject() 取得第一个实例,然后将自己的信息记录在第一实例中;这样就可以通过第一实例获取其他实例的信息了。
[/Quote]
顶,Office就是这样做的。
三断笛
2012-05-31
打赏
举报
回复
应该可以的.
比如说用webbrowser的句柄可以获得webbrowser的各个对象.
可以试试以下方法
1.用MSAA技术
2.使用shell对象
3.使用汇编,在一些自定义浏览器的代码里有这种方式,这点可以请教一下超级绿豆,据说他擅长.
4.使用olelib,IOleContainer,Iolewindow,iolecontrol这些接口或许能获得那个对象.
百度一下"hWnd获得IWebBrowser接口"能获得相关信息.
推荐页面:
http://www.cnblogs.com/xxaxx/archive/2009/12/29/1635333.html
http://blog.csdn.net/skyremember/article/details/3432544
xsh2003
2012-05-31
打赏
举报
回复
同样的问题一直没有解决。
changechange
2012-04-25
打赏
举报
回复
这个问题应该N多人问过了,没办法指定获取第几个实例的。
Tiger_Zhao
2012-04-12
打赏
举报
回复
把你的对象模型和需求描述一下。
通常用 GetObject() 就是看中总返回同一个实例的特性。
bcrun
2012-04-11
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
第一个实例作为主管;
其他实例通过 GetObject() 取得第一个实例,然后将自己的信息记录在第一实例中;这样就可以通过第一实例获取其他实例的信息了。
[/Quote]
说实话没看明白你的意思,能用代码说明一下吗?
jygrx
2012-04-10
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
第一个实例作为主管;
其他实例通过 GetObject() 取得第一个实例,然后将自己的信息记录在第一实例中;这样就可以通过第一实例获取其他实例的信息了。
[/Quote]
这种方法能操作其它实例吗?我最根本的需要是获得第二个实例application对象啊,与getobject获得的对象类型一致,这样application的自带操作的命令才是全部通了的。
Tiger_Zhao
2012-04-10
打赏
举报
回复
第一个实例作为主管;
其他实例通过 GetObject() 取得第一个实例,然后将自己的信息记录在第一实例中;这样就可以通过第一实例获取其他实例的信息了。
jygrx
2012-04-10
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
是不是GetObject(,"Word.Application")?
[/Quote]
感谢关注!是这类问题,可是不是WORD,EXCEL什么的,是其它行业软件。我了解excel一类的软件可以先获取
sheet对象,才向上得到application的。这个思路在这儿不通吧。
所以从进程的角度来看,有没有通过进程句柄得到appliation的呢?盼用过的高手指教
bcrun
2012-04-09
打赏
举报
回复
是不是GetObject(,"Word.Application")?
贝隆
2012-04-09
打赏
举报
回复
上代码看看
VB
获取
某个
进程
的路径代码。
Private Sub Command1_Click()Dim ps, ss = InputBox("请输入
进程
名称:", "提示", "notepad.exe")If s = "" Then Exit SubFor Each ps In Get
Object
("winmgmts://./root/cimv2:win32_process").instances_ 循环
进程
If UCase(ps.N
VB
6 Get
object
(,“excel.application“) 错误429 ActiveX 部件无法创建
对象
VB
6 IDE
中
调试的时候发现 Get
object
(,“excel.application”) 的使用时总是无法
获取
打开着的EXCEL
对象
报错情况: err.description ActiveX 部件无法创建
对象
err.number 429 可疑惑是IDE生成的EXE文件是可以正常运行的 这时我头大了, 最害怕的是微软通过某些补丁把这个ActiveX部件创建
对象
功能去掉了. 那以后怎么搞生产力软件? 这个可是交通大道哦! 但又试了下Create
object
(“excel.application”)
vb
获得所有
进程
Private Sub Command1_Click() Set objWMIService = Get
Object
("winmgmts:\\.\root\cimv2") Set ps = objWMIService.ExecQuery("select * from Win32_Process") s = " PID
进程
名" For Each p In
VB
判断
进程
是否存在
Private Sub Command1_Click() If CheckExeIsRun("T5CAPP.exe") Then MsgBox "存在" Else MsgBox "不存在" End If End Sub '检查
进程
是否运行,exeName 参数是要检查的
进程
exe 名字,比如
VB
6.EXE Private Function CheckExeIsRun(exeNa
VB
-检测指定的
进程
是否存在
'检测指定的
进程
是否存在On Error Resume NextDim s As String, mFind As BooleanDim objWMIService, colProcessList, objProcesss = "cmd.exe"Set objWMIService = Get
Object
("winmgmts:{impersonationLevel=impersonate}!\\.\
COM/DCOM/COM+
863
社区成员
3,659
社区内容
发帖
与我相关
我的任务
COM/DCOM/COM+
VB COM/DCOM/COM+
复制链接
扫一扫
分享
社区描述
VB COM/DCOM/COM+
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章