Signatur mit VBscript

  • VBScript

Es gibt 46 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    petaod schrieb:

    alpagen schrieb:

    Hoffe es ist jetzt verständlich.
    Ich habe es schon vorher verstanden und auch die entsprechende Lösung gepostet.
    Dann eben nochmals:

    Visual Basic-Quellcode

    1. If Left(os.Version, 1) > "5" Then
    2. ExecuteWin7Script 'Vista or higher
    3. Else
    4. ExecuteXpScript 'XP or lower
    5. End If
    Aber wie du gleich weiter unten nachlesen kannst, ist dieser Ansatz Blödsinn.


    da die Pfade wo die Signatur liegt bei xp und bei win7 nicht gleich sind
    Nein, das glaube ich nicht.
    Die liegen beide unterhalb dem Pointer %AppData%.
    Das ist eine Environment-Variable, die automatisch auf das richtige Root-Verzeichnis zeigt.

    Das Verzeichnis kannst du so auflösen:

    Visual Basic-Quellcode

    1. Set wshShell = CreateObject( "WScript.Shell" )
    2. SignatureDirectory = wshShell.ExpandEnvironmentStrings("%APPDATA%") & "\Microsoft\Signatures\"
    Da wird natürlich bei den unterschiedlichen Systemen unterschiedliches aufgelöst, aber das muss dich nicht interessieren, da du relativ zu AppData adressierst.

    in win 7 liegt es aber in User\APPdata\Roaming\microsoft\signatures
    in win xp liegt es in \user\appdata\microsoft\signatures

    das roaming wäre das Problem denk ich nicht das appdata .. aber ich werde das einal testen
    Also irgendwie funktioniert beides nicht,

    Dim oFSO, newDIR1

    ziel="C:\Users\" & UserName & "\AppData\Roaming\Microsoft\Signatures\AC Signatur-Dateien"

    Set oFSO = CreateObject("Scripting.FileSystemObject")

    if objFSO.Folderexists(ziel) = false then

    Set newDIR1 = objFSO.CreateFolder(ziel)

    end if

    kann ich nicht mit %appdata% wie du es geschrieben hast auflösen ..


    und das echo auszuwerten mit dieser if und then sache funktioniert leider genauso wenig bekomme ein Popup mit der Version oder dem Caption und dan einen Fehler

    Set dtmConvertedDate = CreateObject("WbemScripting.SWbemDateTime")
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set oss = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")

    For Each os in oss
    wscript.echo " " & os.Version
    Next

    If Left (os.Version) 1 > "5" Then
    ExecuteWin7Script 'Vista or higher
    Else
    ExecuteXpScript 'XP or lower
    End If
    Gib in beiden System in der Eingabeaufforderung echo %APPDATA% ein und du wirst sehen, dass sie bereits beide auf die jeweils richtige Root zeigen.
    In Win7 ist das Roaming bereits integriert.

    Ich habe dir oben C&P-Code geliefert, um das Verzeichnis zuzuweisen.
    Welches Ergebnis bekommst du jeweils bei Win7 und XP?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    er sagt er findet den Pfad nicht ich weiß nicht genau wie ich das bei dem pfad angeben soll :

    set WshShell = WScript.CreateObject ("WScript.Shell")
    Username = WshShell.ExpandEnvironmentStrings ("%UserName%")

    set WshShell = WScript.CreateObject ("WScript.Shell")
    Username = WshShell.ExpandEnvironmentStrings ("%APPDATA%") & "\Microsoft\Signatures\"

    FileName = "C:\Documents and Settings\" & UserName & "\Application Data\Microsoft\Signatures\" + Speicherzusatz + ".htm"

    aber wie geh ich es dan in dem Pfad an ?

    Visual Basic-Quellcode

    1. AppData = WshShell.ExpandEnvironmentStrings("%APPDATA%")
    2. FileName = AppData & "\Microsoft\Signatures\" & Speicherzusatz & ".htm"
    Du brauchst den Username nicht.
    Der ist im AppData schon drin.

    Schau dir doch einfach deine Variablen an.
    Wenn du keine vernünftige Entwicklungsumgebung hast, lade dir VbsEdit.
    Für deine Zwecke reicht wahrscheinlich die Trial-Version noch vollkommen aus.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „petaod“ ()

    petaod schrieb:

    Visual Basic-Quellcode

    1. AppData = WshShell.ExpandEnvironmentStrings("%APPDATA%")
    2. FileName = AppData & "\Microsoft\Signatures\" & Speicherzusatz & ".htm"
    Du brauchst den Username nicht.
    Der ist im AppData schon drin.
    Hat jetzt alles hingehauen, 1000 Dank !!
    Ist jetzt wirklich nur 1 Script das für winxp und 7 funktioniert sowohl englisch als auch Deutsch, ich wusste einfach nur nicht wie ich den Pfad da,n angebe.

    Das letzte Problem das ich jetzt habe ich würde noch gerne die .txt Datei die ebenfalls die selben Platzhalter hat in den Ordner der User kopieren das klappt aber auch nicht so ganz er kopiert immer ne leere Datei wenn ich als ausgangsdatei die .htm nehme klapps mit harrgenau dem gleichen skript .. werd mir das mal genauer anschauen!