tengte
发表于 2011-10-18 02:36:39
xiaoyingzi 发表于 2011-10-15 09:07 static/image/common/back.gif
tengte 你好,你的代码不能加载所有acad版本和所有配置Profiles下,我想应该要遍历注册表才行,不过不知怎么 ...
好的,这两天有些忙,不过我会抽时间看一下的!
tengte
发表于 2011-10-22 04:14:33
本帖最后由 tengte 于 2011-10-26 15:25 编辑
tengte 发表于 2011-10-18 02:36 http://bbs.mjtd.com/static/image/common/back.gif
好的,这两天有些忙,不过我会抽时间看一下的!
通过注册表自动加载FAS文件到AutoCAD所有版本的VBS程序已修改完成。我试了一下,应该可以满足你的要求,不过我测试的情况不是很充分,你先试一试,若有问题,再告诉我进行修正。
VBALISPER
发表于 2011-11-2 22:32:38
xiaoyingzi 发表于 2011-10-15 09:07 static/image/common/back.gif
tengte 你好,你的代码不能加载所有acad版本和所有配置Profiles下,我想应该要遍历注册表才行,不过不知怎么 ...
你看看我这个,稍做修改,应该可以用.你的一篇文章对我也有很大启发,谢谢.互相交流与合作,很好.呵呵.
http://bbs.mjtd.com/thread-90146-1-1.html
VBALISPER
发表于 2011-11-2 22:35:26
不好意思,原来已经有了.撞码了
xgr
发表于 2012-6-4 14:42:40
本帖最后由 xgr 于 2012-6-4 14:49 编辑
xshrimp 发表于 2009-6-30 20:36 http://bbs.mjtd.com/static/image/common/back.gif
为了保证你的程序能加载,还需要通知AutoCAD启动时加载Appload模块。在安装程序中读取注册表 'HKEY_LOCAL_M ...
我的情况也是这样的,注册表里都显示已经写进去了,就差你说的问题,在CAD的启动组里就是没有显示加载的程序,我是用INNOSETUP写的安装打包程序,就是这个BOOLEAN运算在INNO里不知道怎么写,求你能够给我纤细写一下吗?
if (Chk2.Checked) then
begin
RegWriteStringValue(HKEY_CURRENT_USER,'Software\Autodesk\AutoCAD\R16.2\ACAD-4001:804\Profiles\<<未命名配置>>\Dialogs\Appload\Startup','1Startup', 'C:\Program Files\xggj\system\loadxggj.LSP');
RegWriteStringValue(HKEY_CURRENT_USER,'Software\Autodesk\AutoCAD\R16.2\ACAD-4001:804\Profiles\<<未命名配置>>\Dialogs\Appload\Startup','NumStartup', '1');
RegWriteStringValue(HKEY_CURRENT_USER,'Software\Autodesk\AutoCAD\R16.2\ACAD-4001:804\Applications\AcadAppload','LOADCTRLS', '????');
end;
红色的字体不知道要怎么写!
xshrimp
发表于 2012-6-4 15:03:21
0x01:Load the application upon detection of proxy object.
当代理对像被控知时另载相应ARX程序.
0x02:Load the application upon AutoCAD startup.
当AutoCAD启动时加载相应ARX程序.
0x04:Load the application upon invocation of a command.
当输入命令时加载相应ARX程序.
0x08:Load the application upon request by the user or another application.
当有用户或别的程序请求时加载相应ARX程序.
0x10:Do not load the application.
从不加载该应用程序.
0x20:Load the application transparently.
显式加载该应该程序.(不知该项译法是否有误)
这无疑对解决我的问题提供了一把最有效的钥匙。
也许你会问:注册表中的LOADCTRLS并不总是(其实可以说是很少)等于上面的几个值,这又作何解释呢?
其实懂编程的都知道是怎么回事,不懂的我就试着替你解释解释:
如果一个ARX只有上面列出的一种加载方式,那它的LOADCTRLS肯定会等于上面的其中一个值,
如果加载方式不止一种,那就把各种加载方式对应的值相加,如既可以当从命令行输入时加载,
又可以从另一个应用程序中加载,那它的LOADCTRLS值就是0x04+0x08=0x0c(十进制的12),这样应该明白了吧?
看一个ARX被设置成哪几种启动方式,就看ARX的LOADCTRLS值是上面哪几个值相加得来的,上面所列的值一个只能用一次。
但是无论如何,一个ARX的LOADCTRLS值不会等于0x11(17d)、0x12((18d))、0x13(19d)、0x14(20d)、0x17(23d)、0x18(24d)。
因为0x10是从不加载,瞧,多可爱呀!只要它的LOADCTRLS值等于0x10(十进制的16),这个ARX就永远不会被加载了。
xgr
发表于 2012-6-4 16:51:08
我还有一个问题,就是怎样在注册表里加载自已的自定义配置。
smartstar
发表于 2012-6-4 18:10:36
向前辈们学习。
illcyt
发表于 2013-10-31 20:53:02
tengte 发表于 2011-10-22 04:14 static/image/common/back.gif
通过注册表自动加载FAS文件到AutoCAD所有版本的VBS程序已修改完成。我试了一下,应该可以满足你的要求, ...
你好,给你反馈一个bug,就是当添加成功后,在手动删除已添加的启动组的文件,此时要是在运行vbs文件就会出现如下错误,另外,若楼主方便的话,是否能将移除所有cad及配置的vbs也发布,这样功能就完整了,虽然不知道你是否能看到,不过还是非常感谢!
tengte
发表于 2013-10-31 23:41:47
这里有一个移除所有cad及配置的vbs,不过不是针对TBTOOLS的,要稍作修改才行。http://bbs.mjtd.com/forum.php?mod=viewthread&tid=78256