Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Outlook 2003 - Automatische Signaturengenerierung

Empfohlene Antworten

Veröffentlicht

Tag,

zukünftig werden bei uns Outlook Signaturen automatisch von einer Software erzeugt und an die entsprechende Stelle im Dateisystem gelegt.

Folgendes Problem besteht allerdings zurzeit noch:

Bei einer neuen E-Mail gibt es den Menüpunkt Einfügen | Signatur. Die Einträge hinter dem Menüpunkt werden nicht automatisch aktualisiert nach Löschen/Erzeugen von Signaturen.

Beispiel: Ich lösche alle vorhandenen Signaturen (in %appdata%\Microsoft\Signatures) mittels der Software. Anschließend legt das Programm die neu generierten Signaturen im selben Verzeichnis ab. Wird jetzt eine neue E-Mail verfasst, erscheinen in dem o.g. Menüeintrag (s. Anhang) weiterhin die Namen der alten Signaturen. Die Einträge verschwinden erst, wenn jeder einzelne Eintrag einmal angeklickt und die entsprechende Fehlermeldung bestätigt wurde.

Kennt einer eine Möglichkeit, diese Einträge automatisiert mittels Skript zu entfernen?

(Die Einträge werden hex-kodiert in der Registry abgespeichert unter "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook", wobei sich die Namen der Schlüssel und Werte von Client zu Client unterscheiden.)

post-41117-14430448431236_thumb.jpg

Zum entfernen (pro User), muss der folgende Eintrag in der Registry gelöscht werden:

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\<profile name>\0a0d020000000000c000000000000046\101f035c

Wenn die Profile alle gleich heißen, sollte es kein Problem sein.

Mich würde hingegen interessieren, die neu erstellte Signatur gleich dort zu verlinken.

Gruss,

tester2k5

  • Autor

Wenn die Profile alle gleich heißen, sollte es kein Problem sein.

Ja, genau dass ist das Problem. Die Profile heißen wie Sie wollen und ich meine, dass auch die Schlüssel nicht immer gleich heißen.

Mich würde hingegen interessieren, die neu erstellte Signatur gleich dort zu verlinken.

Wäre auch interessant, entspricht aber nicht dem Verhalten, wenn man mittels Outlook, eine Signatur anlegt. Die Namen der Signaturen existieren dort erst, wenn man diese einmal manuell eingefügt hat.

Paar Hilfen habe ich schon gefunden:

OL97: How to Use Command Bars in Outlook Solutions

OutlookCode.com :: Selecting Outlook 2007 signature on send

Re: per VBA das Feld "einfügen>Signatur>MeineSignatur" ansprechen

  • 5 Wochen später...
  • 2 Wochen später...

Der Code sollte dir weiterhelfen:


Const HKEY_CURRENT_USER = &H80000001


strComputer = "."

Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ 

	strComputer & "\root\default:StdRegProv")


strRootKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles"

objReg.EnumKey HKEY_CURRENT_USER, strRootKeyPath, arrSubKeys


For Each objSubKey In arrSubKeys

	WScript.Echo "Outlook Profile = " & objSubKey

Next


Set objReg = Nothing

Gruss,

tester2k5

  • 3 Wochen später...
  • Autor

So hier mal mein fertiges Skript, für die, die es interessiert:



' Name: 	OutlookSignaturenCache.vbs

' Datum:	04.10.2009

' 

Set objWSHShell 		= WScript.CreateObject("WScript.Shell")

Set oFS 				= CreateObject("Scripting.FileSystemObject")

Const st_TEMPFILE 		= "signature-temp.reg"


' Variablen definieren

SignatureName 			= "Signatur 1"

RegPath					= "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\"


' Outlook Standardprofil auslesen und mit dem Namen weiterarbeiten

OutlookProfile			= objWSHShell.RegRead(RegPath & "DefaultProfile")


' Der Wert der nachfolgenden Variable legt zwei Signatureinträge "Signatur 1" und "Signatur 2" an.

NeueSignatureEintraege	= "0a,00,00,00,2c,00,00,00,42,00,00,00,44,00,00,00,46,00,00,00,48,00,00,00,4a,00,00,00,4c,00,00,00,4e,00,00,00,50,00,00,00,52,00,00,00,53,00,69,00,67,00,6e,00,61,00,74,00,75,00,72,00,20,00,31,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,53,00,69,00,67,00,6e,00,61,00,74,00,75,00,72,00,20,00,32,00,00,00"


' Auswaehlen, ob neue Cache-Signatureintraege erzeugt werden oder die alten nur entfernt werden sollen.

ErzeugeNeueEintraege	= "1" 


' Erstellen der Registryeintraege fuer die Standard- und Antworte-Signatur

' (Outlook verwendet in der Registry REG_BINARY als Speichertyp. REG_SZ geht auch.)

' objWSHShell.RegWrite RegPath & OutlookProfile & "\9375CFF0413111d3B88A00104B2A6676\00000001\New Signature", SignatureName, "REG_SZ"

' objWSHShell.RegWrite RegPath & OutlookProfile & "\9375CFF0413111d3B88A00104B2A6676\00000001\Reply-Forward Signature", SignatureName, "REG_SZ"


' Alte Cache-Eintraege loeschen (Menuepunkt: Neue E-Mail | Einfügen | Signatur)

objWSHShell.RegDelete RegPath & OutlookProfile & "\0a0d020000000000c000000000000046\101f035c"



' Neue Cache-Eintraege anlegen

' Das Erzeugen neuer Eintraege geschieht ueber einen Umweg, da per VBA kein direktes Schreiben von Binaerwerten in die Registry moeglich ist.

' Als Erstes wird eine temporaere .reg-Datei erzeugt mit dem notwendigen Inhalt erzeugt, die dann in einem zweiten Schritt in die Registry geschrieben wird.

if ErzeugeNeueEintraege = "1" Then

	Set txtStream = oFS.CreateTextFile(st_TEMPFILE, true)

	txtStream.WriteLine("Windows Registry Editor Version 5.00")

	txtStream.WriteLine("")

	txtStream.WriteLine("[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\" & OutlookProfile & "\0a0d020000000000c000000000000046]")

	txtStream.WriteLine(chr(34) & "101f035c" & chr(34) & "=" & "hex:" & NeueSignatureEintraege )

	txtStream.Close

	objWshShell.Run "regedit /s " & st_TEMPFILE, 1, true

	oFS.DeleteFile st_TEMPFILE

End if


Set objWshShell = Nothing

Set oFS = Nothing


' eof

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.