找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1259|回复: 17

[求助]:MicroStation的保护和宏

[复制链接]
发表于 2005-5-8 17:03:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
通过对dgn文件的保护(数字权利)以后,文件拥有了“编辑”,“输出”,“打印”等功能的权限控制。但是除非给用户加上“输出”的权利,否则就无法使用宏,也就不能运用自己程序编辑的一些宏命令以及自己制作的按钮操作。
我现在想只给用户拥有“浏览”或者“浏览”、“打印”的权限,但又可以运行我自己编写的程序,应该如何做呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-5-9 07:37:53 | 显示全部楼层
把你的宏命令转换成VBA,再对VBA进行数字签名就可以了。MicroStation旧的BASIC宏不支持数字签名。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-9 12:24:55 | 显示全部楼层
那再问一下,我在对VBA进行数字签名时,弹出对话框如下:
这是由于什么原因,是否要在证书颁发机构中的证书模板里选择其他的证书模板?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-9 13:18:44 | 显示全部楼层
生成证书的时候确认该证书可以用于签名用途,例如使用VS中的makecert工具。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-9 16:27:01 | 显示全部楼层
现在不弹出上面的对话框了,但是情况依旧,不能运行程序
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-9 16:31:15 | 显示全部楼层
在证书申请时有下面这几类的证书,应该选哪种呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-9 16:39:41 | 显示全部楼层
代码签署证书咯
此外DGN文件要对该代码签署证书也要授权,代码访问数据控制跟用户访问实际上类似。

所以程序执行的时候要检查自己对当前文件有怎样的权限,然后做相应的操作。
参见mdl例子:

  1.   [FONT=courier new]
  2. Private  int getRightsStatus
  3. (
  4. char    *fileName
  5. )
  6.     {
  7.     int     status;

  8.     if  (SUCCESS == (status = mdlDgnFileObj_checkRights (mdlModelRef_getDgnFile (MASTERFILE),DGNFILE_RIGHT_Export,MESSAGE_DEST_WarningDialog )))
  9.         {
  10.         DgnModelRefP    modelRef;

  11.         status = mdlWorkDgn_openFile (&modelRef,NULL,NULL,fileName,NULL,TRUE);
  12.         if  (SUCCESS == status)
  13.             {
  14.             status = mdlDgnFileObj_checkRights (mdlModelRef_getDgnFile(modelRef),DGNFILE_RIGHT_Edit ,MESSAGE_DEST_WarningDialog );
  15.             mdlWorkDgn_closeFile (modelRef);
  16.             }
  17.         }
  18.     return status;
  19.     }
  20.   [/FONT]
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-9 16:54:18 | 显示全部楼层
你的意思是要在程序中说明?能举一个VBA的例子吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-9 17:31:44 | 显示全部楼层
你误解我的意思了。你的程序的行为就跟一个用户一样,DGN文件的作者给你用于签署代码的证书授权(可以有很多权限组合),而这个程序必须知道它对于每个不同的DGN文件拥有哪些权限,然后做不同的事情,比如如果对于文件A,它的证书只授予察看的权限,如果要打印文件内容,它就应该提示用户一个警告信息,如果对于文件B,它的证书授予了打印权限,它就应该正常执行打印代码。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-10 10:23:13 | 显示全部楼层
OK,我懂你的意思了。现在比如说我只授予察看的权限,编写程序要求有弹出对话框和参考文件的功能(这些功能权限并没有限制),但是我无法打开VBA编写程序,提示:不允许操作,因为打开了受限制的设计文件。我点击用程序编写的弹出对话框的按钮,提示:VBA界面错误,无法运行宏。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-10 11:00:18 | 显示全部楼层
发现出现上面的原因是dgn文件打开时因为没有加载程序,当设定自动加载程序以后出现如下图,如何解决,谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-10 12:54:57 | 显示全部楼层
先在未设置保护的情况下编写你的程序,完成后再对该程序签名,然后部署你的应用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-10 15:14:52 | 显示全部楼层
“完成后再对该程序签名”,是不是就这样啊,可是还不行啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-10 15:14:52 | 显示全部楼层
就按上面的签名保护不行,弹出此对话框就依旧可以打开了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-10 16:38:54 | 显示全部楼层
你的程序不会是在....\default.mvba里吧?
我认为这个警告是针对其他缺省加载但是没有签名的程序的,而且警告说得很清楚,请大声朗读第二段三遍。 :)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-17 16:48 , Processed in 0.408420 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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