AutoHotKey không hoạt động với Outlook 2010


13

Tôi đã tạo một tập lệnh AutoHotKey và biên dịch nó thành một exe.

Sau đó tôi chạy exe và chạy Outlook 2010.

Khi tôi cố gắng sử dụng các phím nóng của mình, tôi đã xác định rằng tôi gặp lỗi trong thanh trạng thái với nội dung "Điều chỉnh này không được phép vì lựa chọn bị khóa".

Tôi đã thực hiện một số nghiên cứu và các đường nối lỗi được gắn với nhau bằng một kết thúc Trail. Nhưng tôi đang ở một máy tính làm việc và tôi không chạy thử nghiệm.

Có cách nào để sửa lỗi này?

đây là tập tin ahk của tôi

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

Một đề nghị khác là điều này có thể xảy ra nếu một tài liệu được bảo vệ. Tôi không biết điều này có liên quan không, nhưng có thể cho bạn một lộ trình để điều tra không?
Stuart McLaughlin

Tại sao "Đầu vào SendMode;" dòng hai lần? Đó có phải là mục đích hay đó chỉ là một lỗi sao chép và dán?
sbtkd85

Đây có phải là không liên quan đến bảo mật nâng cao được Microsoft giới thiệu cho Outlook vào năm 2003 không?

Tôi cứ vấp phải câu hỏi này ở đây, và có một điều luôn xuất hiện trong đầu tôi: Tại sao bạn không hỏi câu hỏi này trên diễn đàn AutoHotkey? Có chuyên môn rất lớn ở đó cho loại vấn đề này.
người dùng 99572 vẫn ổn

Bạn đã kiểm tra để đảm bảo rằng Outlook đã được kích hoạt chưa? Bạn có thể kiểm tra điều này bằng cách vào File-> Help.
cmorse

Câu trả lời:


1

Tôi không nhận được lỗi của bạn nhưng phát hiện ra một điểm có thể thất bại và hai điều khác. Có thể sửa những cái đó hoặc ít nhất là chơi xung quanh với các tham số.

Danh sách kiểm tra với các điều khiển có liên quan

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

Tôi đã xóa tất cả các khoảng trắng, trích dẫn từ tài liệu Autohotkey có liên quan:

Một danh sách các chuỗi được phân tách bằng dấu phẩy, mỗi chuỗi sẽ được so sánh với nội dung của Var cho một trận đấu. Bất kỳ khoảng trắng hoặc tab nào xung quanh dấu phẩy phân cách đều có ý nghĩa, có nghĩa là chúng là một phần của chuỗi khớp. Ví dụ: nếu MatchList được đặt thành ABC, XYZ thì Var phải chứa ABC có dấu cách hoặc XYZ có khoảng trắng ở đầu để tạo kết quả khớp.

Phát hiện cửa sổ

#IfWinActive - Microsoft Outlook ahk_class rctrl_renwnd32

Điều "NUIDocumentWindow" không xuất hiện khi tôi đang chạy gián điệp cửa sổ. Tương tự với dòng liên quan trong chức năng gửi khóa:

IfWinActive, - Microsoft Outlook ahk_class rctrl_renwnd32
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.