Seite 1 von 1
Betriebssystem durch Programm blockieren
Verfasst: 9. Februar 2011 20:00
von Tuxing
Hey Leute,
es klingt erstmal etwas merkwürdig, aber gibt es (evtl. mit Hilfe der WINAPI) eine Möglichkeit das Betriebssystem zu blockieren sobald mein Programm gestartet wird?
Die Aufgabe ist es ein Programm zu schreiben, dass (z.B. in einer Discothek) Musikwünsche oder ähnliches von den Kunden entgegen nimmt. Diese Liste könnte dann regelmäßig vom DJ abgefragt werden und er hätte eine Richtlinie für seine Playlist.
Das Problem ist, dass ja nun nicht einfach irgend ein Rechner mit Windows und nem Programm da rumstehen kann... da würd ich auch quatsch mit machen :p .. Also sobald das Programm gestartet ist darf (unter Windows) der Explorer nicht mehr bedienbar sein und Tastaturbefehle wie STRG + ALT + ENTF müssten ignoriert werden. Von mir aus kann der Rechner auch ein Linux Rechner sein .. wenns das einfacher macht.
Danke schonmal für Ideen.
Grüße
Verfasst: 9. Februar 2011 20:37
von upsala
Passenden WindowManager auswählen (ich denke Qt-Programme werden nicht ohne Window-Manager auskommen). Und unerwünschte Einträge in /etc/inittab auskommentieren.
In Windows ist soetwas sogut wie unmöglich.
Ansonsten gäbe es noch das Stichwort: Kiosk-Modus.
Verfasst: 9. Februar 2011 21:12
von solarix
Ja.. ich würde auch in diese Richtung (Linux mit k(l)einem WindowManager (Fluxbox & CO)) Tests durchführen. "Kiosk-Modus" ist sicher das richtige Stichwort..
Je nach Einsatzort (Disco..) würde es sich evt. auch anbieten, eine spezielle Tastatur einzusetzen. Spritzwasserfest, Vandalensicher und evt. sogar stark redziert (z.B. ohne Control-Tasten).
Oder man könnte sogar ganz auf die Tastatur verzichten (Touchscreen mit virtuellem Keyboard, wie bei einem Ticketautomat).
hth!
Verfasst: 10. Februar 2011 09:36
von RavenIV
upsala hat geschrieben:
In Windows ist soetwas sogut wie unmöglich.
Stimmt nicht.
Auch bei Windows kann man den Window-Manager austauschen. In der Regel übernimmt dies "Explorer.exe" in einem speziellen Modus.
Man kann in der Registry eine andere exe einsetzen, dann läuft nur diese und alle Windows-Bedienelemente sind nicht vorhanden.
Man kann ein MS-Windows auch so beschneiden / konfigurieren, dass der User nix mehr machen kann.
Auch kann man eine Software so schreiben, dass sie alles (Startleiste, Taskleiste, Trayleiste, usw) überdeckt und alle Tastendrücke (Windows-Taste, STRG, usw) abblockt.
Da sind der Fantasie keine Grenzen gesetzt...
Verfasst: 10. Februar 2011 12:24
von upsala
Ok, dann sagen wir halt: Es ist sehr schwer zu realisieren. Ich kenne verschiedene Versuche dies zu bewerkstelligen, und wir konnten bis jetzt alles als normaler User umgehen.
Verfasst: 10. Februar 2011 13:01
von Tuxing
Hey Leute ..
danke für die vielen Antworten. Der "Kiosk-Modus" wäre definitiv ein Mittel der Wahl soweit ich mich darüber jetzt informiert habe. Für mich persönlich wäre das aber am liebsten nur die Alternative, da diese Variante wieder mit so vielen Einstellungen usw. verbunden ist.
RavenIV hatte ja geschrieben:
Auch kann man eine Software so schreiben, dass sie alles (Startleiste, Taskleiste, Trayleiste, usw) überdeckt und alle Tastendrücke (Windows-Taste, STRG, usw) abblockt.
Das wäre für mich die ideale Lösung. Wie man eine Software so entwickelt, dass Task-, Start- und Trayleiste überdeckt sind ist mir bekannt, allerdings wüsste ich gerne wie man die Tastendrücke blockt. STRG, ALT, ENTF ist ja (wenn man es so nennen will) ein Betriebssystem-Kommando, und das Betriebssystem steht über dem Programm. Es leitet die Tastatureingaben an das Programm weiter. Wie kann ich also mit Hilfe meines Programms das Betriebssystem anweisen solche Kombinationen zu ignorieren ?
Eine Erklärung oder ein Link zu einem Tutorial o.Ä. wäre Klasse.
Besten Dank
Verfasst: 10. Februar 2011 13:25
von padreigh
Ich weiss ja nicht, aber wäre eine Fullscreen Qt Application nicht einfacher?
Einfach nur Monitor und Maus rausrücken, Tastatur (nach Start des Programms) wegschließen und Bildschirmtastatur anbieten - eventuell nichtmal das sondern eher eine Liste der vorhandenen Musikstücke / CDs / Platten und die Möglichkeit seinen Wunschhit zu wählen ...
Verfasst: 10. Februar 2011 14:24
von Curtis Newton
Verfasst: 10. Februar 2011 19:59
von Tuxing
Ok, ich hab mir jetzt was zurechtgebastelt, für die die es interessiert. Es ist noch nicht final, aber die Idee ist die folgende:
Nachdem das Programm gestartet wurde, wird es in der Registry zwei Einträge verändern. Zum einen trägt es sich selber als Shell ein, anstelle des Explorers und zum anderen deaktiviert es den Taskmanager. Danach wird ein Neustart durchgeführt. Nach der Anmeldung kann der Benutzer nichts machen als das Programm zu bedienen.
Durch Eingabe eines speziellen Codes in die Eingabefelder und dem drücken eines Knopfes werden die Registryeinträge zurückgesetzt und das System neu gestartet. Danach ist alles wie vorher.
Ich überlege noch mein Programm einen speziell einen Windowsbenutzer dafür anlegen zu lassen und in der Registry nur die Einstellungen von diesem Account zu überschreiben. Der Benutzer heißt dann zB. "Kiosk-Mode" und somit ist auch sichergestellt, dass man durch den Standardbenutzer des System immer wieder den Explorer starten kann. Zudem würde man bei der Lösung mit dem "Kiosk-Mode Benutzer" nicht jedesmal in der Registry rumschreiben sondern nur einmal, was vrmtl. die Stabilität fördert.
Ich denke so werde ich das umsetzen. Wer weiteres Interesse daran hat was in der Registry zu ändern ist o.Ä. soll es hier posten dann gehe ich näher drauf ein.
Vielen Dank für eure Ideen. So sieht man doch immer verschiedene Ansätze was der Entwicklung förderlich ist.
Grüße
Verfasst: 11. Februar 2011 06:47
von chrislo1976
Moin!
Mich würde dieses Thema auch näher interessieren, evtl. kann ich das für eines unserer Projekte brauchen.
Ich würde also dein Angebot, näher darauf einzugehen, gern annehmen. Auch würde mich interessieren wie du den Taskmanager deaktivierst...
Danke!
Gruß,
Christian