Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   "Desktop anzeigen" abfangen (https://www.delphipraxis.net/166994-desktop-anzeigen-abfangen.html)

erich.wanker 8. Mär 2012 17:37

"Desktop anzeigen" abfangen
 
Hallo Leute,

ich möchte gerne Win+D als auch den Button "Desktop anzeigen" unterbinden.
Der eingeschränkte user soll den Desktop nicht sehen, sondern "nur" mein Fenster (ws_Child vom Desktop).

Meine Suche hat bis dato keine Lösung, sondern nur Bruchstücke eines Ansatzes ergeben:

Zitat:

"Show Desktop" sends the command "ToggleDesktop", which, among other
things, posts a DTM_RAISE message (WM_USER + 83) to the Desktop
(Progman) to set it on foreground.
Tests mit
Delphi-Quellcode:
function WndProc(WndHWND: HWnd; uMsg: UInt; wParam: WParam; lParam: LParam): LResult; stdcall;
haben aber nichts ergeben...

P.S.: Einen TastaturHook für Win+D würde ich nicht gerne machen...

Wäre ein Timer sinnvoll, der überprüft ob der Desktop ganz nach vorne gesetzt wurde?


Hat jemand eine Idee ?

Vielen Dank
Erich

Popov 8. Mär 2012 18:08

AW: "Desktop anzeigen" abfangen
 
Ist zwar was anderes, aber ein verwandtes Thema:

http://www.delphipraxis.net/166451-d...-abfangen.html

Assarbad 10. Apr 2012 22:14

AW: "Desktop anzeigen" abfangen
 
Wie wäre es damit einen Fensterhook zu setzen (im Explorer, dem ja der Desktop gehört) und dort die oben beschriebene Nachricht mal locker zu unterdrücken?

Ansonsten empfiehlt sich in solchen Szenarien üblicherweise die Shell komplett durch eine eigene auszutauschen. Schließlich kann ich noch immer die SAS drücken und bekomme dann den Task Manager präsentiert in dem ich dein Programm abschießen kann. Dein "Sicherheitsgewinn" ist also Minimal solange du nicht größere Geschütze auffährst.

Vielleicht könntest du uns auch stattdessen erklären was du beabsichtigst, es mag Alternativen geben ...

himitsu 10. Apr 2012 22:21

AW: "Desktop anzeigen" abfangen
 
Das klingt irgendwie ein bissl nach Kiosk-Modus.

Aber ich seh keinen wirklichen Grund das zu verbieten. :gruebel:
Höchstens daß man andere Programme starten darf, das währe doch der eigentliche Wunsch?

Popov 10. Apr 2012 23:11

AW: "Desktop anzeigen" abfangen
 
Zu Not von den Viren lernen. Hier ein Link zu einer Seite die zeigt wie man die "Bundespolizei" und "Gema" entfernen kann (übrigens, die sind mit Delphi geschrieben lol), aber man kann sich auch Anregungen für legale Programme holen:

http://www.sempervideo.de/?p=8182
http://www.sempervideo.de/?p=8225

Furtbichler 11. Apr 2012 06:27

AW: "Desktop anzeigen" abfangen
 
Ich kam vor 15 Jahren in die Verlegenheit, so einen Blödsinn programmieren zu wollen.

Ein TTimer, der ständig das Fenster in den Vordergrund holt, auf Topmost setzt, maximiert und sonst jeglichen Schwachsinn anstellt, um den Benutzer zu gängeln.

Es hat funktioniert, aber irgendwie kam ich mir vor, als ob ich den Anwender für Dumm verkaufe.

In zukünftigen Anwendungen habe ich auf diesen Blödsinn verzichtet und statt dessen
a) dem Anwender erklärt, wie Windows funktioniert (also das mit den Fenstern, Hintergrund, ALT-TAB und so, nicht die ganze Geschichte)
b) vom Anwender erwartet, das er weiss, wie das mit den Fenstern, Hintergrund, ALT-TAB und so funktioniert

Wieso ich das für Mist halte? Nun, ich hätte einiges an unbezahlter Energie aufbringen müssen, eine absolut saubere und wasserdichte Lösung umzusetzen. Alles andere führt dazu, das man meine Fähigkeiten zu Recht in Frage stellt.

Da bin ich lieber seriös (oder tue wenigstens so) und lasse die Finger von solch Kinderkram.

Sir Rufo 11. Apr 2012 06:51

AW: "Desktop anzeigen" abfangen
 
Und wenn es ein Kiosk Modus sein soll, dann lässt sich das System mit Bordmitteln derart beschneiden (für ausgewählte Benutzer).

So einen Thread hatten wir vor kurzem erst hier


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz