PREVED
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору mbecoool Цитата: Хмм... Выяснил следующее: не работают жесты свяанные с эмуляцией ctrl (возможно и шифт туда же). А вот, к примеру эмуляция f5 прекрасно работает (acSendKeys("{F_5}")). | 1. Хм. Странно. Попробуйте настройку Ignore key (в Preferences) изменить с Ctrl на что-нибудь другое. Может имеет место быть конфликт с каким-нибудь клавиатурным ПО? 2. Попробуйте заменить код вот этим (эмулирует нажатие Ctrl+W с нажатием/разжатием клавиши Ctrl): Код: acSendControlDown() acDelay(50) acSendKeys("w") acDelay(50) acSendControlUp() | Добавлено: shadow_member Цитата: Браузер. Как назначить на соответствующие жесты действия "прокрутить страницу вниз до упора" и "прокрутить вверх до упора"? | В Опере Престо и в Firefox это можно штатными функциями(либо расширениями) реализовать. Причем будет работать надежнее. Если нужно чтобы во всех браузерах работало - тогда эмулировать через S+ нажатие Home и End. Скрипт, на примере прокрутки до упора вверх: Код: acActivateWindow(acGetOwnerWindowByPoint(acGetMouseLocationX(), acGetMouseLocationY()),0,0) acSendKeys("{TAB}") acDelay(100) acSendKeys("{HOME}") | Примечание: Первая строчка активирует окно браузера под курсором мыши (на случай если оно не активно) Вторая строчка нажимает TAB - чтобы уйти за пределы текстового поля (внутри страницы, на случай если поле активно, чтобы оно не мешало промотке страницы). Прокрутка вниз - просто меняем {HOME} на {END}. Цитата: А на третий жест назначить глобальное действие "закрыть окно", которое будет действовать для любых окон- проводник, офис, браузер... | Закрыть окно под курсором: Код: acPostMessage(acGetParentWindowByPoint(gsx, gsy), 0x0112, 0xF060, 0) | Закрыть приложение под курсором ("нежное" закрытие - в программу передается команда Закрыть через WinAPI): Код: acActivateWindow(acGetOwnerWindowByPoint(acGetMouseLocationX(), acGetMouseLocationY()),0,0) acCloseApplication(nil, gsx, gsy) | Принудительно закрыть приложение под курсором (все равно что грохнуть его через Диспетчер задач, но не даст убить explorer.exe): Код: local TerminateAppWindow = acGetParentWindowByPoint(acGetMouseLocationX(), acGetMouseLocationY()) acActivateWindow(TerminateAppWindow, 0, 0, 2) local TerminateExename = acGetExecutableName(acGetForegroundWindow(), 0, 0) if TerminateExename ~= "explorer.exe" then acTerminateProcess(acGetForegroundWindow(), 0, 0) acDisplayText(TerminateExename.." killed", "Arial", 76, 0, 200, 50, 1000, 500, 400) else end | | Всего записей: 1962 | Зарегистр. 10-03-2006 | Отправлено: 17:11 08-12-2014 | Исправлено: PREVED, 18:12 08-12-2014 |
|