Laden...

Bildschirmschoner programmtechnisch ohne Adminrechte deaktivieren

Erstellt von Saufaus vor 15 Jahren Letzter Beitrag vor 15 Jahren 14.493 Views
S
Saufaus Themenstarter:in
8 Beiträge seit 2007
vor 15 Jahren
Bildschirmschoner programmtechnisch ohne Adminrechte deaktivieren

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

Gelöschter Account
vor 15 Jahren

im timer ein mouseevent schicken (moue.position setzen), das die mouseposition nur um einen pixel verschiebt und gleich wieder zurücksetzt. das musst du dann an die startzeit des screensavers anpassen.

1.696 Beiträge seit 2006
vor 15 Jahren

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.

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

Gelöschter Account
vor 15 Jahren

ohne adminrechte wirst du an der registry dort wohl kaum fummeln dürfen. oder irre ich mich jetzt?

1.696 Beiträge seit 2006
vor 15 Jahren

HKCU gehört dir, von daher ist es kein Problem.

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

S
Saufaus Themenstarter:in
8 Beiträge seit 2007
vor 15 Jahren

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

M
1.439 Beiträge seit 2005
vor 15 Jahren

Du kannst die SystemParametersInfo Funktion verwenden um den Bildschirmschoner zu deaktivieren, oder die WM_SYSCOMMAND Windows Message abfangen und 1 zurückliefern.

946 Beiträge seit 2008
vor 15 Jahren

@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

1.696 Beiträge seit 2006
vor 15 Jahren

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.

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

F
10.010 Beiträge seit 2004
vor 15 Jahren

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.

M
1.439 Beiträge seit 2005
vor 15 Jahren

@SeeQuark die WM_SYSCOMMAND Nachricht bekommt nur das gerade aktive Fenster.
Hast du die SystemParametersInfo Funktion schon ausprobiert?

110 Beiträge seit 2008
vor 15 Jahren

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.