AutoHotKey не работает с Outlook 2010


13

Я создал скрипт AutoHotKey и скомпилировал его в исполняемый файл.

Затем я запустил exe и запустил Outlook 2010.

Когда я пытаюсь использовать свои горячие клавиши, которые я определил, в строке состояния появляется сообщение о том, что «это изменение не разрешено, потому что выбор заблокирован».

Я сделал некоторые исследования и эту ошибку, чтобы связать их с окончанием Трейла. Но я за рабочим компьютером, и у меня нет пробной версии.

Есть ли способ это исправить?

вот мой файл ахк

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%
    }
}

Другое предложение состоит в том, что это может произойти, если документ защищен. Я не знаю, имеет ли это отношение, но может дать вам путь для расследования?
Стюарт Маклафлин

Почему «Ввод SendMode»; линия дважды? Это специально или это просто ошибка копирования и вставки?
sbtkd85

Не связано ли это с улучшенной безопасностью, введенной Microsoft в Outlook в 2003 году?

Я все время спотыкаюсь об этом вопросе, и каждый раз мне приходит в голову одна вещь: с какой стати вы не задаете этот вопрос на форуме AutoHotkey? Там есть огромный опыт для такого рода проблем.
Пользователь 99572 в порядке

Вы проверяли, что Outlook активирован? Вы можете проверить это, зайдя в Файл-> Справка.
cmorse

Ответы:


1

Я не получил вашу ошибку, но обнаружил одну возможную точку отказа и две другие вещи. Возможно, исправление этих или, по крайней мере, игра с параметрами.

Контрольный список с соответствующими элементами управления

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

Я удалил все пробелы, ссылаясь на соответствующий документ Autohotkey:

Список строк через запятую, каждая из которых будет сравниваться с содержимым Var для соответствия. Любые пробелы или табуляции вокруг запятых с разделителями являются значительными, это означает, что они являются частью строки соответствия. Например, если для MatchList установлено значение ABC, XYZ, тогда Var должен содержать либо ABC с завершающим пробелом, либо XYZ с начальным пробелом, чтобы вызвать совпадение.

Обнаружение окна

#IfWinActive - Microsoft Outlook ahk_class rctrl_renwnd32

«NUIDocumentWindow» не отображается, когда я запускаю окно шпиона. То же самое касается соответствующей строки в функции отправки ключа:

IfWinActive, - Microsoft Outlook ahk_class rctrl_renwnd32
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.