Funktionstest: _MonitorToggle !

  • Hallo, ich wollte wissen ob folgende Funktion auf allen Betriebssytemen funktioniert:
    Also nur kurz testen, ob der Bildschirm sich für 3 Sekunden ausschaltet, und dann mir bescheid geben unter welchem Betriebsystem es lief, bzw nicht funktionierte.
    Danke

    [autoit]

    #include <SendMessage.au3>

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

    _ToggleMonitor(1)
    Sleep ( 3000 )
    _ToggleMonitor(0)

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

    Func _ToggleMonitor($sState)
    $sHwnd = WinGetHandle('Program Manager')
    If @error then SetError(1)
    Switch $sState
    Case True
    return _SendMessage($sHwnd, 274, 61808,2)
    Case False
    return _SendMessage($sHwnd, 274, 61808,-1)
    EndSwitch
    EndFunc

    [/autoit]
  • ne ich glaub net ... der blendet einfach das bild aus ....

    win7 x64 geht auch ... allerdings geht es wieder an wenn ich die maus in der zeit bewege und zb sleep (100000) habe

  • gibt's schon... ;)

    mfg.

    [autoit]

    ; toggle monitor On/Off
    ; Author greenmachine

    MonitorToggle(1)
    Sleep (20000)
    MonitorToggle(0)

    Func MonitorToggle($Off = 1)
    $opt = Opt("WinTitleMatchMode", 4)

    $WM_SYSCommand = 274
    $SC_MonitorPower = 61808
    $Power_Off = 2
    $Power_On = -1

    $HWND = WinGetHandle("classname=Progman")
    If $Off Then
    DllCall("user32.dll", "int", "SendMessage", "hwnd", $HWND, "int", $WM_SYSCommand, _
    "int", $SC_MonitorPower, "int", $Power_Off)
    Else
    DllCall("user32.dll", "int", "SendMessage", "hwnd", $HWND, "int", $WM_SYSCommand, _
    "int", $SC_MonitorPower, "int", $Power_On)
    EndIf
    Opt ("WinTitleMatchMode", $opt)
    EndFunc

    [/autoit]
    • Offizieller Beitrag

    Mit Errorhandling, lokalen Variablen und so, dass es auch richtig funktioniert ;) :

    [autoit]


    MonitorToggle(0)
    Sleep(3000)
    MonitorToggle(1)

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

    Func MonitorToggle($Off = 1)
    If $Off < 0 Or $Off > 1 Then Return SetError(1, 0, 0)
    Local Const $WM_SYSCOMMAND = 274
    Local Const $SC_MONITORPOWER = 61808
    Local $Opt = Opt("WinTitleMatchMode", 4)
    Local $hWnd = WinGetHandle("classname=Progman")
    Opt("WinTitleMatchMode", $Opt)
    DllCall("user32.dll", "lresult", "SendMessageW", "hwnd", $hWnd, "uint", _
    $WM_SYSCOMMAND, "wparam", $SC_MONITORPOWER, "lparam", 2 - 3 * $Off)
    EndFunc ;==>MonitorToggle

    [/autoit]
  • Win 7 Ultimate 32 Bit funzt auch

    Ich denke mal es ist nicht klug das zu wiederholen was viele andere schon bestätigt haben... Wenn jemand ein anderes BS hat dann soll er/sie ruhig hier schreiben ob es geht oder nicht, aber so das gleiche 4x zu wiederholen ist nicht klug.

  • vielen Dank, für die weiter Funktion. Um die "bessere Funktion" in die Library aufzunehmen muss ich auch wissen welche die bessere ist! Oder sind beide ok? 8o