Bildschrimschoner deaktivieren

  • Hi,
    unter HKEY_CURRENT_USER\Control Panel\Desktop gibts den Wert SCRNSAVE.EXE=C:\WINNT\System32\logon.scr

    wenns den Wert gibt ist der Screensaver aktiviert. Im obigen Beispiel ist das der Standard Windows XP Screensaver.

    Ich würde dir empfehlen den Wert auszulesen wenn er existiert, den Weret zu löschen und ihn nach der Scriptausführung wieder zu setzten.
    (RegRead, RegDelete, RegWrite)

    c ya
    Paddy

    • Offizieller Beitrag

    Hi,

    ich würde lieber versuchen diesen Wert zu ändern:

    HKEY_CURRENT_USER\Control Panel\Desktop\

    ScreenSaveActive

    auf 0 = aus.

    Ob es geht, kannst du so testen:

    Spoiler anzeigen
    [autoit]


    HotKeySet("{Esc}", "Quit")
    While 1
    Sleep(100)
    If isScreensaverOn() Then
    MsgBox(0, "", "It is on!")
    Exit (0)
    EndIf
    WEnd

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

    Func isScreensaverOn()
    ; 1 = on , 0 = off
    Local $list = ProcessList()
    For $i = 1 To $list[0][0]
    If StringInStr($list[$i][0], ".scr") Then Return 1
    Next
    Return 0
    EndFunc ;==>isScreensaverOn

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

    Func Quit()
    Exit
    EndFunc ;==>Quit

    [/autoit]

    So long,

    Mega

  • Ok war ein schnellschuss von mir :tier:
    Bei der Methode von th.meger entfällt auch das "mekrne vom Wert bei der SCRNSAVE.EXE.

    Ich denke mit dem ScreenSaveActive fährst du am besten.

    c ya
    Paddy

  • Hallo,

    auch auf die Gefahr hin das mein zusätzlicher Kommentar als überflüssig gewertet wird, möchte ich nach langer Zeit trozdem mal ein bissl Code beisteuern. Vielleicht hat jemand verwendung dafür.


    MfG
    trallala

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #NoTrayIcon
    Opt("GUIResizeMode", 1)
    Opt("GUIOnEventMode", 1)
    GUICreate("Screensaver",200,50)
    GUISetBkColor(0x004A6F)
    $check1 = GUICtrlCreateCheckbox ("", 10, 10, 170, 20)
    ;
    ; ---> 1 Screensaver
    if (_GetScreenSaver()==1) Then
    GUICtrlSetState($check1,$GUI_CHECKED);
    GUICtrlSetData($check1,"Screensaver ein")
    GUICtrlSetBkColor($check1, 0x008080)
    GUICtrlSetColor($check1, 0xFFFFFF)
    Else
    GUICtrlSetState($check1,$GUI_UNCHECKED);
    GUICtrlSetData($check1,"Screensaver aus")
    GUICtrlSetBkColor($check1, 0xFF8080)
    EndIf
    ;
    GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
    GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents")
    GUICtrlSetOnEvent($check1, "ToggleCheckbox")
    GUISetState ()
    ;
    While 1
    Sleep(10)
    Wend
    Func SpecialEvents()
    Select
    Case @GUI_CTRLID = $GUI_EVENT_CLOSE
    Exit
    EndSelect
    EndFunc
    Func ToggleCheckbox()
    If @GUI_CtrlId = $check1 Then
    if (_GetScreenSaver()==1) Then
    _SetScreenSaver(0)
    GUICtrlSetState($check1,$GUI_UNCHECKED);
    GUICtrlSetData($check1,"Screensaver aus")
    GUICtrlSetBkColor($check1, 0xFF8080)
    Else
    _SetScreenSaver(1)
    GUICtrlSetState($check1,$GUI_CHECKED);
    GUICtrlSetData($check1,"Screensaver ein")
    GUICtrlSetBkColor($check1, 0x008080)
    GUICtrlSetColor($check1, 0xFFFFFF)
    EndIf
    EndIf
    EndFunc
    ; --> 1 - Screensaver
    Func _GetScreenSaver()
    Local $var = RegRead("HKEY_CURRENT_USER\Control Panel\Desktop", "ScreenSaveActive");
    if ($var="" or $var="0") Then
    return 1
    Else
    Return 0
    EndIf
    EndFunc
    Func _SetScreenSaver($allowed)
    local $v;
    if ($allowed==1) Then
    $v=0
    ElseIf ($allowed==0) Then
    $v=1
    Else
    Return "Param ERR";
    EndIf
    Local $var = RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop", "ScreenSaveActive","REG_DWORD",$v);
    Return $var
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von trallala (11. Dezember 2006 um 23:18)