Назад | Перейти на главную страницу

Сценарий 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

Метод 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