Hallo an alle,
Ich arbeite derzeit als Lehrer und arbeite sehr viel mit Beamern. Nun die Beamer sind nicht vom neuesten Schlag, und unterstützen auch nicht die Beste Auflösung. Nun habe ich ein Programm entwickelt mit welchem ich die Auflösung temporär auf eine gewünschte setzen kann.
Vorgestern ist es mir dann passiert, dass mitten im Unterricht der Screensaver eingeschaltet hat. In der Schule habe ich als Lehrer aber keine Admin-Rechte und habe auch keinen Zugriff auf die Bildschirmschonereinstellungen. Trotzdem möchte ich die Funktion irgendwie einbauen, dass der Bildschirmschoner, solange mein Change Resolution Programm läuft nicht einschalten kann.
Habt ihr da vllt ein paar Ideen?
Grüße
Saufi
Grüße aus Südtirol!
Saufaus
2 + 2 = 3
weil:
5x1,0=5
5x2,0=10
0,9+0,1 + 0,8+0,2 + 0,7+0,3 + 0,6+0,4 = 4x1,0 = 4
0,0+0,5 = 0,5
Summe = 19,5 Duchschnitt = 19,5 / 10 = 1,95
1,95 + 1,95 = 3,9 = näher bei 3 als bei 5 ist
oder den RegistryKey ändern, wenn das Programm läuft
HKCU\Software\Policies\Microsoft\Windows\Control Panel\Desktop
"ScreenSaveActive"="0"
Beim Beenden wieder auf 1 setzen.
**:::
HKCU gehört dir, von daher ist es kein Problem.
**:::
Danke für die schnellen Tipps.
Bist du dir sicher dass das mit der Reg-Key Änderung funzt?
Ich wills mal testen, spätestens Dienstag weiß ich dann bescheid!
Grüße aus Südtirol!
Saufaus
2 + 2 = 3
weil:
5x1,0=5
5x2,0=10
0,9+0,1 + 0,8+0,2 + 0,7+0,3 + 0,6+0,4 = 4x1,0 = 4
0,0+0,5 = 0,5
Summe = 19,5 Duchschnitt = 19,5 / 10 = 1,95
1,95 + 1,95 = 3,9 = näher bei 3 als bei 5 ist
Du kannst die SystemParametersInfo Funktion verwenden um den Bildschirmschoner zu deaktivieren, oder die WM_SYSCOMMAND Windows Message abfangen und 1 zurückliefern.
@marsgk: Das hatte ich auch mal probiert, ohne Erfolg.
Dann hatte ich einmal alle Windows-Nachrichten abgefangen:
if (m.Msg != 0xd && // WM_GETTEXT
m.Msg != 0xe && // WM_GETTEXTLENGTH
m.Msg != 0x318 && // WM_PRINTCLIENT
m.Msg != 0x14 && // WM_ERASEBKGND
m.Msg != 0x200) // WM_NCMOUSEMOVE
Console.WriteLine(m);
Jedenfalls war die einzige Windowsnachticht, die ich empfangen hatte die [WM_WININICHANGE](http://msdn.microsoft.com/de-de/library/ms725499(en-us).aspx)
. Und diese trat auch nicht regelmässig auf...
Vielleicht liegt das aber nur an Vista 😁
Die Methode von JAck30Lena funktioniert auch nur eingeschränkt.
Sie verhindert zwar den Bildschirmschoner nicht, aber setzt ihn wieder zurück, sollte er laufen.
Der Code:
var timer = new Timer();
timer.Interval = 1000; // Hier müsste man dann 100 hinschreiben.
timer.Tick += (s, e) =>
{
Cursor.Position = new Point(Cursor.Position.X + 1, Cursor.Position.Y);
Cursor.Position = new Point(Cursor.Position.X - 1, Cursor.Position.Y);
};
this.Disposed += (s, e) => timer.Dispose();
timer.Start();
Die Registerty-Variante ist vermutlich die beste, aber du solltest das auf jeden Fall wieder zurücksetzten, auch bei einem Absturz.
mfg
SeeQuark
Danke für die schnellen Tipps.
Bist du dir sicher dass das mit der Reg-Key Änderung funzt?
Ich wills mal testen, spätestens Dienstag weiß ich dann bescheid!
Ja, wie gesagt HKCU gehört dem angemeldeten User, er hat volles Zugriffsrecht darauf.
**:::
Falsch, als Admin kann ich dir jeden schreibenden Zugriff auf alle Reg Keys entziehen.
Es wird nur meist so gemacht, das HKCU nicht angefasst wird von den admins.
@SeeQuark die WM_SYSCOMMAND Nachricht bekommt nur das gerade aktive Fenster.
Hast du die SystemParametersInfo Funktion schon ausprobiert?
Die Methode von JAck30Lena funktioniert auch nur eingeschränkt.
Sie verhindert zwar den Bildschirmschoner nicht, aber setzt ihn wieder zurück, sollte er laufen.
Soweit ich weiß, wird der Bildschirm x Minuten nach der letzten Maus und Tastatureingabe aufgerufen. Wenn nun virtuell die Maus bewegt wird, sollte es nicht zum Bildschirmschoner kommen.
@Topic: Ich halte es für am sinnvollsten, wenn man einfach mal den Systemadmin fragt, ob man den Bildschirmschoner nicht einfach komplett deaktivieren kann - macht schließlich bei den meisten PC keinen Sinn mehr, da sie nicht mehr auf Röhren setzen.