AutoHotKey ne fonctionne pas avec Outlook 2010

13

J'ai créé un script AutoHotKey et l'ai compilé en un exe.

J'ai ensuite exécuté l'exe et exécuté Outlook 2010.

Lorsque j'essaie d'utiliser mes raccourcis clavier que j'ai définis, j'obtiens une erreur dans la barre d'état disant "Cette modification n'est pas autorisée car la sélection est verrouillée".

J'ai fait quelques recherches et cette erreur semble être liée à une fin de Trail. Mais je suis devant un ordinateur de travail et je ne fais pas d'essai.

Y'a t'il un moyen d'arranger cela?

voici mon fichier 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
la source
Une autre suggestion est que cela peut se produire si un document est protégé. Je ne sais pas si cela est pertinent, mais peut-être vous donner un itinéraire pour enquêter?
Stuart McLaughlin
Pourquoi le "SendMode Input;" ligne deux fois? Est-ce intentionnel ou s'agissait-il simplement d'une erreur de copier-coller?
sbtkd85
N'est-ce pas lié à la sécurité renforcée introduite par Microsoft dans Outlook en 2003?
Je continue de trébucher sur cette question ici, et il y a une chose qui me vient à l'esprit à chaque fois: pourquoi diable ne posez-vous pas cette question sur le forum AutoHotkey? Il existe une énorme expertise là-bas pour ce genre de problèmes.
utilisateur 99572 va bien
Avez-vous vérifié que Outlook a bien été activé? Vous pouvez le vérifier en allant dans Fichier-> Aide.
cmorse

Réponses:

1

Je n'ai pas compris votre erreur mais j'ai découvert un point d'échec possible et deux autres choses. Peut-être les corriger ou du moins jouer avec les paramètres.

Liste de contrôle avec contrôles pertinents

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

J'ai supprimé tous les espaces, citant du document Autohotkey pertinent:

Une liste de chaînes séparées par des virgules, chacune étant comparée au contenu de Var pour une correspondance. Tous les espaces ou tabulations autour des virgules de délimitation sont significatifs, ce qui signifie qu'ils font partie de la chaîne de correspondance. Par exemple, si MatchList est défini sur ABC, XYZ, alors Var doit contenir soit ABC avec un espace de fin, soit XYZ avec un espace de début pour provoquer une correspondance.

Détection de fenêtre

#IfWinActive - Microsoft Outlook ahk_class rctrl_renwnd32

La chose "NUIDocumentWindow" n'apparaît pas lorsque j'utilise un espion de fenêtre. Il en va de même pour la ligne concernée dans la fonction d'envoi de clé:

IfWinActive, - Microsoft Outlook ahk_class rctrl_renwnd32
joweiser
la source