[TOC] > Sun Apr 25 2021 20:50:25 GMT+0800 (GMT+08:00) 因互联网发展,办公软件开发公司都在致力于开发云上办公,所以对于本地客户端的一些功能不会再关注。 VBA 的接口能涉及到用户电脑系统层面,这也是为什么 VBA 在过去很长一段时间哪怕是现在一直都是黑客喜欢利用的攻击途径。微软也在逐渐砍去 VBA 对用户系统更改的接口能力。 到了 WPS JS 宏这里,几乎没有操作用户系统的接口了,连 FileSystem 对象都是不全的,这从另一角度来说, JS宏比 VBA 安全很多。至少不用害怕系统注册表这类骚操作。 ## UserName 用户名,可读写;这个是不可靠的,默认地它的结果是电脑当前的用户名,但好像可以在软件里面改。而且用户名是有重复的,比如你们公司的 IT 管理者装机的时候全是用的 `Administrator`。它通过 `Application.UserName` 获取。 可读写意味着你可以改: ```js function _m_ChangeUserName(){ Application.UserName = "Master" // 把用户名改为 “Master” } ``` > 不会改系统的用户名(不具备这种权限),只会改变软件的用户名的值,改之后用到作者、用户名的地方都会改变,比如【批注】的作者,如下图: ![changeUserName](https://img.kancloud.cn/a7/a7/a7a7ebc91d6083d1272cdf1e03ddc6bb_1075x851.png) ## ProductCode `Application.ProductCode` 返回应用全球唯一标识符 (GUID)。String 类型,只读。这个倒是唯一,但卸载再安装、升级等操作之后,它会变吗?可能会。也是不太可靠。 ## 其他的一些信息 * OperatingSystem 返回当前操作系统的名称和版本号。例如,“Windows (32-bit) 4.00”或“Macintosh 7.00”。String 类型,只读。 * OrganizationName 返回注册组织名称。String 类型,只读。 * Version 软件版本 * Build 软件打包编号 * Name 应用名称 * Value 软件名称,奇怪的是,我这里的 WPS表格 得到 `Microsoft Excel`…… > 剩下的大家自己看开发文档吧。 这些信息平时是没什么用的,大家也不要把它们用到一些权限验证场景中,小心本来意图防人,结果连自己也被防住了。 但像 VBA 这种对系统类别(MacOS版也有限支持 VBA 宏)、系统版本、系统位数、VBA版本支持不一样的情况,这些信息其实是很有帮助的。