我真的不同意让程序员有权决定你可以删除什么。你的就是你的。他们用Macromedia/Adobe Flash实现了这一点。它们使内容的创建者能够控制您是否可以停止播放媒体。尽管许多知名网站都使用该软件,但更多的网站利用了您在知名网站上安装该软件的事实,现在到处都是噪音和闪烁的废话劫持了您的箱子。这应该是非法的,我敢打赌,无论是对于使其不可删除的自定义对象的开发人员,还是对于创建最终用户无法控制的内容的内容创建者,这都可能是非法的。我真的不想在这个切线上走下去,但这个废话真的让我生气。在我上次购买InstallShield时,我注意到我不需要提供卸载程序!现在,软件公司给你这个选择可能是合法的,如果你在美国和许多其他国家销售软件,法律要求卸载程序,你就没有这个选择
我想知道欧文·温格德是否有清理这些东西的工具
编辑:他做了。三十美元。http://www.manusoft.com/Software/SuperPurge/index.stm数字! 欧文';s的实用程序在那幅画上做了工作。您必须选择硬清除,并特别选择要删除的内容。选择“全部”可以有效地删除所有内容,这是应该的。我打算给自己买一本。 我买下了欧文';这是很久以前的事了。它工作得很好……大部分情况下。有一些图形在使用后拒绝再次打开,因此请确保您首先拥有有效的备份。不,我没有向欧文报告这些问题,因为这些问题都在我真正没有的图纸上';我什么都不需要,所以我只是抄下我确实需要的东西,并称之为好。 是否有人试图使用VBA复制实体并将其保存在新图形中
然后另存为,用代理实体覆盖图形
这可能每次都管用
约翰 这是另一种尝试 ;它似乎适用于我的ADT对象
Sub main()
Dim sourceDoc As AcadDocument
Dim targetDoc As AcadDocument
Set sourceDoc = Application.ActiveDocument
Set targetDoc = Documents.Add
scanObjects sourceDoc, targetDoc
Application.ZoomExtents
Set targetDoc = Nothing
End Sub
Private Sub scanObjects(ByRef sourceDoc As AcadDocument, _
ByRef targetDoc As AcadDocument)
Dim block As AcadBlock
For Each block In sourceDoc.Blocks
If block.IsLayout Then
Dim index As Long
Dim objects() As AcadObject
index = -1
ReDim objects(0 To block.Count) As AcadObject
Dim ent As AcadEntity
For Each ent In block
If ent.ObjectName"AcDbZombieEntity" Then
If ent.HasExtensionDictionary Then
scanDictionary ent.GetExtensionDictionary
End If
index = index + 1
Set objects(index) = ent
End If
Next ent
Set ent = Nothing
If index > -1 Then
ReDim Preserve objects(index) As AcadObject
sourceDoc.CopyObjects objects, targetDoc.Blocks(block.Name)
End If
End If
Next block
Set block = Nothing
End Sub
Sub scanDictionary(ByRef dictionary As AcadDictionary)
Dim obj As AcadObject
For Each obj In dictionary
If TypeOf obj Is AcadDictionary Then
scanDictionary obj
ElseIf obj.ObjectName Like "AcDbZombie*" Then
obj.Delete
ElseIf obj.HasExtensionDictionary Then
scanDictionary obj.GetExtensionDictionary
End If
Next obj
Set obj = Nothing
End Sub
此代码将非代理对象复制到新图形 ;新图形将保持打开状态且未保存在编辑器中。
页:
1
[2]