实际上,可以使用一种非常简单的方法来生成 GUID,但这种方法近乎像是作弊。(您可听清楚了,我们说的可是“近乎”。)“Scriptlet.TypeLib”对象的设计用途是帮助您创建“Windows 脚本组件”(实质上,这是一种使您编写的脚本可以像 COM 对象那样工作的方法)。Scriptlet.Typelib 对象包含一种方法,它可以生成与“Windows 脚本组件”类型库一起使用的 GUID;不过,没有理由不能使用该方法来生成用于其他用途的 GUID。(毕竟,GUID 就是 GUID。)如果您需要 GUID,下面这个由两行代码组成的脚本就可为您提供一个:
Set TypeLib = CreateObject("Scriptlet.TypeLib") Wscript.Echo TypeLib.Guid
还不赖,是吧?当然,这个脚本所做的只是在消息框中回显 GUID;如果实际上要在其他地方使用该 GUID,就必须将其键入。如果不是由于 GUID 像如下内容那么冗长,这倒也不算什么难事:
{24DD18D4-C902-497F-A64B-28B2FA741661}
因此,像我们这样乐于助人又喜欢标榜自己的家伙,当然要对脚本略做修改了。以下脚本可生成 GUID,然后将其复制到剪贴板,而不是显示在消息框中:
Set TypeLib = CreateObject("Scriptlet.TypeLib") strGUID = TypeLib.Guid Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate("about:blank") objIE.document.parentwindow.clipboardData.SetData "text", strGUID objIE.Quit
如果您想知道我们是怎样做到的,实际上,我们又耍弄了一个小伎俩。VBScript 无法将项目复制到剪贴板,但 Internet Explorer 可以。因此,我们只是生成 GUID,然后将该值存储在名为 strGUID 的变量中。接着,创建一个不可见的 Internet Explorer 实例,并使用“clipboardData.SetData”方法将该 GUID 复制到剪贴板。可使用以下这行代码来执行这项操作:
objIE.document.parentwindow.clipboardData.SetData "text", strGUID
退出 Internet Explorer,现在您想要在哪里使用该 GUID,就可以将其粘贴到哪里。