Я хочу использовать функцию WScript.Sleep()
с однострочником mshta.exe
из пакета (я не хочу записывать временные файлы), но получаю ошибку WScript undefined
.
Как указано в этом ответе:
WScript — это объект, предоставляемый хостами W|CScript.exe; IExplorer или MSHTA не предоставляют его (см. здесь).
В режиме сна для сценариев HTA:
- Ответ Стивена Куана использует
window.setTimeOut
иwindow.ResizeTo
, которые просто вызывали ошибки (но, возможно, есть способ сделать это, чего я не знаю найти). - uk2015 — это VBScript.
- iRon's: ошибка в символе 5 ';' ожидал; также
select
имеет одинарные кавычки (вmshta
параметр заключен в двойные кавычки, и вы можете использовать одинарные кавычки внутри, но это, так сказать, третий уровень цитирования. Кроме того, вам нужны права администратора . - TorATB: использует пинг! Та же проблема и с кавычками.
Я не знаю, как сделать один ответ на эту работу или, если возможно.
Внутри .js
, запускаемого c/wscript, все работает отлично. Есть ли замена или способ сослаться на эту функцию для mshta.exe
?
Пример:
Сохраните следующий код как .js
и запустите его.
new ActiveXObject('Internet.HHCtrl').TextPopup('Warning message', 'Tahoma, 16, , BOLD', 8, 4, 0x0000FF, 0x00FFFF );WScript.Sleep(5000);
Но, как я уже сказал, я хочу запустить его из партии без каких-либо временных .js
(или .vbs
). Попробуйте запустить этот код из командной строки:
mshta "javascript:new ActiveXObject('Internet.HHCtrl').TextPopup('Warning message', 'Tahoma, 16, , BOLD', 8, 4, 0x0000FF, 0x00FFFF );close()"
Текстовое всплывающее окно открывается и сразу же закрывается, но иногда вы можете его увидеть. Как вам удается удерживать текст в течение заданного промежутка времени, когда вы запускаете этот код с помощью mshta
?
.hta
, и я не понимаю, как ответы (которые создают функции sleep) могут быть адаптированы к командамmshta "javascript: ...;close()"
(на самом деле одна из них.vbs
). Добавляю об этом в вопрос. - person cdlvcdlv   schedule 29.06.2018mshta vbscript:Close(Execute("CreateObject(""WScript.Shell"").Run ""ping.exe 100.64.1.1 -n 1 -w 2000"",0,True"))
Попробуйте это, но Защитник Windows блокирует это. - person langstrom   schedule 29.06.2018-w
указывается в миллисекундах. - person langstrom   schedule 29.06.2018ping
асинхронно, и код немедленно возобновится? И у меня есть опасения, вообще, с использованием пинга для создания задержки, потому что есть несколько сценариев, когда он выйдет из строя и быстро вернется из пингов: если у вас нет сетевой карты (редкость в наше время, я знаю) или если он отключен по какой-либо причине во время проверки связи (что не так уж маловероятно), или даже если вы были подключены к Wi-Fi, но затем он снова подключается (определенно возможно). Я думаю, что использование0.0.0.0
или127.0.0.1
более безопасно, но даже в этом случае... - person cdlvcdlv   schedule 03.07.2018