VBScript и представление поля ввода - PullRequest
0 голосов
/ 11 августа 2011

Я пишу скрипт для регистрации времени входа в систему. В конечном производстве не будет никакого ввода от любого пользователя. Однако я тестирую его и хотел узнать, как добавить дополнительный код, чтобы определить, что

  1. Если он находится в режиме «отладки» И
  2. Пользователь, который входит в систему, - это я (допустим, мое имя пользователя joe.smith в домене с именем EXAMPLE)

затем введите поле ввода, чтобы я мог ввести дату и время входа в систему.

Все остальные пользователи никогда бы этого не увидели, и сегодня это будет записано с системным временем.

Я также хотел бы скрыть код, чтобы, если скрипт был открыт не тем человеком, он не смог бы понять, что происходит.

Ответы [ 3 ]

3 голосов
/ 12 августа 2011

Вы можете использовать параметр командной строки как Мэтт говорит , чтобы перевести скрипт в режим отладки, например,

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

Который вы можете вызвать с помощью

wscript debugscript.vbs /debug

Чтобы получить текущее имя пользователя, вы можете использовать либо WMI Service , либо WScript.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. Похоже, что есть несколько попыток прибегнуть к поиску фразы vbscript , в любом случае.

1 голос
/ 12 августа 2011

По большей части это можно решить с помощью логики сценария.

Иметь параметр командной строки (отладка - подходящее имя), а затем иметь некоторую логику if в коде, чтобы сделать, как вы хотите (представить поле ввода).

Что касается запутывания кода, я не знаю, как это можно сделать в VBScript. Хост скриптов Windows также работает с JavaScript, и в Интернете есть множество инструментов, которые делают JS труднее для чтения. Может быть, вы хотите посмотреть, используя JS ...

НТН, Matt

0 голосов
/ 12 августа 2011

Я думаю, что вы можете проверить свойство App.LogMode, чтобы увидеть, находитесь ли вы в режиме отладки или нет.Если это 0, значит вы работаете в режиме отладки, а если 1, то нет.

...