Вопрос VBScript об использовании буфера обмена и stdIn и stdOut

У меня есть HTA, который использует VBScript для выполнения множества рутинных повторяющихся задач. Последняя повторяющаяся задача, которую мне дали, — ввести неисчислимое количество MAC-адресов в другую систему, которая не будет принимать автоматический ввод. Однако все они написаны строчными буквами, и высшие силы хотят, чтобы они вводились в верхнем регистре. Используя ответы из Использовать буфер обмена из VBScript и VBScript, текст в буфер обмена для вставки в любое поле Мне удалось собрать этот код который отлично работает.

'Copy the current Clipboard contents into a variable called txtClipBoard
txtClipBoard = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")

'Assign the value of the LowerCase text field to txtClipBoard
txtLowerCase.value = txtClipBoard

'Prepare VBS to push data to the clipboard
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("clip")
Set oIn = oExec.stdIn

'Push the uppercase value into the clipboard
oIn.WriteLine UCase(txtLowerCase.value)

'Put the Uppercase value in the second UpperCase text field.
txtUpperCase.value = UCase(txtLowerCase.value)

Нижний2Верхний

Я копирую (Ctrl-C) MAC из своего источника. Затем, нажав кнопку «Вставить/Копировать», запускается описанная выше подпрограмма, которая вставляет MAC-адрес в текстовое поле в нижнем регистре, используя метод IE для доступа к буферу обмена, а затем помещает версию в верхнем регистре в буфер обмена с помощью метода WScript.Shell. Мой вопрос касается использования stdIn в WScript.Shell. Копнув дальше, я нашел метод stdOut. Мне было интересно, есть ли способ придерживаться объекта WScript для выполнения этой процедуры. Я попробовал пару разных строк, но я не понимаю, что именно происходит, и не нашел хорошего ресурса, который объяснил бы мне это. Могу ли я использовать функции stdIn / stdOut для управления буфером обмена для достижения нужных мне результатов вместо того, чтобы цепляться за команду IE?


person Rikus Khan    schedule 01.02.2021    source источник