VB скрипт + запуск CMD и отображение сетевого адреса с помощью SendKeys

Я использую следующий скрипт VB (пример), чтобы открыть окно CMD и запустить ipconfig на моем WIN XP

CMD окно было открыто

но по какой-то причине WshShell.SendKeys не отправляет ipconfig в окне CMD

Посоветуйте, пожалуйста, какие причины могут быть причиной того, что WshShell.SendKeys не отправляет "ipconfig"?

Option Explicit

Dim WshShell

set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.run("cmd.exe")
WScript.Sleep 5000
WshShell.SendKeys "ipconfig" 
WshShell.SendKeys("{Enter}")
WScript.Sleep 5000

1 ответ

Метод SendKeys не очень надежен. Иногда он не знает, где сейчас находится фокус. Если вы запустите свой скрипт в cmdОкно это работает. Однако ключи отправляются не во вновь открытую оболочку (строка 4ht), а в текущее cmd-окно, где был запущен vbs-скрипт.

Пожалуйста, попробуйте следующий код. У меня это сработало.

Dim o, i, strErr
Set o = createobject("WScript.Shell")
strErr = o.Run ("cmd /k ipconfig.exe", 1 , False)
WScript.Echo strErr
'strErr return code, indicating the 
Set o = nothing

Ссылка: https://www.codeproject.com/Tips/507798/Differences-between-Run-and-Exec-VBScript

Другие вопросы по тегам