Bildschirm während das script läuft ausschalten

  • hi..

    ich hab ein kleines script das mir alle paar stunden paar klicks macht (kein bot für irgendwelche browsergames oder ähnliches.. einfach nur faulheit :D) naja und auf jeden fall will ich wenn das script läuft das der monitor ausgeschaltet wird (oder auch bleibt wenn er schon von windows nach ner zeit ausgeschaltet wurde)

    dazu hab ich hier schon was recht interresantes gefunden..

    Spoiler anzeigen
    [autoit]

    ;MsgBox(0, "Started", @ScriptName & " has started.... F11 = Monitor off, F10 = Monitor on, Esc = Exit Program.")
    #NoTrayIcon

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

    Opt("TrayMenuMode",1)
    Opt ("WinTitleMatchMode", 4)
    HotKeySet("{F11}", "MonOff")
    HotKeySet("{F10}", "MonOn")
    HotKeySet("{Esc}", "Close")

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

    MonOff()
    BlockInput(1)
    Sleep(10000)
    BlockInput(0)
    MonOn()

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

    While 1
    Sleep(0x7fffffff)
    WEnd

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

    Func Close()
    $hwnd = WinGetHandle('classname=Progman')
    DllCall('user32.dll', 'int', 'SendMessage', 'hwnd', $hwnd, 'int', 274, 'int', 61808, 'int', -1)
    MsgBox(0, "Closing...", "Closing program.....")
    Exit
    EndFunc;==>Close

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

    Func MonOn()
    $hwnd = WinGetHandle('classname=Progman')
    DllCall('user32.dll', 'int', 'SendMessage', 'hwnd', $hwnd, 'int', 274, 'int', 61808, 'int', -1)
    EndFunc;==>MonOn
    Func MonOff()
    $hwnd = WinGetHandle('classname=Progman')
    Sleep(500)
    DllCall('user32.dll', 'int', 'SendMessage', 'hwnd', $hwnd, 'int', 274, 'int', 61808, 'int', 2)
    EndFunc;==>MonOff

    [/autoit]

    habs zwar noch nicht in mein script eingbaut aber sollte ja nicht so schwer sein..

    problem: wenn ich oder autoit mit mousemove die maus bewegt dann ist der bildschirm wieder an..

    naja.. und wenn ich das problem gelöst habe hab ich gleich das nächste.. wenn der bildschirm aus ist und das script die maus bewegt und dann irgendwer an mein pc geht und an der maus rumfummelt klickt das script nicht dahin wo es soll.. kann man also irgendwie solange das script läuft die manuelle maus abstellen? xD

    hab hier auch schon was über ne schwarze GUI die komplett übern bildschirm geht was gelesen.. so würde es rein theoretisch auch gehen aber wenn ich dann rumklicke klicke ich doch auf die gui und nicht auf die fenster auf die ich klicken will.. ^^

    kurz gesagt: wenn das script läuft soll keiner darauf einfluss haben und keiner sehen was es macht :D

    hoffe mal einer von euch kann mir da helfen xD

  • hehe.. keine panik sobald mir wer nen begriff vorwirft geb ich ihn bei der hilfe ein xD hab auch BlockInput(0) ans ende von nem sleep gesetzt funzt ganz gut bis auf atrg+alt+entf wird alles geblockt ^^
    thx schonmal dafür hat schonmal ein problem gelöst..

    jetzt brauch ich nurnoch etwas um den bildschirm dauerhaft auszuschalten.. mir ist grad ne idee gekommen als ich ich was von verdunkeln gelesen hab.. man könnte ja eigentlich den bildschirm so sehr verdunkeln das er schwarz ist und das man nix mehr sieht aber die aktionen weiterhin ausgeführt werden.. und am ende wird er einfach wieder aufgehellt.. oder halt anders rum.. man macht mit WinSetTrans das fenster unsichtbar.. dann sieht man auch nixmehr.. doof währ dann halt nur wenn der cursor rumhüpft.. kann man den auch irgendwie unsichtbar machen? ^^ wenns nicht geht kann man doch sicher notfalls noch nen selbstgemachten cursor über windows laden oder? müsste dann halt nur nen 1pixel cursor machen.. was auch kein problem sein sollte..

  • ja da gibts aber leider das selbe problem wenn ich die maus beweg geht der bildschirmwieder an..

    könnte den monitor aber aus halten wenn ich's so mache.. könnte man dann einfach neben dem script laufen lassen.. funz auch super mit sachen eingeben und maus bewegen..

    [autoit]

    While 1
    $hwnd = WinGetHandle('classname=Progman')
    DllCall('user32.dll', 'int', 'SendMessage', 'hwnd', $hwnd, 'int', 274, 'int', 61808, 'int', 2)
    sleep(100)
    WEnd

    [/autoit]
  • Hi,
    was macht das Script? Bzw. was soll es bewirken?

    Damit der Bildschirm bei der Funktion nicht wieder angeht, wenn du die Maus bewegst musst du einfach noch ein BlockInput einbauen.

    Spoiler anzeigen
    [autoit]

    #include <SendMessage.au3>

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

    _Main()

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

    Func _Main()
    Local Const $Off = 2, $On = -1

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

    Opt("WinTitleMatchMode", 4)
    $hwnd = WinGetHandle('classname=Progman')
    BlockInput(1)
    _ToggleMonitor($hWnd, $Off)
    Sleep(3000)
    _ToggleMonitor($hWnd, $On)
    BlockInput(0)
    EndFunc

    [/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

    [/autoit]
  • [autoit]

    #include <SendMessage.au3>

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

    _Main()

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

    Func _Main()
    Local Const $Off = 2, $On = -1

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

    Opt("WinTitleMatchMode", 4)
    $hwnd = WinGetHandle('classname=Progman')
    BlockInput(1)
    _ToggleMonitor($hWnd, $Off) ;schaltet den monitor aus oder?
    Sleep(1000)

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

    ;hier startet mein script
    Run("C:\Programme\Mozilla Firefox\firefox.exe")

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

    Winwaitactive("Google - Mozilla Firefox")
    sleep(1000)
    send("^l")
    sleep(500)
    send("http://www.adresse.de")
    Send("{ENTER}")

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

    Sleep(3000)

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

    WinMove("Adresse - Mozilla Firefox", "", 0, 0, 625, 335)

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

    Sleep(1000)

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

    MouseClick("left", 310, 205, 2)

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

    ;usw.. dann kommt nurnoch Send Mouseklick und Sleep..

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

    Sleep(1000)
    _ToggleMonitor($hWnd, $On);schaltet den monitor wieder an..
    BlockInput(0)
    EndFunc

    [/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

    [/autoit]


    der monitor soll also am anfang vom script ausgeschaltet werden und am ende wieder an.. oder er bleibt halt aus problem ist immernoch das wenn autoit mousemove macht der bildschirm wieder sichtbar ist X( blockinput hilft gegen das bewegen von der manuellen maus.. wenn ich jetzt aber mousemove blocke dann klickt das script nichtmehr :3