AutoHotKey funktioniert nicht mit Outlook 2010


13

Ich habe ein AutoHotKey-Skript erstellt und es zu einer Exe kompiliert.

Ich habe dann die exe ausgeführt und Outlook 2010 ausgeführt.

Wenn ich versuche, meine definierten Hotkeys zu verwenden, wird in der Statusleiste die Meldung "Diese Änderung ist nicht zulässig, da die Auswahl gesperrt ist." Angezeigt.

Ich habe einige Nachforschungen angestellt und diese Fehlernähte mit einem Trail-Ende verknüpft. Aber ich bin an einem Arbeitscomputer und führe keine Testversion durch.

Gibt es eine Möglichkeit, dies zu beheben?

Hier ist meine Ahk-Datei

SendMode Input ; Recommended for new scripts due to its superior speed and reliability.

SendMode Input ; superior speed and reliability.

SetTitleMatchMode 2 ;allow partial match to window titles

;********************
;Hotkeys for Outlook 2010
;********************
;As best I can tell, the window text ‘NUIDocumentWindow’ is not present
;on any other items except the main window. Also, I look for the phrase
; ‘ – Microsoft Outlook’ in the title, which will not appear in the title (unless
;a user types this string into the subject of a message or task).
#IfWinActive – Microsoft Outlook ahk_class rctrl_renwnd32, NUIDocumentWindow

y::HandleOutlookKeys("!hy", "y") ;calls archive macro
f::HandleOutlookKeys("^f", "f") ;forwards message
r::HandleOutlookKeys("^r", "r") ;replies to message
a::HandleOutlookKeys("^+r", "a") ;reply all
v::HandleOutlookKeys("^+v", "v") ;Move message box
+u::HandleOutlookKeys("^u", "+u") ;marks messages as unread
+i::HandleOutlookKeys("^q", "+i") ;marks messages as read (^q is read/unread toggle)
j::HandleOutlookKeys("{Down}", "j") ;move down in list
+j::HandleOutlookKeys("{Down}{Enter}", "+j") ;move down and select next item
k::HandleOutlookKeys("{Up}", "k") ;move up
+k::HandleOutlookKeys("{Up}{Enter}", "+k") ;move up and select next item
o::HandleOutlookKeys("^o", "o") ;open message
s::HandleOutlookKeys("{Insert}", "s") ;toggle flag (star)
c::HandleOutlookKeys("^n", "c") ;new message
/::HandleOutlookKeys("^e", "/") ;focus search box
.::HandleOutlookKeys("+{F10}", ".") ;Display context menu

#IfWinActive
;Passes Outlook a special key combination for custom keystrokes or normal key value, depending on context
HandleOutlookKeys( specialKey, normalKey ) {
    ;Activates key only on main outlook window, not messages, tasks, contacts, etc.
    IfWinActive, – Microsoft Outlook ahk_class rctrl_renwnd32, NUIDocumentWindow, ,
    {
        ;Find out which control in Outlook has focus
        ControlGetFocus, currentCtrl
        ;MsgBox, Control with focus = %currentCtrl%
        ;set list of controls that should respond to specialKey. Controls are the list of emails and the main (and minor) controls of the reading pane, including controls when viewing certain attachments.
        ;Currently I handle archiving when viewing attachments of Word, Excel, Powerpoint, Text, jpgs, pdfs
        ;The control ‘RichEdit20WPT1' (email subject line) is used extensively for inline editing. Thus it had to be removed. If an email’s subject has focus, it won’t archive…
        ctrlList = Acrobat Preview Window1, AfxWndW5, AfxWndW6, EXCEL71, MsoCommandBar1, OlkPicturePreviewer1, paneClassDC1, RichEdit20WPT2, RichEdit20WPT4, RichEdit20WPT5, RICHEDIT50W1, SUPERGRID1, SUPERGRID2, _WwG1
        if currentCtrl in %ctrlList%
        {
            Send %specialKey%
            ;Allow typing normalKey somewhere else in the main Outlook window. (Like the search field or the folder pane.)
        } else {
            Send %normalKey%
        }
        ;Allow typing normalKey in another window type within Outlook, like a mail message, task, appointment, etc.
        } else {
            Send %normalKey%
    }
}

Ein weiterer Vorschlag ist, dass dies auftreten kann, wenn ein Dokument geschützt ist. Ich weiß nicht, ob dies relevant ist, kann Ihnen aber einen Weg zur Untersuchung geben?
Stuart McLaughlin

Warum der "SendMode Input;" Zeile zweimal? Ist das mit Absicht oder war es nur ein Kopier- und Einfügefehler?
sbtkd85

Hat dies nichts mit der erweiterten Sicherheit zu tun, die Microsoft 2003 für Outlook eingeführt hat?

Ich stolpere hier immer wieder über diese Frage, und mir fällt jedes Mal eines ein: Warum stellst du diese Frage nicht im AutoHotkey-Forum? Für diese Art von Problemen gibt es dort enormes Fachwissen.
Benutzer 99572 ist in Ordnung

Haben Sie überprüft, ob Outlook aktiviert wurde? Sie können dies überprüfen, indem Sie auf Datei-> Hilfe gehen.
cmorse

Antworten:


1

Ich habe Ihren Fehler nicht erhalten, aber einen möglichen Fehlerpunkt und zwei andere Dinge entdeckt. Vielleicht die korrigieren oder zumindest mit den Parametern rumspielen.

Checkliste mit relevanten Kontrollen

ctrlList = Acrobat Preview Window1,AfxWndW5,AfxWndW6,EXCEL71,MsoCommandBar1,OlkPicturePreviewer1,paneClassDC1,RichEdit20WPT2,RichEdit20WPT4,RichEdit20WPT5,RICHEDIT50W1,SUPERGRID1,SUPERGRID2,_WwG1

Ich habe alle Leerzeichen aus dem entsprechenden Autohotkey-Dokument entfernt:

Eine durch Kommas getrennte Liste von Zeichenfolgen, von denen jede mit dem Inhalt von Var für eine Übereinstimmung verglichen wird. Alle Leerzeichen oder Tabulatoren um die Begrenzungskommas sind von Bedeutung, dh sie sind Teil der Übereinstimmungszeichenfolge. Wenn MatchList beispielsweise auf ABC, XYZ festgelegt ist, muss Var entweder ABC mit einem nachgestellten Leerzeichen oder XYZ mit einem führenden Leerzeichen enthalten, um eine Übereinstimmung zu bewirken.

Fenstererkennung

#IfWinActive - Microsoft Outlook ahk_class rctrl_renwnd32

Das "NUIDocumentWindow" -Ding wird nicht angezeigt, wenn Windows Spy ausgeführt wird. Gleiches gilt für die entsprechende Zeile innerhalb der Tastensendefunktion:

IfWinActive, - Microsoft Outlook ahk_class rctrl_renwnd32
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.