明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: tengte

[求助]关于通过注册表自动加载FAS文件的 奇怪问题(已解决)

    [复制链接]
 楼主| 发表于 2011-10-18 02:36:39 | 显示全部楼层
xiaoyingzi 发表于 2011-10-15 09:07
tengte 你好,你的代码不能加载所有acad版本和所有配置Profiles下,我想应该要遍历注册表才行,不过不知怎么 ...

好的,这两天有些忙,不过我会抽时间看一下的!
 楼主| 发表于 2011-10-22 04:14:33 | 显示全部楼层
本帖最后由 tengte 于 2011-10-26 15:25 编辑
tengte 发表于 2011-10-18 02:36
好的,这两天有些忙,不过我会抽时间看一下的!


通过注册表自动加载FAS文件到AutoCAD所有版本的VBS程序已修改完成。我试了一下,应该可以满足你的要求,不过我测试的情况不是很充分,你先试一试,若有问题,再告诉我进行修正。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

不懂,拿来主义了!谢谢  发表于 2012-4-30 22:10

评分

参与人数 2明经币 +2 收起 理由
muwind + 1 很给力!
飞诗(fsxm) + 1 很给力!

查看全部评分

发表于 2011-11-2 22:32:38 | 显示全部楼层
xiaoyingzi 发表于 2011-10-15 09:07
tengte 你好,你的代码不能加载所有acad版本和所有配置Profiles下,我想应该要遍历注册表才行,不过不知怎么 ...

你看看我这个,稍做修改,应该可以用.你的一篇文章对我也有很大启发,谢谢.互相交流与合作,很好.呵呵.
http://bbs.mjtd.com/thread-90146-1-1.html
发表于 2011-11-2 22:35:26 | 显示全部楼层
不好意思,原来已经有了.撞码了
发表于 2012-6-4 14:42:40 | 显示全部楼层
本帖最后由 xgr 于 2012-6-4 14:49 编辑
xshrimp 发表于 2009-6-30 20:36
为了保证你的程序能加载,还需要通知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;
红色的字体不知道要怎么写!
发表于 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就永远不会被加载了。

评分

参与人数 1明经币 +1 收起 理由
xgr + 1 谢谢了,我的问题找到了

查看全部评分

发表于 2012-6-4 16:51:08 | 显示全部楼层
我还有一个问题,就是怎样在注册表里加载自已的自定义配置。
发表于 2012-6-4 18:10:36 来自手机 | 显示全部楼层
向前辈们学习。
发表于 2013-10-31 20:53:02 | 显示全部楼层
tengte 发表于 2011-10-22 04:14
通过注册表自动加载FAS文件到AutoCAD所有版本的VBS程序已修改完成。我试了一下,应该可以满足你的要求, ...

你好,给你反馈一个bug,就是当添加成功后,在手动删除已添加的启动组的文件,此时要是在运行vbs文件就会出现如下错误,另外,若楼主方便的话,是否能将移除所有cad及配置的vbs也发布,这样功能就完整了,虽然不知道你是否能看到,不过还是非常感谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2013-10-31 23:41:47 | 显示全部楼层
这里有一个移除所有cad及配置的vbs,不过不是针对TBTOOLS的,要稍作修改才行。http://bbs.mjtd.com/forum.php?mod=viewthread&tid=78256
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-27 10:47 , Processed in 0.167506 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表