Entwickler-Ecke
Windows API - Windows "deaktivieren"
sonic159 - Do 01.03.07 21:43
Titel: Windows "deaktivieren"
Hallo...
Weiß jemand wie man das windows so zu sagen "deaktivieren" kann, wie wenn man auf "Start" > "Ausschalten" geht?
MfG: $on!c
elundril - Do 01.03.07 21:45
in dem man einen Ausschalten-befehl an windows sendet?!
lg el
sonic159 - Do 01.03.07 21:48
Ich will ja nicht das dass "Windows-Shutdown-Menu" erscheint sondern dass alles deaktiviert wird und der Bildschirm eben so eine Grau stich bekommt, wie wenn man eben Start > Ausschalten drückt aber eben ohne dem Menü!
MfG: $on!c
JayEff - Do 01.03.07 22:02
Also, wenn du nicht vor hast, Windows *wirklich* runterzufahren, wirst du das Ausgrauen selber Programmieren müssen. Hierzu solltest du einen Screenshot nehmen und diesen auf einer StayOnTop&alClient Form anzeigen, dann per ScanLine des Canvas das Ausgrauen berechnen. Zu den Befehlen für einen Screenshot und dem Befehl ScanLine gibts genug im Forum, einfach mal suchen, das Ausgrauen zu berechnen ist vielleicht etwas schwerer... Vielleicht findet Google etwas unter "grey out algorithm" oder so.
Karlson - Do 01.03.07 22:04
JayEff hat folgendes geschrieben: |
Also, wenn du nicht vor hast, Windows *wirklich* runterzufahren, wirst du das Ausgrauen selber Programmieren müssen. Hierzu solltest du einen Screenshot nehmen und diesen auf einer StayOnTop&alClient Form anzeigen, dann per ScanLine des Canvas das Ausgrauen berechnen. Zu den Befehlen für einen Screenshot und dem Befehl ScanLine gibts genug im Forum, einfach mal suchen, das Ausgrauen zu berechnen ist vielleicht etwas schwerer... Vielleicht findet Google etwas unter "grey out algorithm" oder so. |
Das lustige ist: Selbst Windows macht das so :) Also nicht etwa irgendein Grafikkarten-Befehl.
JayEff - Do 01.03.07 22:13
Karlson hat folgendes geschrieben: |
Das lustige ist: Selbst Windows macht das so :) Also nicht etwa irgendein Grafikkarten-Befehl. |
Schon klar, dass Windows das so macht. Was ich damit sagen wollte, war, dass es wohl nicht einfach, wenn nicht gar unmöglich ist, auf die bereits von Windows implementierte Routine zu zugreifen. Man muss sich das Ganze schon selbst schreiben :)
Hat jemand vielleicht einen Link zu einem Pseudocode-Ausgrau-Algorithmus? Oder hat jemand einen guten? Man muss ja irgendwie alle 3 Farbwerte über, sagen wir, 20 Schritte einem gemeinsamen Mittelwert annähern, und dabei vorallem die Hell-Dunkel-Kontraste beibehalten. Also nimmt man (p^[1]+p^[2]+p^[3])/3 und nähert dann alle drei Werte dem daraus entstehenden Wert an. Mal sehn, ob ichs implementiert bekomme...
JayEff - Do 01.03.07 23:03
So, nun hab ich hier mal was Fertiges, siehe Anhang.
Du musst die Konstante Filename ändern, bzw an dem angegebenen Ort einen Screenshot deines Desktops (z.B.) im bmp format speichern.
Karlson - Do 01.03.07 23:13
Zitat: |
Schon klar, dass Windows das so macht. |
Erstens würde ich es nicht als selbstverständlich bezeichnen das Windows auf solche Vefahren zurückgreift und zweitens habe ich nie gesagt das es dir nicht klar sei. Ich wollte nur darauf hinweisen, weil ich es lustig finde das selbst ein Programm wie Windows ab und an zu Tricks greift.
ps.: Man sollte vor dem einsetzen deines Codes Doublebuffering nicht vergessen, sonst flackerts sehr stark.
JayEff - Do 01.03.07 23:31
Karlson hat folgendes geschrieben: |
ps.: Man sollte vor dem einsetzen deines Codes Doublebuffering nicht vergessen, sonst flackerts sehr stark. |
Ach? Hast natürlich recht, aber bei mir ist garkein Flackern aufgetreten, wesshalb ich das auch vergessen hab ;)
Also, bitte im FormCreate die Zeile DoubleBuffered:=True; hinzufügen, dann ists vollständig.
(Hab ich das gut gemacht? :party: )
PS: Garantiere übrigens nicht dafür, dass ich blau/rot/grün richtig gemacht habe ;) Kann genauso gut sein, dass ich was verwechselt habe, nur macht das in diesem Fall keinen Unterschied.
Karlson - Do 01.03.07 23:44
Ja, das Flackern ist ja je nach system mehr oder weniger schlimm.
Ansonsten funktioniert es sehr gut.
Allerdings hätte ich den Teil mit Timer und Scrollbar weggelassen. Pack das doch lieber in eine einzelne Procedure, z.B. mit
DELAY. Der Code würd sich dann sicherlich auch gut in der Library machen!
JayEff - Fr 02.03.07 00:45
Karlson hat folgendes geschrieben: |
Ja, das Flackern ist ja je nach system mehr oder weniger schlimm.
Ansonsten funktioniert es sehr gut.
Allerdings hätte ich den Teil mit Timer und Scrollbar weggelassen. Pack das doch lieber in eine einzelne Procedure, z.B. mit DELAY. Der Code würd sich dann sicherlich auch gut in der Library machen! |
Hach, danke danke, zuviel der Ehre ... :lol: Aber mal im Ernst: Ich mag Delay-funktionen nicht wirklich. Ich denke, man kann meine Funktion einfach in eine Prozedur stecken, in die man eine Schleife mit Delay packt. Mal sehn, ob ich das Teil in die Library packe :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!