ControlSend

ControlSend

В основном я пользуюсь Chrome, но я открыт для использования любого браузера, который позволяет мне это делать.

В Windows 10 вы можете прокручивать любое окно, даже если оно в данный момент неактивно, наведя на него указатель мыши и используя колесо прокрутки.

Можно ли как-то переключать вкладки браузера в неактивном окне?

Честно говоря, я, кажется, помню, что прокрутка влево/вправо (по крайней мере, так называемые функции на моей мыши Logitech) работала некоторое время назад, но сейчас, похоже, это уже не так.

Редактировать: Хотел задать тот же вопрос, но в SU мне сказали, что я уже это сделал. Так что бамп...

решение1

Один из способов сделать это — использовать скрипт AHK с использованиемControlSendфункция для передачи имитированных нажатий клавиш непосредственно в нужное вам окно (это можно сделать для неактивных, минимизированных или скрытых окон). Затем вы можете напрямую привязать любую последовательность, которая вам подходит, к горячей клавише для удобства. Вот прямая копия со страницы документации AHK (ссылка выше) на случай, если страница когда-нибудь выйдет из строя:

ControlSend[Raw]

Отправляет имитированные нажатия клавиш в окно или элемент управления.
ControlSend [, Control, Keys, WinTitle, WinText, ExcludeTitle, ExcludeText]
ControlSendRaw: Те же параметры, что и выше.

Параметры

Контроль

Может быть либо ClassNN (имя класса и номер экземпляра элемента управления), либо текстом элемента управления, оба из которых можно определить с помощью Window Spy. При использовании текста поведение сопоставления определяется SetTitleMatchMode. Если этот параметр пуст или опущен, будет использоваться самый верхний элемент управления целевого окна. Если этот параметр равен ahk_parent, нажатия клавиш будут отправляться непосредственно в целевое окно, а не в один из его элементов управления (см. пример в разделе Автоматизация Winamp).
Чтобы работать с HWND (дескриптором окна) элемента управления, оставьте параметр Control пустым и укажите ahk_id %ControlHwnd% для параметра WinTitle (это также работает для скрытых элементов управления, даже если DetectHiddenWindows отключен). HWND элемента управления обычно извлекается с помощью ControlGet Hwnd, MouseGetPos или DllCall().

Ключи

Последовательность клавиш для отправки (подробнее см. в команде Send). Чтобы отправить буквальную запятую, экранируйте ее (`,). Скорость отправки символов определяется SetKeyDelay. В отличие от команды Send, щелчки мыши не могут быть отправлены ControlSend. Используйте ControlClick для этого.

WinTitle

Заголовок окна или другие критерии, идентифицирующие целевое окно. См. WinTitle.

WinText

Если присутствует, этот параметр должен быть подстрокой из одного текстового элемента целевого окна (как показывает включенная утилита Window Spy). Скрытые текстовые элементы обнаруживаются, если DetectHiddenText включен.

ИсключитьЗаголовок

Окна, названия которых содержат это значение, рассматриваться не будут.

ИсключитьТекст

Окна, текст которых содержит это значение, рассматриваться не будут.

Обработка ошибок

[v1.1.04+]: Эта команда может выдавать исключение при сбое. Для получения дополнительной информации см. Ошибки времени выполнения.

ErrorLevel устанавливается равным 1, если возникла проблема, и 0 в противном случае.

Замечания

ControlSendRaw отправляет нажатия клавиш в параметре Keys, не преобразуя {Enter} в Enter, ^c в Control+C и т. д. Подробности см. в разделе Режим Raw. Также допустимо использовать {Raw} или {Text} с ControlSend. [v1.1.27+]: Текстовый режим может быть более надежным для отправки текста.
Если параметр Control опущен, эта команда попытается отправить данные непосредственно в целевое окно, отправив данные в его самый верхний элемент управления (который часто является правильным) или в само окно, если элементов управления нет. Это полезно, если окно, по-видимому, вообще не имеет никаких элементов управления, или просто для удобства, чтобы не беспокоиться о том, в какой элемент управления отправлять данные.
По умолчанию нажатия клавиш-модификаторов (Control, Alt, Shift и Win) отправляются так же, как и обычно командой Send. Это позволяет командной строке и другим окнам консоли правильно определять заглавные буквы, управляющие символы и т. д. Это также может повысить надежность другими способами.
Однако в некоторых случаях эти события модификатора могут мешать активному окну, особенно если пользователь активно печатает во время ControlSend или если отправляется клавиша Alt (поскольку Alt активирует строку меню активного окна). Этого можно избежать, явно отправляя события модификатора вверх и вниз, как в этом примере:

ControlSend, Edit1, {Alt down}f{Alt up}, Untitled - Notepad
Описанный выше метод также позволяет отправлять нажатия клавиш-модификаторов (Control/Alt/Shift/Win), когда рабочая станция заблокирована (защищена приглашением на вход).
Следует избегать BlockInput при использовании ControlSend в отношении окна консоли, например командной строки. Это связано с тем, что это может помешать правильной работе заглавных букв и клавиш-модификаторов, таких как Control.
Значение SetKeyDelay определяет скорость отправки клавиш. Если целевое окно не получает нажатия клавиш надежно, попробуйте увеличить длительность нажатия с помощью второго параметра SetKeyDelay, как в этих примерах: SetKeyDelay, 10, 10 SetKeyDelay, 0, 10 SetKeyDelay, -1, 0 Если целевой элемент управления — элемент управления Edit (или что-то подобное), следующие действия обычно более надежны и быстры, чем ControlSend: Control, EditPaste, This text will be inserted at the caret position., ControlName, WinTitle
ControlSetText, ControlName, This text will entirely replace any current text., WinTitle
ControlSend, как правило, не может управлять строкой меню окна. Чтобы обойти это, используйте WinMenuSelectItem. Если это невозможно из-за характера строки меню, вы можете попытаться обнаружить сообщение, которое соответствует нужному пункту меню, следуя руководству SendMessage.
Заголовки и текст окон чувствительны к регистру. Скрытые окна не обнаруживаются, если не включена функция DetectHiddenWindows.

Связанный

SetKeyDelay, Escape-последовательности (например, `%), Control, ControlGet, ControlGetText, ControlMove, ControlGetPos, ControlClick, ControlSetText, ControlFocus, Send, Автоматизация Winamp ...

Связанный контент