2016-08-06 66 views
1

Ich habe zwei Monitore von denen einer ein Touchscreen ist. mach jetzt jemand einen einfachen Code in autohotkey. dass Sie einen Wert zwischen einem Mausklick und einem Touchscreen Klickgibt es einen Weg in autohotkey, um jetzt zwischen einem Mausklick und Touchscreen klicken

erhielt ich zum Beispiel verwenden Photoshop Anwendung auf meinem Hauptmonitor 1

Und ich habe eine virtuelle Tastatur mit meinem (Favoriten Tastenkombinationen) auf meinem Touchscreen-Monitor 2

Ich möchte, wenn ich mit der linken Hand einen Touchscreen Klick auf meine virtuelle Tastatur Monitor 2.

Dass die Mauszeigers Aufenthalte auf meinem Hauptmonitor 1

So tun, dass ich kann, fahre mit PhotoShop fort, ohne zu unterbrechen, um meinen Mauszeiger zurück zu meinem Hauptmonitor 1 zu bewegen.

Dies ist das Skript bisher eine alternative Idee.

::^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

Hallo! Lass mich sehen, ob ich verstehe, was du brauchst: Du willst also die Maus ohne den Touchscreen auf dem Monitor benutzen und wenn du etwas auf den Touchscreen-Monitor tippst, willst du nicht, dass die Maus dorthin fährt? (Sie möchten die Maus immer noch auf dem Monitor haben, der keinen Touchscreen hat) Habe ich Recht? – RCaetano

+0

yep, ich möchte alle meine Favoriten (Makros) auf der virtuellen Tastatur verwenden, die ich gemacht habe. Drücken Sie es mit der linken Hand mit einem Klick und fahren Sie fort, ohne zu unterbrechen, dass der Mauszeiger zum Touchscreen-Monitor zurückkehrt. [siehe Bild] (http://www.shortcut-s.eu/wpimages/wp587236ca_05_06.jpg) – arnoldburg

Antwort

1

zwischen Eingabegeräten unterscheidet, ist keine triviale Aufgabe mit AHK. Es kann gemacht werden, aber es ist ziemlich kompliziert.
Wenn Sie mit der Interpretation jeden Klick auf dem Touchscreen als Touch-Klick in Ordnung sein würde dann Sie so etwas tun könnte:

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. 

Sie benötigen:

SysGet
RegisterCallback oder SetTimer + MouseGetPos
Hotkeys

+0

ich dachte auf die gleiche Weise wie du, um es zurück auf die letzte bekannte Mauszeigerposition auf dem normalen Monitor zu verschieben .und ich jetzt, dass die Differenz zwischen einem ** Touch-Klick ** - ** (geht auf Klick-Koordinate direkt) ** und ** Mausklick ** - ** (geht auf Klick-Koordinate Schritt für Schritt) ** - aber ich möchte einen einfachen Code wie diesen - ** friere den Mauszeiger, wenn du einen Touchklick machst ** - und ** entarre den Mauszeiger, wenn ich den Mauszeiger mit der Maus bewege. ** – arnoldburg

+0

Sicher mit etwas Mathe, das du sortieren könntest mach es so. Aber Sie müssten die normale Linksklick-Aktion vollständig außer Kraft setzen und sie durch Kontrollklick-Aktionen ersetzen, sonst können Sie den Cursor nicht "einfrieren". Aber einige Anwendungen haben Probleme, 'ControlClick' richtig zu empfangen. – Forivin

+0

Ich denke über diese 1 - wenn Sie den Mauszeiger mit der Maus bewegen, dann den Mauszeiger auflösen 2 - wenn Sie still stehen (nicht bewegen) und irgendeine Art von (links) klicken dann den Mauszeiger einfrieren (mit diesem Sie müssen nicht den normalen Linksklick außer Kraft setzen und durch Kontrollklick ersetzen.) – arnoldburg

1

ich habe nicht einen zweiten Monitor vollständig diesen Code zu testen, aber ich habe getestet o n meinem Hauptmonitor, der ein Touchscreen ist. Dieser Code sollte es tun :)

; 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

Dieser Code, wenn eine gute Alternative für mich, und es funktioniert, habe ich den Code ein wenig geändert. nur ich über einen Code denke an ** (mit der Maus einfrieren, wenn Sie still stehen und machen Sie einen Klick) ** und ** (mit der Maus aufzutauen, wenn Sie den Mauszeiger mit der Maus bewegen.) ** – arnoldburg

+0

To Fixieren Sie den Mauszeiger nach einer bestimmten Zeit. Sie können einen Timer-Mechanismus haben, der prüft, ob X Sekunden vergangen sind und sich die Mausposition nicht geändert hat, und dann einen Klick ausführen. Das Auftauen ist jedoch komplizierter: Ich kann nicht unterscheiden, ob es vom Touchscreen oder von der Maus stammt ... Es sei denn, Sie nehmen an, dass eine bestimmte Position auf dem Bildschirm (zB Monitor 1) nur für die Maus und andere verfügbar ist (Monitor 2) auf den Touchscreen. Wenn das ist, was Sie wollen, sagen Sie mir, damit ich Ihnen mit dem Code helfen kann;) – RCaetano

+0

Ihr Beispiel-Code funktioniert für mich, ich habe - Hauptmonitor 1 (x0 bis x1920) (y0 bis y1080) und Touch-Monitor 2 (x1921 bis x3840) (y0 bis y1080) - aber die Vorteile des Einfrierens des Mauszeigers sind: 1 - Sie müssen nicht zurück 2 - wenn Sie nur einen Touch-Monitor haben, mit dieser Idee können Sie es verwenden, ohne eine zu wählen Bereich. – arnoldburg