C# 如果vba密码被更改,如何防止打开excel

C# 如果vba密码被更改,如何防止打开excel,c#,vba,excel,office-interop,C#,Vba,Excel,Office Interop,我们提供带有用户访问控制的excel工作簿。但是,请注意,他们可以使用十六进制编辑器方法(通过>)进入工作簿并修改我们的代码以验证该用户。 为了防止这种情况,我们尝试在数据库中存储DBP=[TEXT],并在每次启动宏时对其进行验证。它失败,因为每次保存宏时DBP文本都会更改 我们的想法是通过传递我们设置的密码来尝试解锁VBA项目,如果密码正确与否,我们将收到一条消息。 现在的问题是,有没有一种方法可以自动化一个过程?我找到了通过另一个工作簿解锁VBA项目的方法,但是在自动化过程中,如果密码不正确

我们提供带有用户访问控制的excel工作簿。但是,请注意,他们可以使用十六进制编辑器方法(通过>)进入工作簿并修改我们的代码以验证该用户。 为了防止这种情况,我们尝试在数据库中存储DBP=[TEXT],并在每次启动宏时对其进行验证。它失败,因为每次保存宏时DBP文本都会更改

我们的想法是通过传递我们设置的密码来尝试解锁VBA项目,如果密码正确与否,我们将收到一条消息。 现在的问题是,有没有一种方法可以自动化一个过程?我找到了通过另一个工作簿解锁VBA项目的方法,但是在自动化过程中,如果密码不正确,它们就会被卡住


验证过程可以在服务器端完成。因此,如果可以通过C#Office互操作而不是VBA来实现,那就更好了。最好是OpenXML。VBA解决方案也受到欢迎。

VBA安全性仅适用于诚实的人,以防止意外的代码更改。你在这里真是运气不好;如果盗版对你来说是一个问题,请移动到另一个平台。。。或者使用已编译的ADIN(dll、exe等)更像是从哪里开始编程?目标是在密码为临时密码时退出宏。那么,你告诉我应该从哪里开始。如果你的用户可以破解你的VBA项目,那么在VBA中实现任何进一步的安全性都是没有意义的——这将很容易被绕过。如果我禁用escape key并在密码被更改时杀死应用程序会怎么样?这不会让他们远离马可吗?