ControlFocus / ControlSend in Outlook Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

aifritz
Posts: 301
Joined: 29 Jul 2018, 11:30
Location: Germany

ControlFocus / ControlSend in Outlook  Topic is solved

20 Oct 2018, 05:14

Hallo zusammen,

der u.g. Hotkey F2 soll in einer Outlookmail (bei mir Outlook 2013) über ein Auswahlmenü einen Text in der ersten Zeile einer Mail einfügen.
Das Senden von {Ctrl down}{Home}{Ctrl up} zum Sprung an den Anfang der Mail funktioniert allerdings nur, wenn sich der Cursor bereits in dem Body der Mail befindet.

Steht der Cursor hingegen in der E-Mail Adresszeile, wird zwar das Bodyfeld der Mail aktiviert, jedoch klappt der Sprung in die erste Zeile nicht mehr, d.h. der Text wird gerade an der Stelle eingefügt, wo zuletzt der Cursor in der Mail stand. Hat jemand eine Idee, warum das nicht klappt?

Habe auch schon an allen möglichen Stellen Sleep-Befehle ohne Erfolg eingefügt :?

Code: Select all

#Persistent  ;Hält das Script aufrecht, bis der Benutzer es beendet.
SetTitleMatchMode, Regex
return

#IfWinactive Nachricht ahk_class rctrl_renwnd32
F2:: ;;zeige in einer Outlook-Mail ein Menü zum Einfügen von Text an
MouseGetPos, , , ID ;ermittle die ahk_id unter der Maus
ControlFocus, _WwG1, ahk_id %ID% ;aktiviere den Body der Mail
ControlSend, _WwG1, {Ctrl down}{Home}{Ctrl up}, ahk_id %ID% ;setze den Cursor in Zeile 1
Menu, MyMenu1, Add, &1. Text 1, t1
Menu, MyMenu1, Add, &2. Text 2, t2
Menu, MyMenu1, Show
return
#IfWinactive

t1:
Send Dies ist Text 1`n
return

t2:
Send Dies ist Text 2`n
return

User avatar
moefr01
Posts: 115
Joined: 25 Nov 2015, 09:01
Location: Germany

Re: ControlFocus / ControlSend in Outlook

22 Oct 2018, 03:11

Wie wäre es mit:

Code: Select all

…
t1:
Send Dies ist Text 1`n
ControlSend, _WwG1, {Ctrl down}{Home}{Ctrl up}, ahk_id %ID%     ;setze den Cursor wieder an Homeposition
return

t2:
Send Dies ist Text 2`n
ControlSend, _WwG1, {Ctrl down}{Home}{Ctrl up}, ahk_id %ID%     ;setze den Cursor wieder an Homeposition
return
Seltsamerweise funktioniert ControlSend an den Outlook-Textbody nicht bei fremdfokusiertem Control... deshalb die Repositionierung gleich nach der Menüauswahl.
8-) moefr01
aifritz
Posts: 301
Joined: 29 Jul 2018, 11:30
Location: Germany

Re: ControlFocus / ControlSend in Outlook

22 Oct 2018, 13:39

Vielen Dank für Deinen Tipp! ich werde es morgen gleich mal probieren, obwohl ich es nicht so recht verstehe. :crazy:
Allerdings müsste zuerst der Sprung nach oben und dann der Text gesendet werde...ich denke so hattest Du es bestimmt auch gedacht...
User avatar
moefr01
Posts: 115
Joined: 25 Nov 2015, 09:01
Location: Germany

Re: ControlFocus / ControlSend in Outlook

23 Oct 2018, 01:02

ist eigentlich selbsterklärend :eh: :
da leider der Cursor aus dem fokussierten Empfängerfeld heraus nicht an die gewünschte Textbody-Homeposition springt, positioniert man den Cursor einfach nach dem Einfügen... jetzt ist die Cursorposition im Textbody quasi einmal "verankert".
aifritz
Posts: 301
Joined: 29 Jul 2018, 11:30
Location: Germany

Re: ControlFocus / ControlSend in Outlook

24 Oct 2018, 09:35

Hallo moefr01,
nochmals vielen Dank für Deine Unterstützung. So funktioniert es bestens :D

Code: Select all

t1:
#Persistent  ;Hält das Script aufrecht, bis der Benutzer es beendet.
SetTitleMatchMode, Regex
return

#IfWinactive Nachricht ahk_class rctrl_renwnd32
F2:: ;;zeige in einer Outlook-Mail ein Menü zum Einfügen von Text an
MouseGetPos, , , ID ;ermittle die ahk_id unter der Maus
ControlFocus, _WwG1, ahk_id %ID% ;aktiviere den Body der Mail
Menu, MyMenu1, Add, &1. Text 1, t1
Menu, MyMenu1, Add, &2. Text 2, t2
Menu, MyMenu1, Show
return
#IfWinactive

t1:
ControlSend, _WwG1, {Ctrl down}{Home}{Ctrl up}, ahk_id %ID%     ;setze den Cursor wieder an Homeposition
Send Dies ist Text 1`n
return

t2:
ControlSend, _WwG1, {Ctrl down}{Home}{Ctrl up}, ahk_id %ID%     ;setze den Cursor wieder an Homeposition
Send Dies ist Text 2`n
return

return
User avatar
moefr01
Posts: 115
Joined: 25 Nov 2015, 09:01
Location: Germany

Re: ControlFocus / ControlSend in Outlook

24 Oct 2018, 10:38

hallo aifritz,
habe soeben deinen Code getestet, aber leider ergab sich wieder das gleiche Problem, wenn das Kontextmenü außerhalb vom body per F2 aufgerufen und eine Floskel ausgewählt wird: Kein Sprung zur HOME-Position im body :think:

Code: Select all

#Persistent   ;Hält das Script aufrecht, bis der Benutzer es beendet.
SetTitleMatchMode, Regex
return

#IfWinactive Nachricht ahk_class rctrl_renwnd32
F2::   ;zeige in einer Outlook-Mail ein Menü zum Einfügen von Text an
MouseGetPos, , , ID   ;ermittle die ahk_id unter der Maus
ControlFocus, _WwG1, ahk_id %ID%   ;aktiviere den Body der Mail
Menu, MyMenu1, Add, &1. Text 1, t1
Menu, MyMenu1, Add, &2. Text 2, t2
Menu, MyMenu1, Show
return
#IfWinactive

t1:
ControlFocus, _WwG1, ahk_id %ID%   ;aktiviere den Body der Mail
ControlSend, _WwG1, {Ctrl down}{Home}{Ctrl up}, ahk_id %ID%   ;setze den Cursor wieder an Homeposition
Send Dies ist Text 1`n
return

t2:
ControlFocus, _WwG1, ahk_id %ID%   ;aktiviere den Body der Mail
ControlSend, _WwG1, {Ctrl down}{Home}{Ctrl up}, ahk_id %ID%   ;setze den Cursor wieder an Homeposition
Send Dies ist Text 2`n
return

return
...war so frei und habe deinen Code etwas bereinigt.... jetzt funzt es hoffentlich wie erwartet.
:thumbup: moefr01
aifritz
Posts: 301
Joined: 29 Jul 2018, 11:30
Location: Germany

Re: ControlFocus / ControlSend in Outlook

26 Oct 2018, 01:20

Das ist seltsam... bei mir funktioniert das Skript (mit Outlook 2013) ohne Problem auch ohne nochmalige Aktivierung des Body. Vielleicht hat es ja etwas mit der Geschwindigkeit des Rechners zu tun.

Deine Variante dürfte aber für eine größere Sicherheit sorgen... :bravo:

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 26 guests