在Excel文件中编一个程序,使Excel文件打开时有限制次数,超过后就打不开了,这个怎么做,请高手指教!

来源:百度知道 编辑:UC知道 时间:2024/06/04 12:22:19

这个做起来有点难,下面的方法可供参考
一、适用于保护程序,而不是保护数据:
a) 可以在每次程序启动前检测一个由excel VBA生成的文件,当然这个文件要加密一下。没有这个文件程序就停止执行,这个文件中记录启动次数,如果次数超过了设定,则也停止执行。这样做有一个问题,那就是别人可以将这个加密的文件拷出来,经常用老文件来替代新文件,则这个程序保护就失效。
b) 在a)条的基础上改进一下,那就是在第一次执行时,将加密文件自动备份到您设定的文件夹下,当然最后在每一个盘符下全做一个备份,这样可以增加别人破解的难度的。在以后每次启动时,全要检查密码文件和备份的密码文件是否记录内容相同,如果内容不同的话,则停止执行,多个备份则要求所有的文件内容全相同,如果相同则记录当然起动的次数到密码文件并将之再次备份到相应的文件夹下。
c) 生成一个隐藏的表格,将程序启动次数记录在隐藏表中,如果次数超过设定,则停止执行。
d) excel文件在执行时,生成可执行的excel文件,并设定这个文件在电脑重启时自动运行,在这个程序中记录相关内容。这样做有点和病毒差不多,可能会当病毒杀的。

二、保护文件内容:
这具要求比较难。因为别人可以不启动程序来打开excel文件。这样您所有的程序不能运行,所以保护无从谈起。以下所说是以别人允许程序运行的情况而谈。
a) 可以参见一、的要求,但在程序中增加一条程序。当程序次数达到设定时,可以将excel中的表格隐藏起来。这样别人一般就找不到您的内容的。
b) 参见a)条,但在每次退出前,将所有的表全隐藏起来,如果没有程序的支持,则所有内容不可见。这样子可以强行要求别人运行程序,不运行就无法工作,也无法看到文件内容.
c) 把所有内容进行加密存贮,加密方法自定义,这个没有具体要求。只有在程序运行时,可以解密所贮存的内容,没有程序则看不到内容,次数设定可以直接放在加密的excel内容当中,当然放在文件内容最前面比较方便一些。也可以按一、条内容加密,但这样做不是上选。

思路:在工作薄的open事件中添加代码,第一次打开则给工作薄的某一属性赋值,不是第一次打开则打开一次减1直到为0时,弹出对话框,关闭该工作薄。