Wie wird das Formularsystem modal mit C # erstellt?

8

Ich muss das Formular als systemweit oberstes Level anzeigen, z. über / alle / andere Fenster auf dem Bildschirm. Ich weiß, das ist normalerweise / schlechte UI Praxis /, aber ich habe ein sehr spezifisches Szenario im Hinterkopf.

Wir beabsichtigen, normale Windows-PCs für POS-Registrierkassen zu verwenden. Es gibt eine Option auf dem Bildschirm, um die Kassenschublade zu öffnen. Es wäre ziemlich schlimm für jemanden, nur etwas auf einen Bildschirm zu drücken und Zugang zu Geld zu bekommen, wenn der Angestellte nicht hinsieht. Also haben wir PCs mit RFID-Lesegeräten ausgestattet und jeder Mitarbeiter hat seine eigene RFID-Karte, die zur Authentifizierung verwendet wird.

Ich brauche jedoch einen Mechanismus, um den Computer zu sperren (oder unbrauchbar zu machen), wenn der Verkäufer weggeht. Abmelden scheint zu sehr lästig.

Irgendwelche Ideen willkommen.

LP, Dejan

    
Dejan Stanič 23.07.2009, 09:56
quelle

3 Antworten

8

Nun, nach einem Tag der Versuch und Irrtum kam ich zu einer Art Lösung.

Es beinhaltet die folgenden Schritte:

1. Wenn die "Lock" -Taste gedrückt wird, wird neu (leer) / desktop / erstellt. Auf diesem Desktop wird das Programm mit Vollbild und Login ausgeführt. Es gibt nichts anderes, auf diesen Desktop zu wechseln oder auf diesem zu laufen.

2. Task-Manager ist über die Registrierung deaktiviert. Natürlich kann jemand, der nicht eingeladen wurde, immer noch auf das Menü Strg-Alt-Löschen zugreifen, aber dort kann ihm nichts besonders schaden.

3. Alt-F4 und so sind deaktiviert.

4. Wenn die Authentifizierung vorgenommen wird, wechselt das Programm zurück zum ursprünglichen Desktop und alles verläuft normal.

Natürlich ist P / Invoking erforderlich. Wenn jemand etwas Ähnliches machen möchte, wird er / sie vielleicht mein nacktes Beispiel hilfreich finden - link text

LP, Dejan

    
Dejan Stanič 23.07.2009, 15:10
quelle
1

Ich denke, dass Sie in die Win32-API aufrufen müssen, um dies zu erreichen.

Sie müssen nachsehen:

ShowWindow und SetWindowPos

und rufen sie mit Code auf, der dem folgenden ähnlich ist (beachten Sie, dass das Pseudocode ist):

%Vor%     
CraigTP 23.07.2009 10:16
quelle
-2

Formular hat eine TopMost-Eigenschaft.

set Form.TopMost = true

    
chikak 23.07.2009 10:04
quelle

Tags und Links