SendKeys в VBScript и Fn
Недавно появился у меня ноутбук Samsung (350e5c-s06ru). Настроил я его для работы, установил ОС, драйвера и необходимые программы, все в прядке. Но заметил особенность: при подключении мыши не отключается тачпад. Довольно неудобно, на своем основном рабочем ноутбуке Acer есть возможность включить данную опцию, а вот на данном самсунге не нашел. Ну что ж, если нет, то может, сделать самостоятельно? Тем более, задача выглядит несложной: создать программу, которая при запуске будет нажимать две клавиши: Fn + F5 – это активация/деактивация тачпада. Программист я или где? Однако, задача оказалась совсем не такой простой…
Итак, первое, что пришло в голову – это создать простенький скрипт vbs, поставить его в автозагрузку и ..и все. Сказано – сделано.
Создаем новый текстовый документ, называем его, к примеру, sc.vbs и заполняем следующим текстом:
set WshShell = WScript.CreateObject("WScript.Shell") WshShell.SendKeys "%{F5}"
Теперь данный файлик можно прописать в автозагрузке, и он будет имитировать нажатие «CTRL+ F5» на клавиатуре. Метод SendKeys в VBScript используется для отправки нажатий клавиш в текущее активное окно, как если бы они набирались с клавиатуры.
Одиночные буквенно-цифровые нажатия клавиш можно просто указать, используя строковое представление требуемого символа. Например, чтобы отправить букву S, команда будет object.SendKeys "S".
Для отправки нескольких символов их объединяют в одну строку. Например, для отправки A, B и C команда будет object.SendKeys "ABC".
Знак плюса «+», «кавычки», знак процента «%», тильда «~» и круглые скобки «()» имеют особые значения и должны быть заключены в фигурные скобки «{}". Квадратные скобки "[]" также должны быть заключены в фигурные скобки, хотя они не имеют особого значения. Чтобы указать символы скобок, используйте «{{}» и «{}}».
Есть специальная таблица символов, которые не могут быть непосредственно представлены символом клавиатуры для использования одного из них необходимо указать соответствующий код. Например, Home – {HOME}.
Стоп-стоп, скажите вы – нам же нужна клавиша Fn - где она? И правильно спросите. А я вам отвечу, что её нет. Вот так просто нет. Fn – это особая клавиша модификатор и с помощью VBScript нажать её, увы, не получится.
Что же делать?
Есть два варианта. Первый – это самый простой: посмотреть в программах и/или драйверах для самсунга (этой модели) и попробовать найти подходящую. Второй – это все же попробовать эмулировать нажатие данной комбинации клавиш, но на более низком уровне. Не скриптовом языке программирования, а, к примеру, С# .NET. Этим мы и займемся, но уже в следующих статьях.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.