VBScript并显示一个输入框

时间:2011-08-11 19:27:26

标签: debugging scripting vbscript

我正在编写一个脚本来捕获登录时间。在最终的制作中,任何用户都没有输入。但是我正在测试它,我想知道如何添加额外的代码来确定

  1. 如果处于“调试”模式并且
  2. 登录的用户是我(假设我的用户名是名为EXAMPLE的域名为joe.smith)
  3. 然后出现一个输入框,允许我输入登录的日期和时间。

    所有其他用户永远不会看到这一点,它将在今天捕获系统时间。

    我还想隐藏代码,所以如果脚本被错误的人打开,他们就无法做出正面或反面的事情。

3 个答案:

答案 0 :(得分:3)

您可以使用命令行参数Matt says将脚本设置为调试模式,例如

dim isdebug: isdebug = WScript.Arguments.Named.Exists("debug")
WScript.Echo("in debug mode: " & isdebug)

您可以使用

调用
wscript debugscript.vbs /debug

要获取当前用户名,您可以使用WMI ServiceWScript.Network对象。

获得用户名后,您可以有条件地提出InputBox并收集返回的值:

dim date_: date_ = Now()
if isdebug and username = "me"  then
    dim value: value = CDate(InputBox("enter the date and time (dd/mm/yyyy hh:mm:ss)", "please", Now()))
    ' validate the input here
    date_ = CDate(value) 
end if

最后,为了混淆你的代码,你可以使用Scripting.Encoder,虽然看起来似乎在Vista或Windows 7上似乎不支持。在Google上搜索似乎有一些点击{无论如何,{3}}。

答案 1 :(得分:1)

大多数听起来都可以通过脚本的逻辑来解决。

有一个命令行参数(debug是一个合适的名字)然后在代码中有一些if逻辑可以按你的意愿去做(显示输入框)。

对于代码混淆,我不知道如何在vbscript中完成此操作。 Windows脚本主机也可以使用JavaScript,但网上有很多工具可以让JS更难阅读。也许你想看看使用JS ......

HTH, 马特

答案 2 :(得分:0)

我认为您可以检查属性App.LogMode以查看您是否处于'调试'模式。如果它是0,那么你正在运行调试模式,如果它是1你就不是。