Forum: PC-Programmierung Windows Bildschirmschoner per Mausbewegung umgehen


von montagskind (Gast)


Lesenswert?

Ich habe mir ein kleines Programm in Python geschrieben, welces alle par 
Minuten die Maus um ein Pixel verschiebt. Es läuft auf Windows. Dass es 
funktioniert kann ich am Bildschirm live nachvollziehen.

Der Sinn des ganzen war, weil ich somit für eine definierten Zeit 
vermeiden möchte, dass sich der Bildschirmschohner einschalten kann (Auf 
den Sinn des Ziels brauch man nicht weiter eingehen). Mein eigentliches 
Ziel konnte ich somit allerdings nicht erreichen und der 
Bildschirmschohner geht trotzdem an.

Habe ich hier einen Denkfehler, bzw hat jemand einen anderen Tipp für 
mich?

von Random .. (thorstendb) Benutzerseite


Lesenswert?

*rofl+
Entweder hast du volle Kontrolle über den Rechner und deaktivierst den 
Schoner.
Oder es ist ein IT gemanagter Firmenrechner, und der Schoner gehört zur 
Policy, die du unterschrieben hast. In diesem Fall wäre es Vorsatz, ihn 
zu umgehen. Viel Spaß mit der Rechtsabteilung :-)

: Bearbeitet durch User
von montagskind (Gast)


Lesenswert?

Drum ja der Hinweis, dass es her gar nicht um die Sinnhaftigkeit des 
Ziels an sich gehen sollte. Sondern rein um die technische 
Möglichkeiten.

Aber Recht hast du mit deiner Aussage an sich selbstverständlich 
trotzdem.

von Frank L. (hermastersvoice)


Lesenswert?

Ich hab mir einen Mausschubser mit einem Digispark-Board programmiert. 
Das macht genau das was du willst. Es tut so als wäre es eine Maus und 
bewegt jede Minute den Mauszeiger und der Bildschirmschoner schlägt 
nicht mehr zu.

von Eric (Gast)


Lesenswert?

Wie die Einstellungen unter Windows sind, weiss ich nicht.
Aber ich vermute, dass der threshold bei mehr als einem Pixel liegt. 
Unter XScreenSaver liegt der Wert von xscreensaver.pointerHysteresis 
gewöhnlich bei 20 Pixeln.

von nocheinGast (Gast)


Lesenswert?

Ggf. mal schauen, wie diverse Media Player das Problem lösen: 
http://git.videolan.org/?p=vlc.git;a=blob;f=modules/video_output/win32/inhibit.c

Wie sich das allerdings verhält, wenn zum Deaktivieren des 
Bildschirmschoners ein Passwort notwendig ist, kann ich nicht sagen.
Wenns speziell um das Mausschubsen geht und da wir ja hier auf 
Mikrocontroller.net sind: Bau dir einen Usb-Dongle, der sich als Maus 
ausgibt und den Zeiger bewegt ;).

von Thomas S. (thschl)


Lesenswert?

montagskind schrieb:
> Ich habe mir ein kleines Programm in Python geschrieben, welces alle par
> Minuten die Maus um ein Pixel verschiebt. Es läuft auf Windows. Dass es
> funktioniert kann ich am Bildschirm live nachvollziehen.

gibt ein kleines fertiges Tool... MoveMouse der macht genau das was du 
willst
https://archive.codeplex.com/?p=movemouse

von Random .. (thorstendb) Benutzerseite


Angehängte Dateien:

Lesenswert?

Scheint nicht sehr vertrauenswürdig zu sein. Ob man das in der Firma 
installieren darf? :-)

: Bearbeitet durch User
von Thomas S. (thschl)


Lesenswert?

Random .. schrieb:
> Scheint nicht sehr vertrauenswürdig zu sein. Ob man das in der Firma
> installieren darf? :-)

bei Win10 kannst du es auch aus dem Appstore laden

https://www.microsoft.com/de-de/p/move-mouse/9nq4ql59xlbf

sonst bei chip.de oder sonstigen Adressen

: Bearbeitet durch User
von Walter T. (nicolas)


Lesenswert?

Eric schrieb:
> Aber ich vermute, dass der threshold bei mehr als einem Pixel liegt.

Ein Pixel alle 10 Sekunden ist ausreichend. Ich habe vor Jahren 
Mausbeweger auf Basis des STM32-Blue-Pill-Boards gebastelt.

