ROBBO 发表于 2014-10-1 13:46:49

启动、更新和重新加载时禁用插件

**** Hidden Message *****

ROBBO 发表于 2014-10-1 13:57:09

谢谢你的链接杰夫。不确定我是否遵循代码片段,但会尝试和消化。所有最好的罗布泊。

cadtag 发表于 2014-10-1 14:15:22


这完全取决于在 ComponentEntry XmlNodes 中加载的 ModuleName XmlAttribute 的值的性质。
FWIW - 对于那些试图在内部使用自动加载器的人来说,您遇到的问题并不少见,您只能为非只读的组件推送更新,无论您何时“推送”。
在会话启动时,自动加载程序机制会在启动序列中加载任何 Acad* 文件之前创建必要的注册表项,修改 SFSP,甚至加载已编译的程序集(.DLL无法卸载)...不过,LISP ComponentEntries仍然在AcadDoc.lsp之后加载。对于前者,您需要一种机制来评估是否存在较新的组件,如果能够重新加载,则需要这样做(例如ARX,CUIx等)。如果没有,则提示重新启动会话,或者如果依赖 NETLOGON 等来“推送”,则提示用户注销/打开。
有很多方法可以通知用户更新,可以包含在您的原始应用程序中,例如气泡,通知中心,警报(上帝禁止一千次!),任务对话框等...选择您认为最好的一个,以及您可以轻松使用的东西。
遗憾的是,到目前为止,Autoloader在非本地组件上的表现并不好(这是我多年来对Autodesk的要求)......你必须自己滚动。
一线希望是,Autodesk决心支持和增强Autoloader,特别是考虑到它在交付[第三方]Exchange应用程序方面对它造成了自我依赖。正如上面提到的2015 +的新自动加载器功能所证明的那样。
干杯

BlackBox 发表于 2014-10-1 15:18:53


谢谢分享,杰夫;看起来很有趣。

BlackBox 发表于 2014-10-1 16:36:32

感谢BB的回复。
警报似乎是最简单的方法。
根据Jeff的描述,这似乎是一个理想的解决方案。我得好好想想。Robbo,祝你一切顺利。

ROBBO 发表于 2014-10-1 16:49:23

采取了一个相当简单的方法。添加了一个例程来启动lisp,将一个批处理文件的快捷方式复制到用户桌面来更新包。当bundle更新时,我在启动时设置了一个警告来通知用户更新。只需退出autocad并运行批处理文件。

ROBBO 发表于 2014-10-2 03:49:50

如果您想变得更有趣一点,您可以让BAT文件删除调用它的桌面快捷方式。如果你想多疑一点,你可以把相关的桌面AutoCAD快捷方式推到一个不碍事的文件夹,让更新蝙蝠在运行后把它们移回来。

dgorsman 发表于 2014-10-5 13:32:49

PowerShell也可能提供做很多事情的能力,而实际代码很少......并且可以为用户提供“单击”更新的错觉。例如,无论您选择如何提示用户更新...现在,或者允许在严格的截止日期之前延迟更新...当用户选择气泡链接、对话框按钮等时,结果调用一个 PowerShell 脚本,该脚本使用 Get-Process 和 Stop-Process cmdlets:Get-Process Myprogram |Foreach-Object { $_.关闭主窗口() |空值 } |停止-过程-强制。
...使用 Get-ChildItem 和/或 Copy-Item cmdlet 执行所需的任何/所有更新(在小型等待事件之后?):Copy-Item \\ServerName\ShareName\YourAdminAppFolder -Destination $env:APPDATA\Autodesk\ApplicationPlugins\YourUserAppFolder -Recurse。
...然后使用 Invoke-Item 重新启动应用程序以启动桌面快捷方式:Invoke-Item $env:USERPROFILE\Desktop\YourUpdatedAppShortcut.lnk。
干杯。

BlackBox 发表于 2014-10-6 10:22:17


哇 - 此刻,这已经直接越过了我的头顶。
你是个多么聪明的家伙!

ROBBO 发表于 2014-10-6 11:39:21


我并不是想增加复杂性,而是试图提供一些可以简化(和加快)任务的东西。
诚然,我长期以来一直忽略了PowerShell,但考虑到我的新工作,我负责管理我们的整个环境(物理和虚拟服务器,Exchange [内部],Office 365,Autodesk产品等),我很快就开始欣赏我可以使用PowerShell所做的一切...我在Exchange和Office 365上的一些任务需要PowerShell,因为UI从一开始就只是一个有限的PowerShell界面。
举个简单的例子(不相关),上周我打算在城外呆一天,背靠背参加AutoCAD 2014和Civil 3D 2014专业认证考试,并且需要设置一个同事,以便能够安全地关闭服务器等,如果我作为手机缺席,会出现任何问题, 等在考试期间是不允许的(它在我的车里)...否则,我可以通过iPhone上的RDP自己完成...关键是,在几分钟内,我设置了一个PowerShell脚本,该脚本使任务实质上是使用停止计算机cmdlet(+/- 3秒)的双击操作,而不必手动关闭每台物理机(每台物理机位于办公室内的不同位置;他不擅长RDP,但这种方法甚至比RDP更快)。
无论如何,如果你选择组装一个工作版本,我想你会对结果非常满意。
干杯
页: [1] 2
查看完整版本: 启动、更新和重新加载时禁用插件