Windows 7 LoginScreen wechseln

  • Hello World

    Ich hatte mal probiert über AutoIt den Loginhintergrund von Windoof 7 zu ändern... nur leider will es nciht so, wie ich^^

    eigentlich gibt es 2 Probleme:

    • Die überprüfung der Bildgröße gibt immer 0 zurück
    • bei ausgeklammerter überprüfung geht es nicht (kann aber daran liegen, das ich das schon mit Tuneup geändert habe)

    DEr Quellcode:

    Spoiler anzeigen
    [autoit]

    ;Copyright 2010 by Alexander I

    [/autoit] [autoit][/autoit] [autoit]

    #include <ExtProp.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #RequireAdmin

    [/autoit] [autoit][/autoit] [autoit]

    $Gui = GUICreate("Login", 177, 180, 192, 124)
    $Button1 = GUICtrlCreateButton("Bild wählen", 8, 8, 161, 49, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Standart zurücksetzen", 8, 80, 161, 49, $WS_GROUP)
    GUICtrlCreateLabel("© Copyright 2010 Alexander I.", 8, 152)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $pfad = FileSaveDialog("Bild wählen",@DesktopDir,"Bild (*.jpg;*.JPG)")
    if @error then MsgBox(16,"Error","Ein fehler wurde festgestellt") Exit
    if not FileExists($pfad) then MsgBox(16,"Error","Bild wurde nicht gefunden") Exit
    ;~ if _GetExtProperty($pfad,27) <> @DesktopWidth Then MsgBox(16,"Error","Ihr Bild hat die falsche Breite") Exit
    ;~ if _GetExtProperty($pfad,28) <> @DesktopHeight Then MsgBox(16,"Error","Ihr Bild hat die falsche Höhe") Exit
    If RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background","OEMBackground") <> 1 Then RegWrite("HKLM\Software\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background","OEMBackground","REG_DWORD",1)
    if not FileExists(@SystemDir & "\oobe\info") then DirCreate(@SystemDir & "\oobe\info")
    if @error then MsgBox(16,"Error","Ein fehler wurde festgestellt") Exit
    if not FileExists(@SystemDir & "\oobe\info\backgrounds") then DirCreate(@SystemDir & "\oobe\info\backgrounds")
    if @error then MsgBox(16,"Error","Ein fehler wurde festgestellt") Exit
    FileCopy($pfad,@SystemDir & "\oobe\info\backgrounds\backgroundDefault.jpg")
    if @error then MsgBox(16,"Error","Ein fehler wurde festgestellt") Exit
    MsgBox(64,"Erfolgreich","Der Loginscreen wurde erfolgreich geändert. Bitte starten Sie ihren Pc neu")
    Case $Button2
    RegDelete("HKLM\Software\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background","OEMBackground")
    if @error then MsgBox(16,"Error","Ein fehler wurde festgestellt") Exit
    FileDelete(@SystemDir & "\oobe\info\backgrounds")
    if @error then MsgBox(16,"Error","Ein fehler wurde festgestellt") Exit
    EndSwitch
    WEnd

    [/autoit]
  • Komplette Lösung: (Ja, ich hatte vorhin was vergessen :whistling: )
    1. Am anfang #Include <GDIPlus.au3> einfügen.
    2. Nach #RequireAdmin _GDIPlus_Startup() einfügen.
    3. _GetExtProperty($pfad,27) durch _GDIPlus_ImageGetWidth ersetzen
    4. _GetExtProperty($pfad,2) durch _GDIPlus_ImageGetHeight erstzen

    So müsste es klappen.
    Ich hab leider (noch) keinen Win7 PC.
    Also weiß ich nicht ob es so klappt. Also wäre es schön wenn ich antworten bekomme.