http://dl1dow.de/artikel/mausbeweger/index.htm

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

montagskind schrieb:
> Habe ich hier einen Denkfehler

Das Programm heisst MouseJiggle, ist 38kB gross, und funktioniert.

Nur ist Python wohl nicht die richtige Plattform.

von Joe J. (j_955)


Lesenswert?

Ganz Simpel, haltet Euch fest:

PowerPoint - einfach Präsi mit einer Folie einrichten und bei Start des 
Computers Präsi mit starten. Keine Adminrechte für Installation erf., 
nix.
VG

von okmnht (Gast)


Lesenswert?

Such mal nach dontsleep.exe - keine Installation noetig.

okmnht

von Yalu X. (yalu) (Moderator)


Lesenswert?

montagskind schrieb:
> Ich habe mir ein kleines Programm in Python geschrieben, welces alle par
> Minuten die Maus um ein Pixel verschiebt. Es läuft auf Windows. Dass es
> funktioniert kann ich am Bildschirm live nachvollziehen.

Es ist ein Unterschied, ob du die Maus verschiebst oder nur den
Maus-/Cursor/. Letzteres wird den Bildschirmschoner nicht beenden und
soll dies auch nicht.

Mit der Tastatureingabe verhält es sich ähnlich: Man kann per Software
ein paar Zeichen in einem Konsolefenster ausgeben, so dass der Eindruck
entsteht, jemand hätte die Zeichen auf der Tastatur eingetippt.
Tatsächlich wird dadurch aber nicht die Tastatureingabe selbst
simuliert, sondern nur die Folge davon, nämlich die Ausgabe der Zeichen
in der Konsole.

Mit deiner Maussimulation verhält es sich wohl ganz ähnlich. Um dem
Bildschirmschoner wirklich eine Mausaktivität vorzugaukeln, musst du
wohl auf einem tieferen Softwarelevel ansetzen.

von Joe J. (j_955)


Angehängte Dateien:

Lesenswert?

Joe J. schrieb:
> Ganz Simpel, haltet Euch fest:
>
> PowerPoint - einfach Präsi mit einer Folie einrichten und bei Start des
> Computers Präsi mit starten. Keine Adminrechte für Installation erf.,
> nix.
> VG

So sieht mein Bildschirmschoner aus, selbst erstellt als Präsi:)
Somit kann mir keiner vorwerfen, die Policies i-wie umgangen zu haben, 
da es tatsächlich aussiehr wie mein Sperrbildschirm.

: Bearbeitet durch User
von A. F. (artur-f) Benutzerseite


Lesenswert?

montagskind schrieb:
> Habe ich hier einen Denkfehler, bzw hat jemand einen anderen Tipp für
> mich?
Ja, weil Win auf die Hardwareunterbrechungen reagiert und nicht auf ie 
von SW erzeugter Mausbewegung. Was du brauchst ist ein Servo oder du 
drehst die Maus um, klebst Lametta über den Sensor und schaltest einen 
Ventilator ein.





Joe J. schrieb:
> So sieht mein Bildschirmschoner aus, selbst erstellt als Präsi:)
> Somit kann mir keiner vorwerfen, die Policies i-wie umgangen zu haben,
> da es tatsächlich aussiehr wie mein Sperrbildschirm.

Kannst du die PP Datei bitte sharen.

von Eric (Gast)


Lesenswert?

Walter T. schrieb:
> Ein Pixel alle 10 Sekunden ist ausreichend.

Ich habe gerade einmal in die .xscreensaver Datei (OpenBSD/Xfce) geguckt 
und zumindest hier sind die Werte
1
pointerPollTime:    0:00:05
2
pointerHysteresis:  10

Was also bedeutet, dass der Pointer mindestens 10 Pixel in einem 5 
Sekunden Zeitfenster bewegt werden muss, damit der Screensaver beendet 
wird.
Alles andere waere ja auch sinnfrei. Bei einem Pixel wuerde ja bereits 
jede kleinste Erschuetterung des Schreibtisches zur Ausloesung fuehren.

Aber wie gesagt, Windows ist nicht meine Welt - es kann ja durchaus 
sein, dass dort die Werte ganz anders sind.

von Christian R. (supachris)


Lesenswert?

