1

У меня есть два монитора, один из них - сенсорный. сделайте кого-нибудь теперь простым кодом в autohotkey. что вы получили значения, между мыши и сенсорными мышиЕсть ли способ в autohotkey между щелчком мыши и сенсорным экраном?

я использую, например Photoshop приложение на моем основного монитора 1

И у меня есть виртуальной клавиатура с моим (любимые комбинации клавиш) на моем сенсорный монитор 2

Я хочу, если я с моей левой рукой сенсорный экран нажмите на моей виртуальной клавиатуры монитора 2.

что указатель мышки остается на моей основной монитор 1

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

Это сценарий, пока альтернативная идея.

::^d ;push ctrl + d to disable the mouse pointer movement 
BlockInput MouseMove 
return 

::^e ;push ctrl + e to enable the mouse pointer movement 
BlockInput MouseMoveOff 
return 

keystarter and autohotkey with two monitors

+0

Здравствуйте! Позвольте мне понять, понимаю ли вы, что вам нужно: так что вы хотите использовать мышь на мониторе без сенсорного экрана, а когда вы набираете что-то на сенсорном мониторе, вы не хотите, чтобы мышь двигалась туда? (Вы хотите, чтобы мышь все еще находилась на мониторе, у которого нет сенсорного экрана). Правильно? – RCaetano

+0

yep, я хочу использовать все мои любимые ярлыки (макросы) на виртуальной клавиатуре, которые я сделал. толкайте его левой рукой одним щелчком мыши, а затем продолжайте, не прерывая, чтобы указатель мыши вернулся к сенсорному монитору. [посмотреть на картинку] (http://www.shortcut-s.eu/wpimages/wp587236ca_05_06.jpg) – arnoldburg

ответ

1

Различие между устройствами ввода не является тривиальной задачей с АХК. Это можно сделать, но это довольно сложно.
Если бы все в порядке с интерпретацией каждый клик на сенсорном экране в качестве сенсорной мыши, то вы могли бы сделать что-то вроде этого:

When the mouse moves on the normal screen 
    store it's position in a variable. 

When a left click is executed on the touch screen do the click 
    move the mouse back to the last know position on the normal monitor. 

Вам нужно:

SysGet
RegisterCallback или SetTimer + MouseGetPos
Hotkeys

+0

Я так же думал, как вы, чтобы переместить его обратно в последнюю позицию указателя мыши на обычном мониторе ,и теперь, когда разница между ** сенсорным щелчком ** - ** (идет прямо на координату клика) ** и ** щелчок мышью ** - ** (шаг за шагом идет по клику) ** - но i вам нужен простой код - ** заморозить указатель мыши, если вы нажмете щелчок ** - и ** разморозьте указатель мыши, когда я перемещаю указатель мыши с помощью мыши. ** – arnoldburg

+0

Конечно, с некоторой математикой вы можете делайте это так. Но вам придется полностью переопределить нормальное действие левой кнопкой мыши и заменить его на действия controlclick, иначе вы не сможете «заморозить» курсор. Но в некоторых приложениях есть проблемы с правильной обработкой ControlClick. – Forivin

+0

Я думаю об этом 1 - если вы переместите указатель мыши с помощью мыши, то разморозьте указатель мыши 2 - если вы остановитесь (не двигаетесь) и сделайте какой-либо (левый) щелчок, затем заморозите указатель мыши (с этим вам не нужно переопределять обычный левый клик и заменять его действием элемента управления) – arnoldburg

1

у меня нет второго монитора, чтобы полностью проверить этот код, но я испытал о n мой главный монитор, который является сенсорным экраном. Этот код должен делать трюк :)

; Screen pixel split between monitors 
; You should change this values according to the desired region of interest 
screen_split_min := 0 
screen_split_max := 200 
; To get absolute monitor coordinates 
CoordMode, Mouse, Screen 

MouseGetPos, pre_mx, pre_my 
While 1 
{ 
    MouseGetPos, tmp_mx, tmp_my 
    If tmp_mx > %screen_split_max% 
    { 
    pre_mx := tmp_mx 
    pre_my := tmp_my 
    } 
} 

~LButton:: 
    MouseGetPos, mx, my 
    If mx <= %screen_split_max% and mx >= %screen_split_min% 
    { 
    MouseMove, pre_mx, pre_my, 0 
    } 
return 

HTH;)

+0

этот код, если это хорошая альтернатива для меня, и он работает, я немного изменил код. только я думаю о коде для ** (заморозить указатель мыши, если вы остановитесь и сделаете щелчок) ** и ** (разморозьте указатель мыши, если вы перемещаете указатель мыши с помощью мыши.) ** – arnoldburg

+0

To заморозите указатель мыши через определенное время, когда у вас может быть механизм таймера, который будет проверять, прошло ли X секунд, и положение мыши не изменилось, затем выполните щелчок. Тем не менее, размораживание сложнее: я не знаю, как отличить это от сенсорного экрана или от мыши ... Если вы не предполагаете, что определенная позиция на экране (например, монитор 1) доступна только для мыши и других (монитор 2) на сенсорный экран. Если это то, что вы хотите, скажите мне, чтобы я мог помочь вам с кодом;) – RCaetano

+0

Ваш пример кода работает для меня, у меня есть - основной монитор 1 (от x0 до x1920) (от y0 до y1080) и сенсорный монитор 2 (x1921 до x3840)) (от y0 до y1080), но преимуществами для замораживания указателя мыши являются: 1 - вам не нужно возвращаться 2 - если у вас есть только один сенсорный монитор, с этой идеей вы можете использовать его во всех случаях, чтобы не выбрать площадь. – arnoldburg

 Смежные вопросы

  • Нет связанных вопросов^_^