Deaktivieren Sie die ALT-Funktion, nachdem eine Anwendung AutoHotKey verwendet

485
Bruno Augusto

Ich habe nach einer Möglichkeit gesucht, die altFunktionalität zu deaktivieren, die ein mnemonikfähiges Menü vorbereitet, das mit der Tastatur verwendet werden soll, und darauf wartet, dass ein Buchstabe gedrückt wird. Dies scheint jedoch an Windows selbst nicht möglich zu sein, zumindest nicht unter Windows 7 ( Ich kenne andere nicht.

Das Problem ist nur bei Adobe Premiere, bei dem die altTimeline / Sequenz unter anderem zum Ein- und Auszoomen verwendet wird, und ich mache das oft, weil ich Frame-by-Frame-Lippensynchronisation mache.

Wenn ich die altTaste loslasse, bleibt manchmal die menübezogene Funktionalität erhalten und die Pfeiltasten können sofort verwendet werden, um den Cursor ... zu bewegen. In der Timeline / Sequenz navigiere ich nicht durch die Videoframes, sondern durch die Menüs.

Obwohl altich frustrierend bin, kann ich durch Drücken der Taste unmittelbar nach dem Abrollen des Mausrads einen kontinuierlichen Arbeitsfluss beibehalten. Es ist nur für eine Millisekunde, aber extrapolieren Sie dies auf eine sehr zeitaufwändige Aufgabe, in der 2-3 Minuten 2-3 Stunden dauern können.

Wie auch immer ... Bei der Suche nach einem alternativen Ansatz habe ich jemanden gefunden , der das gleiche Problem hatte, aber mit Adobe Photoshop und einer anderen Person schlug sowohl eine App namens apssistant vor, die sich leider nur für Photoshop eignet, als auch eine Lösung mit AutoHotKey.

Ich habe immer versucht, AHK zu vermeiden, weil ich nie Programme gemocht habe, die im Hintergrund laufen. In diesem Fall ist jedes bisschen Speicher und / oder Verarbeitungsleistung von entscheidender Bedeutung, da ich keine Top-Hardwarekonfiguration habe. Letztes Mal war mein PC wegen der Komplexität des Projekts mehrmals nicht mehr funktionsfähig, da Premiere mehr als 7 GB RAM verbrauchte.

Aber ich habe es mit dem ursprünglichen Vorschlag versucht:

#NoEnv ; #Warn ; ~LAlt:: KeyWait, LAlt return  ~LAlt Up:: Send,  return 

Ich bin sicher, dass dies funktioniert, weil ich es in einem Windows Explorer-Fenster getestet habe und obwohl das Menü blinkt, es nicht ausgelöst wird.

mit einer Möglichkeit, Premiere auszulösen UND das Skript insgesamt auszuführen:

#NoEnv ; #Warn ;#Persistent ;Script will not Exit when no hotkeys exist.  Run, "C:\Program Files\Adobe\Adobe Premiere Pro CC 2017\Adobe Premiere Pro.exe"  SetTitleMatchMode, 2 ;Program Title can be portions of the title instead of the full title SetTimer, CheckPrograms, 1000 ;Run CheckPrograms subroutine every 1 second return  CheckPrograms: IfWinExist, Premiere { Run, DisableALTFunctionality.ahk ;PremiereTrack = 1 } IfWinNotExist, Premiere ;PremiereTrack = 0 Exitapp return 

Soweit ich das beurteilen konnte, funktionierte das jedoch nicht, denn als Premiere geladen wurde (noch keine SSD hier), öffnete ich mein letztes Projekt und die ALT-Funktion war noch vorhanden.

Ich führe das zweite Skript über eine Verknüpfung in meinem Desktop aus. Beide Skripts befinden sich im selben Verzeichnis. AHK-Dateien sind für die manuelle Ausführung mit AutoHotScript x64 (portable Version) ordnungsgemäß konfiguriert. Das Tray-Symbol zeigt an, dass das Skript tatsächlich ausgeführt wird DisableALTFunctionality.ahk.

Aber selbst wenn ich das Timeout auf etwa 5 Minuten verlängerte, hatte ich keinen Erfolg.

0
Ihre Frage wird heruntergestuft - sie ist vage und enthält viele irrelevante Informationen. Wenn Sie Hilfe benötigen, schlagen Sie Folgendes vor: Führen Sie nur dieses AHK-Skript aus (es ist nur eine Zeile): `~ LAlt :: return` und testen Sie, wie sich dies auf Anwendungen und Ihre Premiere-Funktionalität auswirkt. Beschreiben Sie genau, was funktioniert oder nicht. Führen Sie dann nur dieses AHK-Skript aus: `~ LAlt up :: return` und beschreiben Sie erneut, was passiert. Führen Sie nicht mehrere Skripts gleichzeitig aus. Bitte halten Sie die Frage möglichst kurz und präzise Mikhail V vor 6 Jahren 0

1 Antwort auf die Frage

1
user3419297

Sie können die Direktive #If - oder #IfWinActive - verwenden, um die ALT-Funktionalität in diesem Programm zu deaktivieren:

#NoEnv ; #Warn ;#Persistent ; Script will not Exit when no hotkeys exist.  SetTitleMatchMode, 2 ; Program Title can be portions of the title instead of the full  #IfWinActive, Premiere  LAlt:: RAlt:: return ; do nothing  !WheelDown:: Send, ; ! means Alt  !WheelUp:: Send,    #IfWinActive ; turn off context sensitivity 

Versuchen Sie auch:

#NoEnv ; #Warn ;#Persistent ; Script will not Exit when no hotkeys exist.  SetTitleMatchMode, 2 ; Program Title can be portions of the title instead of the full  #IfWinActive, Premiere  LAlt up:: If (A_PriorKey = "LAlt") ; If LAlt was pressed alone return ; do nothing return  ; In this case its necessary to define a custom combination by using "LAlt &" or "<!"  ; to avoid that LAlt loses its original function as a modifier key: <!F4:: Send ; <! means LAlt   #IfWinActive ; turn off context sensitivity 
Dadurch wird Alt jedoch vollständig deaktiviert. Es scheint, dass OP es immer noch für die Funktionalität benötigt, mit der es in Konflikt steht. Mikhail V vor 6 Jahren 0
Ja. Und in der Tat habe ich nicht einmal darüber nachgedacht, als ich das Drehbuch schrieb, weil es kurze Pressungen abbrechen sollte. Die am meisten verwendete Kombination ist: ALT und Mausrad halten. Gibt es eine Möglichkeit, sie zu unterscheiden? Bruno Augusto vor 6 Jahren 0
Versuchen Sie meine bearbeitete Antwort. user3419297 vor 6 Jahren 0
Der erste Code blockiert die ALT-Taste. Wenn Sie jedoch ALT gedrückt halten und dann nach oben / unten scrollen, werden keine ALT-Tasten gedrückt, die in Premiere nur den Suchbalken steuern, anstatt zu vergrößern / verkleinern. Außerdem blockiert es andere "normale" ALT-Kombinationen wie ALT + TAB (>. <). Könnten Sie den zweiten Code erklären? Da der "mnemonische Auslöser" immer noch vorhanden ist und sie funktionieren, wenn ich die zugehörigen Tasten drücke, habe ich versucht, den Workflow eines echten Anwendungsfalls zu replizieren (ich habe heute frei) und das Menü wurde nicht geöffnet ausversehen. Bruno Augusto vor 6 Jahren 0
Der zweite Code deaktiviert die linke ALT-Funktionalität nur, wenn die linke ALT-Taste alleine gedrückt wurde (es bereitet kein Menü für die Verwendung mit der Tastatur vor). Alle anderen ALT + Tastenkombinationen bleiben erhalten. user3419297 vor 6 Jahren 0
Nun, ich muss weiter testen, wenn ich ein weiteres Video zur Arbeit bekomme (wahrscheinlich erst nächstes Wochenende). Bis dahin kann ich nur sagen, dass Sie sich für Ihre Zeit bedanken. Bruno Augusto vor 6 Jahren 0
Wie versprochen, habe ich heute Ihre Lösung getestet und der zweite Code hat funktioniert, so sehr das "Problem" mich perfekt beeinflusst hat. Das Ein- und Auszoomen und das schnelle Navigieren durch die Frames ist jetzt viel schneller und reibungsloser. Vielen Dank :) Bruno Augusto vor 6 Jahren 0