Outlook 2016-Buttonbar-Macros mit dem MPR

Moderator: MVogt

Post Reply
User avatar
Theo_Gottwald
Posts: 367
Joined: 03. Oct 2009, 08:57
Location: Herrenstr.11 * 76706 Dettenheim
Contact:

Outlook 2016-Buttonbar-Macros mit dem MPR

Post by Theo_Gottwald » 11. Apr 2018, 13:37

Thema: "Hinzufügen eigener Funktionen zu Office-Programmen".
Hier als Beispiel eine Buttonbar die sich rechts an das Outlook 2016 anhängt und die (hier) über 2 Buttons
user-spezifische Automatisierungen abspielt.

Es geht also darum, an eine Office-Anwendung rechts eine zusätzliche Buttonbar anzuhängen,
die auf jedem Button Automatisierungen hat die man per Knopfdruck aktivieren kann.
Dieses Skript kann man umändern, für beliebige andere (Office-?)Programme, und natürlich kann man auch mehr Buttons und andere Funktionen hinterlegen.

In diesem konkreten Fall geht es um SPAM-Mails. Es kommen ja doch noch genug durch.
Zwar kann man diese schnell markieren und löschen, aber besser ist doch:
"Junk-E-Mail" -> Absender blockieren.
Denn nur dann kann man zukünftige Mails von diesem Absender blockieren.

Wenn da nun 20 Junk Mails da sind, muß man 20 Mal diese Menüklicks machen.
Da hat sich seit Outlook 2003 wohl nichts geändert außer dem Menütext.

Hier setzt die (Beispiel-)Funktionalität unserer Outlook-SPAM-Blockier-Buttonbar an.
Funktionen:
Button 1: Wird er geklickt geht die Buttonbar in den Aktiv-Modus. Von da an genügt es auf eine der SPAM Mails ein Mal zu klicken, die restlichen Klicks erledigt dann das Plugin.
Dieser Modus ist nützlich wenn die SPAM Mails zwischen den erwünschten Mails sozusagen bunt gemischt ankommen.

Button 2: Wird er geklickt kommt zunächst eine Messagebox, die nachfragt wieviele SPAM MAILS nacheinander "blockiert" werden sollen. Hier kann man eine beliebige Zahl angeben.
Nach dem Man die Zahl angegeben hat, ist man in dem Aktiv-Modus wie mit "Button 1".
Man klickt nun einfach mit links auf die oberste der (zig-)SPAM-Mails.
Die Buttonbar "junked" nun nacheinander die gewählte Anzahl Mails, eine nach der anderen.
Man kann solange vom Computer weg gehen und etwas anderes machen.

Button 3: Ende Button, beendet das PlugIn.

ACHTUNG: Dieses Plugin übernimmt die Kontrolle über die Maus. Klickt man fehlerhaft irgendwo anders hin, dann muß man die FESTSTELLTASTE-Taste drücken um die Kontrolle über die Maus zurückzubekommen.
Ist die Feststelltaste aktiviert beendet sich das Skript.

Das Beispielskript (Quellcode) kann man hier herunterladen.
Outlook 2016.zip
MPR Buttonbar für Outlook 2016
(3.58 KiB) Downloaded 276 times
Zur Absicherung gibt es ein kleines Unterprogramm im Skript.

Code: Select all

' Sicherheitsprüfung: Drücken der Feststelltaste beendet die Aktion!
:Safe
' Prüfe den Status der Feststelltaste
IKD\20
   SKA\20
   END\
EKD\
RET\
Die eigentliche Arbeit macht dabei das Unterprogramm "JunkIt.rem". Da wird das Menü im Outlook aufgerufen.

Code: Select all

' Junk E-Mail
VAR\$$MBO=$v1$
IVV\$$MBO=r
   GOTO out
EVV\
GSB\Safe

STW\rctrl_renwnd32\outlook|w31
SPC\outlookgrid\tabellenansicht|w31

HTV\$$WIN
MIW\
VAR\$$XPO=$v1$
VAR\$$YPO=$v2$
:retry
GCT\
SPC\outlookgrid\tabellenansicht|w31
MPO\o\$$XPO,$$YPO
MRC\
IWF\1
   GTW\net ui tool window\*
   ECH\
