AutoHotKey non funziona con Outlook 2010


13

Ho creato uno script AutoHotKey e l'ho compilato in un exe.

Ho quindi eseguito l'exe e ho eseguito Outlook 2010.

Quando provo a utilizzare i tasti di scelta rapida che ho definito, nella barra di stato viene visualizzato un errore che dice "Questa modifica non è consentita perché la selezione è bloccata".

Ho fatto un po 'di ricerca e quell'errore giunse per essere legato insieme a un finale di Trail. Ma sono a un computer di lavoro e non sto eseguendo una prova.

C'è un modo per risolvere questo problema?

ecco il mio file 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%
    }
}

Un altro suggerimento è che ciò può verificarsi se un documento è protetto. Non so se questo è rilevante, ma può darti un percorso per indagare?
Stuart McLaughlin,

Perché "Input SendMode;" linea due volte? È apposta o era solo un errore di copia e incolla?
sbtkd85,

Ciò non è correlato alla sicurezza avanzata introdotta da Microsoft in Outlook nel 2003?

Continuo a inciampare su questa domanda qui, e c'è una cosa che mi viene in mente ogni volta: perché mai non fai questa domanda sul forum AutoHotkey? Esiste un'enorme competenza laggiù per questo tipo di problemi.
utente 99572 va bene il

Hai controllato per assicurarti che Outlook sia stato attivato? Puoi verificarlo andando su File-> Aiuto.
cmorse

Risposte:


1

Non ho riscontrato il tuo errore, ma ho scoperto un possibile punto di errore e altre due cose. Magari correggendoli o almeno giocando con i parametri.

Elenco di controllo con controlli pertinenti

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

Ho rimosso tutti gli spazi, citando dal relativo documento Autohotkey:

Un elenco di stringhe separate da virgole, ognuna delle quali verrà confrontata con il contenuto di Var per una corrispondenza. Tutti gli spazi o le schede attorno alle virgole di delimitazione sono significativi, nel senso che fanno parte della stringa di corrispondenza. Ad esempio, se MatchList è impostato su ABC, XYZ, Var deve contenere ABC con uno spazio finale o XYZ con uno spazio iniziale per causare una corrispondenza.

Rilevamento di finestre

#IfWinActive - Microsoft Outlook ahk_class rctrl_renwnd32

La cosa "NUIDocumentWindow" non viene visualizzata quando eseguo Window Spy. Lo stesso vale per la riga pertinente all'interno della funzione di invio chiave:

IfWinActive, - Microsoft Outlook ahk_class rctrl_renwnd32
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.