AutoHotKey ไม่ทำงานกับ Outlook 2010


13

ฉันสร้างสคริปต์ AutoHotKey และรวบรวมเป็น exe

จากนั้นฉันก็รัน exe และเรียกใช้ Outlook 2010

เมื่อฉันพยายามใช้ปุ่มลัดที่ฉันกำหนดฉันได้รับข้อผิดพลาดในแถบสถานะว่า "ไม่อนุญาตให้ทำการดัดแปลงเนื่องจากการเลือกถูกล็อค"

ฉันได้ทำการตรวจสอบซ้ำแล้วและตะเข็บข้อผิดพลาดนั้นถูกเชื่อมโยงกับการสิ้นสุด Trail แต่ฉันอยู่ที่คอมพิวเตอร์ทำงานและฉันไม่ได้ทดลองใช้

มีวิธีแก้ไขปัญหานี้หรือไม่?

นี่คือไฟล์ 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%
    }
}

ข้อเสนอแนะอีกประการหนึ่งคือสิ่งนี้สามารถเกิดขึ้นได้หากเอกสารได้รับการคุ้มครอง ฉันไม่รู้ว่าสิ่งนี้เกี่ยวข้องหรือไม่ แต่อาจมอบเส้นทางให้คุณตรวจสอบ
Stuart McLaughlin

ทำไม "SendMode Input" บรรทัดที่สอง เป็นไปตามวัตถุประสงค์หรือเป็นเพียงข้อผิดพลาดในการคัดลอกและวาง
sbtkd85

สิ่งนี้ไม่เกี่ยวข้องกับการรักษาความปลอดภัยขั้นสูงที่ Microsoft นำมาใช้กับ Outlook ในปี 2003 หรือไม่?

ฉันสะดุดคำถามนี้ต่อไปและมีสิ่งหนึ่งที่ทำให้ฉันนึกถึงทุกครั้ง: ทำไมคุณไม่ถามคำถามนี้บนฟอรัม AutoHotkey มีความเชี่ยวชาญอย่างมากสำหรับปัญหาประเภทนี้
ผู้ใช้ 99572 ใช้ได้

คุณตรวจสอบเพื่อให้แน่ใจว่าเปิดใช้งาน Outlook แล้วหรือยัง คุณสามารถตรวจสอบสิ่งนี้ได้โดยไปที่ File-> Help
cmorse

คำตอบ:


1

ฉันไม่ได้รับข้อผิดพลาดของคุณ แต่ค้นพบจุดหนึ่งที่เป็นไปได้ของความล้มเหลวและอีกสองสิ่ง อาจแก้ไขเหล่านั้นหรืออย่างน้อยก็เล่นกับพารามิเตอร์

รายการตรวจสอบที่มีการควบคุมที่เกี่ยวข้อง

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

ฉันลบช่องว่างทั้งหมดโดยอ้างจากเอกสาร Autohotkey ที่เกี่ยวข้อง:

รายการสตริงที่คั่นด้วยเครื่องหมายจุลภาคซึ่งแต่ละรายการจะถูกเปรียบเทียบกับเนื้อหาของ Var สำหรับการจับคู่ ช่องว่างหรือแท็บใด ๆ รอบเครื่องหมายจุลภาคที่มีความสำคัญหมายถึงพวกเขาเป็นส่วนหนึ่งของการจับคู่สตริง ตัวอย่างเช่นหาก MatchList ถูกตั้งค่าเป็น ABC XYZ จะต้องมี ABC ด้วยช่องว่างต่อท้ายหรือ XYZ พร้อมช่องว่างนำหน้าเพื่อให้เกิดการแข่งขัน

การตรวจจับหน้าต่าง

#IfWinActive - Microsoft Outlook ahk_class rctrl_renwnd32

สิ่งที่ "NUIDocumentWindow" ไม่ปรากฏขึ้นเมื่อฉันใช้สายลับหน้าต่าง กันไปสำหรับสายที่เกี่ยวข้องภายในการส่งคีย์ฟังก์ชั่น:

IfWinActive, - Microsoft Outlook ahk_class rctrl_renwnd32
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.