3 заметки с тегом

wsh

Batch-запуск

Пока писал книгу, часто приходилось пропускать по нескольку сотен, а то и тысяч картинок через различные программы-оптимизаторы. Хорошо, когда эти программы имеют пакетный режим, а если нет? Выход, в общем-то простой — подумать какую последовательность кнопок надо жать в программе, чтобы оптимизировать всю папку с файлами и как-то запрограммировать нажатие.

Я пользовался для этой цели Windows Script Host, описывал что нужно жать на языке JScript. Вот, например, обрабатываются 492 изображения программой «A Smaller GIF 1.22»:

with (WScript.CreateObject("WScript.Shell")) {
    AppActivate("A Smaller GIF 1.22")

    for (var command, j = 0; j<492; j++) {
        WScript.sleep(100)

        for (command = '^O+{TAB}{DOWN}{UP}', i = 0; i<j; i++) {
            command += '{DOWN}'
        }

        SendKeys(command+'{ENTER}^S')
        WScript.sleep(100)
        SendKeys('{ENTER}')
    }
}

Всё понятно, по-моему, почти по-английски написано. О том как отсылать приложению специфические комбинации (например, Ctrl+Alt+Backspace) можно прочитать в на сайте MSDN.

2009   javascript   wsh

А знаете ли вы?..

Что из VBScript (WSH) можно перезагрузить машину. Если ваша Windows поддерживает аббревиатуру WMI, это можно сделать так:

Set OpSysSet = GetObject("winmgmts:{(Shutdown)}//./root/cimv2").ExecQuery("select * from Win32_OperatingSystem where Primary=true")

For Each OpSys in OpSysSet
  OpSys.Reboot()
Next

Сохраните текст программы как reboot.vbs и попробуйте запустить.

2003   wsh

Nullscript

Язык для WSH, который ничего не делает. OpenSource. На C++. Очень хорош для того, чтобы понять каким образом языки программирования интегрируются в WSH. [ <<> ]

Кстати, вы знаете, что есть Haskell, Perl, Python и Ruby для WSH?

2003   wsh