Bildschirm ausschalten (mit Hotkey)

  • Hallo liebe Community

    Ich wollte neuerdings mit Autoit meinen Bildschirm ausschalten.

    Dabei soll der Bildschirm aber nicht bei einer (Maus oder Tastatur) Berührung wieder angehen.
    Sondern nur mit dem definierten Hotkey (CTRL ALT B)

    Die Idee dahinter ist, dass ich meinen Rechner über das Handy steuern kann, ohne dass der Bildschirm wieder angeht.
    Das ganze funktioniert leider nicht über einen BlockInput, da dann logischerweise sämtliche eingaben (auch über das Handy) blockiert werden.

    Ich hoffe das ihr mir helfen könnt?

    Vielen Dank

    Freundliche Grüsse

    Einmal editiert, zuletzt von Chaspel (17. Juli 2012 um 13:35)

  • Bei Func _Monitor_ON() bin ich mir nicht ganz sicher ob das geht?

    Im Moment habe ich auch noch das Problem, dass Maus und Tastatur weiterhin funktionieren und bei Berührung der Bildschirm wieder anschaltet.
    Möchte es aber nicht mit dem blockinput lösen.

    Vielen Dank an autoBert für den Link!

    Gruss

  • Vielleicht solltest du dich noch einmal etwas mit den Tutorials auseinandersetzen... ;) Zu dem wäre es besser, wenn du Autoit-Quellcode zukünftig in den passenden Autoit-Quellcode-Tags + Spoiler posten könntest. Dies aber nur als kleine Bemerkung am Rande. Ich habe mir erlaubt dein Script mal etwas umzustellen und Zeilen wie zum Beispiel

    [autoit]

    Wait for HotKeySet ("_Monitor_ON") Then

    [/autoit]

    durch richtige ersetzt. Generell sollte man sich angewöhnen bestimmte Befehle einfach mal in der Hilfe nachzuschlagen, denn dann fällt es meist direkt auf wenn es den Befehl nicht gibt oder auch wenn bestimmte Parameter nicht richtig gesetzt sind... Hier mal das von mir veränderte Script:

    Spoiler anzeigen
    [autoit]

    #include <SendMessage.au3>
    Opt("WinTitleMatchMode", 4)
    Global $State = True

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

    HotKeySet("a", "_ChangeMonitor")

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

    While 1 = 1
    Sleep(50)
    WEnd

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

    Func _ChangeMonitor()
    Local $hwnd = WinGetHandle('classname=Progman')
    If $State = True Then
    _ToggleMonitor($hwnd, -1)
    $State = False
    Else
    _ToggleMonitor($hwnd, 2)
    $State = True
    EndIf
    EndFunc ;==>_ChangeMonitor

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

    Func _ToggleMonitor($hwnd, $OnOff)
    Local Const $WM_SYSCOMMAND = 274
    Local Const $SC_MONITORPOWER = 61808
    _SendMessage($hwnd, $WM_SYSCOMMAND, $SC_MONITORPOWER, $OnOff)
    If @error Then
    MsgBox(0, "_ToggleMonitor", "_SendMessage Error: " & @error)
    Exit
    EndIf
    EndFunc ;==>_ToggleMonitor

    [/autoit]

    LG
    Christoph :)