ELSE
   GSB\Safe
   GOTO retry
EWF\
WII\5 
AGR\0|12\Junk-E-Mail\\\\:retry
MMV\
WII\5
TDL\100
' Nächstes Menü
GTW\net ui tool window\*|x
WII\5
AGR\0|12\Absender sperren\\\\:retry
MMV\
MLI\
ECH\0
SCW\$$WIN
MPO\o\$$XPO,$$YPO
:out
@

' Sicherheitsprüfung: Drücken der Shift-Taste beendet die Aktion!
:Safe
IKD\20
   SKA\20
   END\
EKD\
RET\
Das eigentliche Skript für die Buttons gestaltet sich da relativ kurz, hier Button 1:

Code: Select all

' Alle Variablen sichern
VVS\
' Warte auf einen Mausklick des Anwenders (Klick im Outlook auf eine SPAM-Mail).
' Rufe dann das Unterprogramm "doit" auf.
:more
WUA\12||:doit
VVR\
@
:doit
JNF\JunkIt.rem
IVV\$$MBO=r
   GOTO out
EVV\
GOTO more
:out
@
Button 2 bekommt zusätzlich noch eine Zählschleife. Und die Maus muß nach jedem Durchgang wieder auf den Originalplatz positioniert werden.

Code: Select all

VVS\
GIP\Wieviele Mails sollen gejunked werden?|Junk it|3
CAL\$$CNX=$v1$-1
VAR\$$CNR=1

WUA\12||:doit
:Loop
IVV\$$CNR>$$CNX
   GOTO out
ELSE
   VIC\$$CNR 
EVV\
GOTO doit
@
:doit
JNF\JunkIt.rem
SCW\$$WIN
MPO\o\$$XPO,$$YPO
GOTO Loop

:out
' Warte 1/2 Sekunde
TDL\500
VVR\
@
Beim MPR und der Buttonbar ist es so, dass man für jeden Button ein eigenes Unterskript mit der Automatisierung hat.
Und zur Initialisierung ein "Main-Skript". Und das sieht so aus:

Code: Select all

' +++ main_Outlook-Buttonbar.rem +++
' Zweck: 
' erstellt am: 18.04.2015
' von: Theo Gottwald
'========================
'#EXE:?path
'#SPI:ForceWrite
'#SPI:VBRun
'#SPI:NoAuto
'#SPI:x64
'#FDC:Outlook-Buttonbar
'#ICS:11
' Ich schreibe mal drüber was jede Zeile macht.

' Kill all running Robots
KRM\2

' Der folgende Block prüft ob Outlook schon läuft und falls nicht startet er das Outlook

' If Window found
IWF\0
   ' Sucht nach dem Outlook-Fenster
   STW\rctrl_renwnd32\- outlook
ELSE
   ' Wenn Outlook nicht geöffnet, starte Outlook
   EXR\outlook
' End-If Window found
EWF\

' Das Outlook-Fenster fokussieren/lokalisieren
STW\rctrl_renwnd32\- outlook

' Ab hier gehts um das Plugin - also die Buttonbar
' PIL -PlugIn Launch (startet die Buttonbar)
PIL\01

' PID - PlugIn Dock (Plugin andocken - ro2 -> rechts oben Position 2)
PID\ro2

' "PDP\[dx][cy][tz][n]"	' setzt erweiterte Docking-Parameter die das Verhalten der Buttonbar beeinflussen
PDP\d1c1t5

' PIS - PlugInSHow - ab jetzt wird die Buttonbar sichtbar
PIS\

' Make Window transparent (10%)
MWT\$pih$|10

' Das hier ist die Abfrageschleife wo die CLicks des Plugin ausgewertet werden.
:again
PCI\30
GOTO again
@
Sodann benötigt man noch eine Datei mit dem Namen "Plugin01.ini".
Diese konfiguriert die Buttonbar. Meistens nimmt man einfach das Beispiel und ändert die wenigen Stellen.
Diese "INI-Datei" sieht so aus (unten) und liegt im Ordner wo auch das Skript liegt.

Code: Select all

; Sample for Plugin01.exe
; General Settings

