Outlook 2010: Skripte und Code in einem benutzerdefinierten Formular werden nicht ausgeführt

Problem:
Man hat ein benutzerdefiniertes Outlook-Formular erstellt und darin Skripte bzw. Code hinterlegt.
Wenn man das Formular testweise ausführt, klappt alles ohne Probleme.
Wenn man das Formular veröffentlicht und dann versucht das Skript per Button o.ä. auszuführen, passiert nichts!
Das Problem tritt nur bei Clients mit OUTLOOK 2010 auf.

Lösung:
Seit Outlook 2010 wird per default das Ausführen von Code in öffentlichen Ordnern verhindert.
Dies kann umgangen werden, in dem man folgende Änderung in der Registry durchführt:
HKCU\Software\Microsoft\Office\14.0\Outlook\Security

DWORD Entry: PublicFolderScript

Value: 1

Nach einem Outlook-Neustart funktioniert das Formular problemlos.

In der unten genannten Quelle findet man auch einen Lösungsweg per Policy mit ADM-Datei.

Quelle: faq-o-matic.net: Homepage für Öffentliche Ordner in Outlook 2010 anzeigen

VBS / WSH Funktion um Meldungen auszugeben je nach Interpreter

Problem :

Wenn man ein VBS Skript schreibt und Meldungen ausgeben möchte stehen einem mehrere Wege zur Verfügung die gängigsten sind eine MsgBox und WScript.Echo das Echo wird meistens verwendet wenn das Skript über cscript.exe gestartet wird , startet man es dann mit wscript.exe bekommt man für jede Zeile die ein Echo enthällt eine gesonderte Messagebox (MsgBox)

Lösung :

Ich hab hier eine kleine Funktion geschrieben die ermittelt über welchen Interpreter wscript / cscript das Skript gestartet wurde und die Meldung anpasst.


Function ShowMessage(MSG,Titel)
Dim StrScriptInt : StrScriptInt = LCase(WScript.FullName)
' --- Check Interpreter
If Right(StrScriptInt,11) = "wscript.exe" Then
	MsgBox MSG,vbOKOnly + vbInformation,Titel
Else
	WScript.Echo Titel & "--------------" & vbCrLf & MSG & vbCrLf
End If
End Function

Neues Tool zum umziehen von Druckern

Problem :

Der Name des Druckservers hat sich verändert und soll jetzt automatisch beim anmelden der user in den verbundenen Drucker korrigiert werden.
Getestet mit Win 2000 / XP / 7

Lösung :

Ich hab mich ran gesetzt und eine neue Version ohne speichern auf File System Ebene geschrieben.

Hier die möglichen Parameter :


-o:[Servername] or /o:[Servername] = old print server
-n:[Servername] or /n:[Servername] = new print server
-l:[Logfile] or /l:[Logfile] = create an Logfile (path:filename)
-? or /? = shows this help

replace [Servername] with the hostname / ip-adress without [ and ]


Beispielaufruf sieht dann so aus :

Move_Printer.exe -o:ALTSERVER -n:NEUSERVER -l:C:\Logfile.txt


Download Tool : Move_Printer.exe (freier Download)

Hier der download des Source Codes : Source Code (nur für registrierte Mitglieder)

EXCEL VBS: Ermitlung letzte Zeile/Spalte im Worksheet

Problem:
Hier noch die Ermittlung der letzten Zeile/Spalte unter VBS in Excel

Lösung:

VBS
'letzte Zeile in "A" suchen
Zeilenanzahl = objXLS.Cells(objXLS.Rows.Count, 1).End(xlUp).Row

'letzte Spalte in Zeile 1 suchen
Spaltenanzahl = LZ = objXLS.Cells(objXLS.Columns.Count, 1).End(xlUp).Column


Selbstverständlich benötigen wir hierzu noch das entsprechende Objekt und eine Excel Workbook:

'Excel-Objekt und Workbook erstellen
set objXLS = CreateObject("Excel.Application")
set objWB = objXLS.Workbooks
objWB.Add

VBS Progress Bar

Problem:

Man möchte den einen Fortschrittsbalken in VBS anzeigen , leider bringt VBS diese Funktion nicht mit dadurch muss man den Internet Explorer verwenden

Lösung :

North Atlanta Web Design hat eine Super Klasse dafür geschrieben, so umgeht man den Weg über HTA

hier gehts zum Code : VBS Class ProgressBar

VBS Funktion: ungelesene Mails im Posteingang von Outlook ermitteln

Funktion zur Ermittlung der ungelesenen Nachrichten im Posteingang von Outlook.
Outlook muß installiert sein!
Läuft auch unter Outlook 2010.

Function unread_mails()
'Funktion zum überprüfen auf neue Mails im Ordner "Posteingang"
'In Variable "u" wird die Anzahl der ungelesenen Nachrichten übergeben

Dim unread_items, mapi, inbox, mail

Set outObj = CreateObject("Outlook.Application")

u = 0 'Zähler ungelesene Nachrichten zurücksetzen
    
Set mapi = outObj.GetNamespace("MAPI")
Set inbox = mapi.GetDefaultFolder(6) 'Zeiger auf Posteingang setzten - Posteingang = Folder(6)

For Each mail In inbox.Items 'überprüfen auf ungelesene Mails
	If mail.unread Then unread_items = unread_items + 1
Next

'Ausgabe als Msgbox
MsgBox "Sie haben " & unread_items & " ungelesene Mails in Ihrem Posteingang", vbOKOnly, "Posteingang überprüft"

End Function
“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)