王咣生 发表于 2004-8-10 09:33:00

GetObject(, "AutoCAD.Application.16")的问题?

我同时打开几个AutoCAD 2004的窗体, 用VB调用


GetObject(, "AutoCAD.Application.16")时,怎么得到不同的AutoCAD实例,


我的问题是, 如何得到当前操作的AutoCAD应用程序对象?

莫名 发表于 2004-8-10 21:26:00

默认的就是当前操作的AutoCAD应用程序对象

王咣生 发表于 2004-8-11 14:14:00

回复

GetObject方法无法区分每一个AutoCAD应用程序实例,


用VB开发AutoCAD我感觉不方便.

雪山飞狐_lzh 发表于 2004-8-11 16:36:00

那就用VBA解决,VBA没有这种问题

lafare 发表于 2005-12-7 16:53:00

<P>我已经解决这个问题了,如果你会VC++的话,这很简单,如果你想用VB实现的话,代码看起来也不难,不过理解起来你可能会摸不着头的,给你个代码看看:</P>
<P>我可是抱着微软VB开发小组的Matthew Curland写的Advanced visual baisc 6英文版苦读半年的结果(结果我从英盲已经发展到可以过六级的地步了),当然下面的代码是不能运行的,要想运行就也读半年的书再说吧,这对你们有好处。看看MSDN也会对你有帮助的。</P>
<P>Private Sub Form_Load()<BR>&nbsp;&nbsp;&nbsp; Dim oROT As IRunningObjectTable<BR>&nbsp;&nbsp;&nbsp; Dim oEnmMk As IEnumMoniker<BR>&nbsp;&nbsp;&nbsp; Dim oMK As IMoniker<BR>&nbsp;&nbsp;&nbsp; Dim oBC As IBindCtx<BR>&nbsp;&nbsp;&nbsp; Dim lPtr As Long<BR>&nbsp;&nbsp;&nbsp; Dim sName As String<BR>&nbsp;&nbsp;&nbsp; Dim obj As Object<BR>&nbsp;&nbsp;&nbsp; Dim oCadApp As AcadApplication<BR>&nbsp;&nbsp;&nbsp; Dim j As AcadDocument<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; Set oROT = GetRunningObjectTable<BR>&nbsp;&nbsp;&nbsp; Set oBC = CreateBindCtx<BR>&nbsp;&nbsp;&nbsp; Set oEnmMk = oROT.EnumRunning<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; Do While oEnmMk.Next(1, oMK) = 0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set obj = oROT.GetObject(oMK)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If TypeOf obj Is AcadDocument Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set j = obj<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Debug.Print j.Name<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp; Loop<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; Set oROT = Nothing<BR>End Sub<BR></P>

MJTD_7777 发表于 2005-12-8 16:59:00

<P>直接用不行,即使引用了framework也不行。</P>
<P>&nbsp;</P>

lafare 发表于 2005-12-13 17:36:00

不用framework就可以了,我也没用过那东西

MJTD_7777 发表于 2005-12-13 22:11:00

<P>大侠,你终于出现了.</P>
<P>GetRunningObjectTable</P>
<P>好像是存在于 .net <EM>frame</EM>work 中的,但是我可以得到IRunningObjectTable,IEnumMoniker 缺无法从IEnumMoniker获取IMoniker<BR></P>
<P>你这个程序对我们很重要,能否赐教一下.<BR><BR></P>

NetBee 发表于 2011-4-30 22:45:37

VLAX类在2004中也出现这个问题了。

surveynet 发表于 2011-8-9 22:58:09

页: [1] 2
查看完整版本: GetObject(, "AutoCAD.Application.16")的问题?