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. 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\
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\
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
@
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\
@
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
@
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
Code: Select all
SCW\$$WIN
MPO\o\$$XPO,$$YPO
:out