AutoHotKey nie działa z programem Outlook 2010

13

Utworzyłem skrypt AutoHotKey i skompilowałem go do pliku exe.

Następnie uruchomiłem exe i uruchomiłem program Outlook 2010.

Podczas próby użycia zdefiniowanych przeze mnie skrótów klawiszowych na pasku stanu pojawia się komunikat „Ta modyfikacja jest niedozwolona, ​​ponieważ wybór jest zablokowany”.

Zrobiłem kilka badań i ten szew ma być związany z zakończeniem Trail. Ale jestem przy komputerze roboczym i nie prowadzę wersji próbnej.

Czy istnieje sposób, aby to naprawić?

oto mój plik ahk

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%
    }
}
Chris Watts
źródło
Inną sugestią jest to, że może to nastąpić, jeśli dokument jest chroniony. Nie wiem, czy to jest istotne, ale może dać ci drogę do zbadania?
Stuart McLaughlin
Dlaczego „SendMode Input;” linia dwa razy? Czy to celowo, czy był to tylko błąd kopiowania i wklejania?
sbtkd85
Czy nie jest to związane ze zwiększonym bezpieczeństwem wprowadzonym przez Microsoft do programu Outlook w 2003 roku?
Wciąż potykam się o to pytanie i za każdym razem przychodzi mi do głowy jedna rzecz: dlaczego, do cholery, nie zadajesz tego pytania na forum AutoHotkey? Istnieje ogromna wiedza specjalistyczna w zakresie tego rodzaju problemów.
użytkownik 99572 ma się dobrze
Czy sprawdziłeś, czy program Outlook został aktywowany? Możesz to sprawdzić, przechodząc do Plik-> Pomoc.
cmorse,

Odpowiedzi:

1

Nie dostałem twojego błędu, ale odkryłem jeden możliwy punkt awarii i dwie inne rzeczy. Może poprawienie tych lub przynajmniej zabawę z parametrami.

Lista kontrolna z odpowiednimi kontrolami

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

Usunąłem wszystkie spacje, cytując z odpowiedniego dokumentu Autohotkey:

Rozdzielona przecinkami lista ciągów, z których każdy zostanie porównany z zawartością Var dla dopasowania. Wszelkie spacje lub tabulatory wokół przecinków ograniczających są znaczące, co oznacza, że ​​są częścią ciągu dopasowania. Na przykład, jeśli MatchList jest ustawiony na ABC, XYZ, wtedy Var musi zawierać ABC ze spacją końcową lub XYZ z wiodącą spacją, aby spowodować dopasowanie.

Wykrywanie okna

#IfWinActive - Microsoft Outlook ahk_class rctrl_renwnd32

Funkcja „NUIDocumentWindow” nie pojawia się, gdy uruchamiam szpiega okien. To samo dotyczy odpowiedniej linii w ramach funkcji wysyłania klucza:

IfWinActive, - Microsoft Outlook ahk_class rctrl_renwnd32
joweiser
źródło