[Layout]
Titlebar  = True            ; Titelleiste True/False
InTaskbar = False   		; Plugin in Taskleiste sichtbar (Default: False). 
Icon      = plugin.ico      ; eigenes Icon für PI (muß neben INI-Datei liegen)
Startpos  = 500,500         ; Startposition x,y in Pixel
Display   = False           ; Sichtbar bei Programmstart (Default: True)
MainColor = 			    ; Fenster-Hintergrundfarbe   (Default: System)
Use_Send  = True
; Hier werden die Button-Parameter gesetzt 
; Here the button parameter will be set 
Width     = 100             ; Breite in Pixel  (maximale Textlänge beachten!)   
Height    = 30              ; Höhe in Pixel    (Texthöhe bei Zeilenumbruch beachten!)   
Number    = 3               ; Anzahl (muß der maximal geforderten entsprechen)
Visible   = 3               ; Anzahl der bei Programmstart sichtbaren Button (Default: alle)
Margin    = 3               ; Randabstand zur Fensterkante in Pixel
Distance  = 3               ; vertikaler Buttonabstand in Pixel
BackColor = 		        ; Hintergrundfarbe (Default: System)
Forecolor =		            ; Schriftfarbe     (Default: schwarz)
Fontsize  =  			    ; Schriftgröße     (Default: 8)
Fontname  =                 ; Schriftart       (Default: MS Sans Serif)   
FontBold  = True            ; Bold             (Default: False)
FontItalic=                 ; Italic           (Default: False)
AdaptWidth= True            ; Automatische Anpassung der Breite an Text (Default: False)
Disable   =                 ; 0=kein, 1=der geklickte, 2=alle Button bis Beginn Abarbeitung
                            ; +10=bis Ende Abarbeitung (Default: 1)

[Help]
HelpWidth =                 ; Fensterbreite    (Default: 300 Pixel  
BackColor =                 ; Hintergrundfarbe (Default: pastellgelb)
Forecolor =                 ; Schriftfarbe     (Default: schwarz)
Fontsize  =                 ; Schriftgröße     (Default: 10 Pt)

[Remfiles]
1 = plgin_1.rem
2 = plgin_2.rem
3 = plgin_3.rem
;4 = plgin_4.rem
;5 = plgin_5.rem
;6 = plgin_6.rem
;7 = plgin_7.rem
;8 = plgin_8.rem
;menu = pi_menu.rem
;...

; Language dependend settings
; German textes/deutsche Texte
[1031]
Title = Mein Plugin     ; Titelbeschriftung; dieser Eintrag
                        ; ist nur wirksam bei Titlebar=True!


CC_01 = Junk it     
CC_02 = Junk mult.     
CC_03 = Beenden
;CC_04 = Button 4
;CC_05 = Button 5
;CC_06 = Button 6
;CC_07 = Button 7
;CC_08 = Beenden
;...
TT_01 =Klicken um Mails zu dumpen.
TT_02 =Klicken um viele Mails zu dumpen.
TT_03 = Beenden des AddOn
;TT_03 = Tooltip 3
;TT_04 = Tooltip 4
;TT_05 = Tooltip 5
;TT_06 = Tooltip 6
;TT_07 = Tooltip 7
;TT_08 = Beenden des AddOn

;...
Trayicon= plugin.ico

;...
Help_01 = Das ist der Hilfetext zum Button 1. Er enthält detaillierte Erläuterungen.
; Individual Help Window Width || Help Text
Help_02 = 400||Das ist der Hilfetext zum Button 2. Er enthält detaillierte Erläuterungen.
;...

; Other textes/andere Texte
[9999]
Title = My Plugin     ; Titelbeschriftung
CC_01 = Button 1      ; Button-Beschriftungen
CC_02 = Button 2
CC_03 = Button 3
;...
TT_01 = Tooltip 1
TT_02 = Tooltip 2
TT_03 = Tooltip 3
;...
Trayicon= Outlook 2003-PlugIn
24.04.18: Added 2 Lines to JunkIt.rem:

Code: Select all

SCW\$$WIN
MPO\o\$$XPO,$$YPO
:out

Post Reply

Return to “Package Robot”

Who is online

Users browsing this forum: No registered users and 5 guests