Dont sleep geht prima. Man kann aber auch in seine Software einfach 
einen Timer einbauen, der den Windows Idle Timer zyklisch zurück setzt. 
Dann springt der Bildschirmschoner oder die automatische Sperre auch 
nicht an. Nix anderes macht Powerpoint...

von Passwortmuffel (Gast)


Lesenswert?

Der Digispark wurde ja bereits erwähnt.
Da ich an meinem Firmenrechner eingeschränkter User bin und auch nichts 
extra einstöpseln wollte, habe in meiner Tastatur einen Timer mit 
Analogswitch, der die Pause-Taste drückt.

von Christian M. (Gast)


Lesenswert?

Bild vom Desktop als Bildschirmschoner!?

Gruss Chregu

von Vlad T. (vlad_tepesch)


Lesenswert?

nocheinGast schrieb:
> Ggf. mal schauen, wie diverse Media Player das Problem lösen:
> http://git.videolan.org/?p=vlc.git;a=blob;f=modules/video_output/win32/inhibit.c

Da steht doch quasi die lösung:
1
/* Prevent monitor from powering off */
2
prev_state = SetThreadExecutionState( ES_DISPLAY_REQUIRED |
3
                                      ES_SYSTEM_REQUIRED |
4
                                      ES_CONTINUOUS );

und hier ist die passende dokumentation dazu:
https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setthreadexecutionstate

> Calling SetThreadExecutionState without ES_CONTINUOUS
> simply resets the idle timer; to keep the display or
> system in the working state, the thread must call
> SetThreadExecutionState periodically.

also, anstatt den cursor zu bewegen, einfach peridisch diese funktion 
callen.

Verwendung in Python:
https://gist.github.com/jonasbits/6861522
https://gist.github.com/kbarnes3/3fb7d353e9bdd3efccd5

von Bernd K. (prof7bit)


Lesenswert?

MaWin schrieb:
> Nur ist Python wohl nicht die richtige Plattform.

Warum?

von Vlad T. (vlad_tepesch)


Lesenswert?

Vlad T. schrieb:
> also, anstatt den cursor zu bewegen, einfach peridisch diese funktion
> callen.

oh, ich hab das "without" übersehen.
mit ES_CONTINUOUSE scheint zu reichen, die Funktion einmal zu callen und 
am Ende den alten zustand eventuell den alten Zustand wieder 
herzustellen.

Würde das ES_CONTINUOUS weggelassen werden, müsste man es periodisch 
callen.

von c.m. (Gast)


Lesenswert?

Ich hatte ein ähnliches Problem: Ein nervig blinkender Bildschirmschoner 
den ich nicht ausschalten konnte (fremd administrierter Clientrechner im 
Büro).

Lösung: Kleines atmega32U4 Board (Leonardo micro o.ä. - weiss nicht mehr 
genau), ~10 Zeilen Programm drauf geflashed das behauptet "ich bin eine 
Tastatur" und alle 10min für 50ms die CRTL Taste drückt.
noch ein kleines Gehäuse für das Board gedruckt, und jetzt hängt das 
Ding seit zig Monaten am Rechner und verhindert den Schoner.

von Osszilierer (Gast)


Lesenswert?

c.m. schrieb:
> Lösung: Kleines atmega32U4 Board (Leonardo micro o.ä. - weiss nicht mehr
> genau), ~10 Zeilen Programm drauf geflashed das behauptet "ich bin eine
> Tastatur" und alle 10min für 50ms die CRTL Taste drückt.

dafür ist bei uns der GData USB Keyboard Guard installiert und lässt 
solche Sachen nicht zu

von bleibe wach (Gast)


Angehängte Dateien:

Lesenswert?

Das Minitool im Anhang löst alle 5 Minuten ein Mausevent aus ohne eine 
Bewegung des Mauszeiger o.ä. vorzunehmen.


https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-mouse_event

von Walter T. (nicolas)


Lesenswert?

c.m. schrieb:
> "ich bin eine
> Tastatur" und alle 10min für 50ms die CRTL Taste drückt.

Dann hoffen wir mal, dass niemand, der daran arbeitet, im falschen 
Moment "X" drückt.

von Tom (Gast)


Lesenswert?

Man kann die Maus auch auf eine Analoguhr mit Sekundenzeiger legen. Das 
hat auch den Vorteil, dass man keine Adminrechte dafür braucht.

von c.m. (Gast)


Lesenswert?

Walter T. schrieb:
> c.m. schrieb:
>> "ich bin eine
>> Tastatur" und alle 10min für 50ms die CRTL Taste drückt.
>
> Dann hoffen wir mal, dass niemand, der daran arbeitet, im falschen
> Moment "X" drückt.

Wenn daran gearbeitet werden würde, bräuchte man nichts das den 
Bildschirmschoner deaktiviert.
Der Rechner ist für mich unbrauchbar, fremd administriert, standard 
Bürosoftware, Windowssystem ohne Entwicklungssoftware.
Der dient mir nur zum abholen betriebsinterner Mail.

von Osszilierer (Gast)


Lesenswert?

c.m. schrieb:
> Wenn daran gearbeitet werden würde, bräuchte man nichts das den
> Bildschirmschoner deaktiviert.
> Der Rechner ist für mich unbrauchbar, fremd administriert, standard
> Bürosoftware, Windowssystem ohne Entwicklungssoftware.

ist bei mir genauso.
Wenn ich Daten protokolliere und lange Zeit am anderen Rechner sitze und 
nur beobachte, darf der Rechner nicht den Lock Screen oder 
Bildschirmschoner zeigen. So ein Rechner ist für mich unbrauchbar

von Georg (Gast)


Lesenswert?

Osszilierer schrieb:
> So ein Rechner ist für mich unbrauchbar

Darüber musst du dich mit deinem Firmen-Administrator unterhalten. Die 
Erfolgsaussichten sind da eher gering.

Georg

von Christobal M. (c_m_1)


Lesenswert?

Georg schrieb:
> Osszilierer schrieb:
>> So ein Rechner ist für mich unbrauchbar
>
> Darüber musst du dich mit deinem Firmen-Administrator unterhalten. Die
> Erfolgsaussichten sind da eher gering.


Ich hab den "User Help Desk" gefragt ob sie mir den nervigen 
Bildschirmschoner durch "Blank Screen" oder irgendwas anderes nicht 
blinkendes ersetzen könnten - Anwort war "geht nicht".

Ja dann halt Arsch lecken. Was anderes fällt mir da nicht mehr ein.

: Bearbeitet durch User
von Ntldr -. (ntldr)


Lesenswert?

Osszilierer schrieb:
> c.m. schrieb:
>> Lösung: Kleines atmega32U4 Board (Leonardo micro o.ä. - weiss nicht mehr
>> genau), ~10 Zeilen Programm drauf geflashed das behauptet "ich bin eine
>> Tastatur" und alle 10min für 50ms die CRTL Taste drückt.
>
> dafür ist bei uns der GData USB Keyboard Guard installiert und lässt
> solche Sachen nicht zu

Den kann man problemlos umgehen, indem man einfach den USB Descriptor 
der echten Tastatur 'klaut'. Tastaturen haben keinen internen 
Speicherort für eine Signatur oder ähnliches, wodurch der PC keinen 
einfachen Unterschied zwischen echter Tastatur und 'sonstigem Gerät das 
sich als echte Tastatur ausgibt' feststellen kann [0].

Diese ganzen USB Guards sind nur dann sinnvoll, wenn eben gerade nicht 
bekannt ist, welche Tastatur da wirklich angeschlossen ist. Hilft aber 
gegen die Idioten die USB Sticks auf dem Firmenparkplatz finden und 
reinstecken. Gegen einen internen Angreifer ist das aber nichts.

[0] Man könnte jetzt noch ne Art Timingprüfung einbauen, bei der einmal 
gemessen wird wie schnell die Tastatur auf eine Meldung reagiert, um den 
µC in der Tastatur und den Klon zu unterscheiden. Das nachzubilden wäre 
etwas mehr Aufwand, aber dennoch lösbar.

von Bernd K. (prof7bit)


Lesenswert?

Christobal M. schrieb:
> Ich hab den "User Help Desk" gefragt [...] Anwort war "geht nicht".

Dann eskaliere es über deinen Boss, der scheiß Bildschirmschoner 
behindert Dich schließlich massiv bei der Arbeit, es gibt überhaupt 
keinen Grund warum die ihn angeblich nicht ausschalten können außer 
Faulheit oder Inkompetenz. Geht nicht gibts nicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.