vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Screenlocker 
Autor: Undertaker17
Datum: 03.04.15 19:35

Hallo zusammen,

Bereits im Dr.Windows Forum hab ich nachgefragt, ob es ein Programm gibt, das die Windows-oberfläche komplett sperrt, ohne den Windows Lockscreen. Im gegenteil. Die sicht auf den Desktop darf nicht behindert werden. lediglich unten rechts, soll ein kleines Passworteingabefenster sein, das bedienbar bleibt.

http://www.drwindows.de/programme-und-tools/86535-suche-programm-um-computer-spezielle-weise-sperren.html

Dort wurden ja bereits auch mehrere Programme gepostet. Das letzte kommt noch am ehesten an meine bedürfnisse heran, wenn da nicht das PW eingabefenster mitten auf dem bildschirm Thronen würde.

Daher will ich mir das ganze jetzt selbst schreiben.

Aber leider habe ich keinerlei Ahnung davon, wie ich da ran gehen soll. Mit Systemweiten eingriffen, wie STRg ALT Entf deaktivieren und Tastatur deaktivieren und so dass der Desktop halt nicht mehr verwendbar ist, habe ich noch keinerlei erfahrung gesammelt.

Hab zwar auch schon dieses Tutorial ausprobiert:

http://www.instructables.com/id/Screen-Lock-VBNET/?lang=de

Allerdings klappt das ganze auch nicht so richtig wie ich das will...

Wäre schön, wenn mir jemand ein paar tipps geben kann oder evtl. ein paar Snippets...

Danke schonmal im vorraus

gruß

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Screenlocker 
Autor: Kuno60
Datum: 06.04.15 14:18

Hallo,

die einfachste Möglichkeit ist, eine transparente Form in voller Bildschirmgröße über den Desktop zu legen.
FormBorderStyle = None
TopMost = True
Opacity = 2%

Ein schöner Effekt ist auch:
BackColor = Color.Black und Opacity = 25%
Dabei wird der Dektop abgedunkelt.

[u]VORSICHT
Baue auf jeden Fall eine Möglichkeit ein, mit der du das Programm beenden kannst, sonst hast du dir selbst ein Ei gelegt!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Screenlocker 
Autor: Undertaker17
Datum: 06.04.15 18:59

Hallo Kuno,

danke für deine Antwort. Erst hab ich deinen Tipp natürlich beherzigt, dass ich mir ein Hintertürchen offen halte. Dann hab ich diese wieder gelöscht, und dann vergessen... Dann hab ich mich quasi selbst ausgesperrt xD Faszinierend dass eine so einfache lösung so effektiv sein kannn´... Dafür einen großen Daumen nach oben.

Nun hab ich aber das Problem mit der Opacity eigenschaft. Hab ein bisschen rum gespielt...wie kann ich einstellen, dass die Form zwar eine Opacity von 0 hat, aber die darauf befindlichen steuerelemente (Texteingabefeld und Button) NICHT?

Gruß

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Screenlocker 
Autor: Manfred X
Datum: 06.04.15 20:21

[I]Bereits im Dr.Windows Forum hab ich nachgefragt, ob es ein Programm gibt, das die Windows-oberfläche komplett sperrt ...[/I]
Mit der allgemein bekannten Tasten-Kombination Strg-Alt-Del läßt sich der Taskmanager starten.

Übrigens: Die Opacity-Eigenschaft akzeptiert keine Prozentwerte, sondern einen Double-Wert,
der im Bereich 0.0 - 1.0 liegt.
Zugewiesene Werte, die darüber liegen, werden als 1 interpretiert. Es kommt nicht zu einer Ausnahme.

Sichtbarkeit von Controls:
Du kannst eventuell zwei Formulare verwenden. Eines, dessen Opacity auf 0 steht und eines
davor, dessen TransparencyKey-Eigenschaft auf die Hintergrundfarbe der Form festgelegt wird.
Die Controls müssen eine andere Hintergrundfarbe haben.

Beitrag wurde zuletzt am 06.04.15 um 20:44:50 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sichtbares Control 
Autor: Manfred X
Datum: 06.04.15 21:04

Public Class frmScreenWhatEver
 
    Dim tbo As New TextBox
 
    Dim WithEvents frmTransparent As New Form With _
        {.TransparencyKey = Form.DefaultBackColor, 
         .TopMost = True, _
         .FormBorderStyle = Windows.Forms.FormBorderStyle.None,
         .WindowState = FormWindowState.Maximized}
 
    Private Sub frmScreenWhatever_Load(sender As System.Object, _
        e As System.EventArgs) Handles MyBase.Load
 
        Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
        Me.TopMost = True
        Me.Opacity = 0.01
        Me.WindowState = FormWindowState.Maximized
 
 
        tbo.Parent = frmTransparent
        tbo.BackColor = Color.LightGray
        tbo.Text = "Halli Hallo!"
        tbo.Font = New Font("Arial", 40)
        tbo.Width = 300
        frmTransparent.Show()
    End Sub
 
 
    Private Sub frmTransparent_KeyDown(sender As Object, _
        e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
 
        'Di Taste C beendet den Spuk ...
        If e.KeyCode = Keys.C Then
            Me.Close()
        End If
    End Sub
End Class
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Screenlocker 
Autor: Kuno60
Datum: 07.04.15 18:25

Manfred X schrieb:
Zitat:

Mit der allgemein bekannten Tasten-Kombination Strg-Alt-Del
läßt sich der Taskmanager starten.

Das ist Richtig und mit einem Trick kann man auch dies verhindern.

Zitat:

Übrigens: Die Opacity-Eigenschaft akzeptiert keine
Prozentwerte, sondern einen Double-Wert,
der im Bereich 0.0 - 1.0 liegt.
Zugewiesene Werte, die darüber liegen, werden als 1
interpretiert. Es kommt nicht zu einer Ausnahme.

Es soll aber auch Leute geben, die den FormDesigner benutzen und die Eigenschaften im Eigenschaften-Fenster einstellen...
Dort wird Opacity in Prozent angegeben. 0% blendet die Form aus. 1% wird zu 100% und muss als 0,01 eingegeben werden. Alle Werte > 1 werden als Prozent interpretiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Screenlocker 
Autor: Kuno60
Datum: 07.04.15 19:25

Hallo,

ist Lustig
Ja mit TopMost = True, kann man sich schnell eine Falle bauen. Es hilft dann meistens nur noch der Taskmanager.

Für die Eingabe eines Passwortes kannst Du eine andere Form benutzen.
Diese kann z.B. eine Textbox und einen Button haben.
Class EingabeForm
 
  Private Sub EingabeForm_FormClosing(sender As Object, e As _
    FormClosingEventArgs) Handles Me.FormClosing
    e.Cancel = e.CloseReason = CloseReason.UserClosing
  End Sub
 
  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles _
    Button1.Click
    If Me.TextBox1.Text = "frei" Then
      Application.Exit()
    End If
  End Sub
 
End Class
Das FormClosing-Ereignis verhindert das Schließen der Form mit Alt+F4.
Diese Form sollte auch kein Schließsymbol haben, also ControlBox = False, wobei dieses auch durch FormClosing abgefangen würde.
WICHTIG: Das Programm kann dann nur noch mit "Application.Exit" beendet werden! Nicht "End" benutzen, das kann zum Desktop Absturz führen!

Damit das Programm nicht durch den Taskmanager geschlossen werden kann, kannst du der transparenten Form einen Timer hinzufügen.
  Private Sub SperrForm_Shown(sender As Object, e As EventArgs) Handles Me.Shown
    Me.Timer1.Start()
    EingabeForm.ShowDialog(Me)
  End Sub
 
  Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    'Reihenfolge nicht ändern!
    Me.BringToFront()
    EingabeForm.BringToFront() 'Wichtig!
  End Sub
Der Taskmanager wird auf diese Weise ebenfalls von der transparenten Form überdeckt und somit gesperrt.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Screenlocker 
Autor: Manfred X
Datum: 07.04.15 22:59

Hallo!

Der Taskmanager bleibt dabei sichtbar und sein Fenster verdeckt - zumindest teilweise -
den Blick auf die Programm-Aktivitäten, die am Bildschirm dargestellt werden sollen.
[I]Die Sicht auf den Desktop darf nicht behindert werden.[/I]

Man müßte den Taskmanager-Prozeß also "killen", sobald man ihn in einem
Timer-Tick-Handler als gestartet erkannt hat.
Per CTRL-ALT-DEL läßt sich der Bildschirm dann aber immer noch "kalt stellen".

Beitrag wurde zuletzt am 07.04.15 um 23:14:26 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Screenlocker 
Autor: Manfred X
Datum: 07.04.15 23:11

[I]Es soll aber auch Leute geben, die den FormDesigner benutzen und die Eigenschaften im Eigenschaften-Fenster einstellen..[/I]
Ja, genau. Und für diesen Personenkreis habe ich - zur Vermeidung von Mißverständnissen - auf das tatsächliche Verhalten der
"Opacity"-Eigenschaft hingewiesen. (Diese Eigenschaft führt übrigens - bei direkter Zuweisung von Double-Werten
im Code oder im Designer - auch keine Rundung auf zwei Stellen durch.)



Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Thema Gelöst 
Autor: Undertaker17
Datum: 09.04.15 20:47

Hallo zusammen,

also ich hab das ganze nun tatsächlich so hin bekommen wie ich mir das vorgestellt hab...

Ich danke euch allen für eure tollen hinweise und tipps, dass das ganze geklappt hat...

Bis bald...

Gruß Undertaker17



Beitrag wurde zuletzt am 09.04.15 um 20:47:53 editiert.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Screenlocker 
Autor: Undertaker17
Datum: 11.04.15 23:37

Guten abend zusammen,

Ich hab eine schlechte nachricht. Das programm, so wie ich es aus euren ganzen tipps und tricks zusammen gebastelt habe funktioniert zwar einwandfrei...

aaber.... Unser vereinsvorstand hat gemeint, es sei nicht gut, dass die bedienung des gesamten Computers blockiert würde...

Daher muss ich das ganze leider nochmals ausgraben... Ist es denn möglich, ddas betroffene Programm ansich irgendwie zu blockieren? Also wieder als beispiel notepad. Dass ich z.b. per Windowhandle die Maus/Tastatur innerhalb der Koordinaten des Programmfensters ausschalte oder dass ich eine Transparente form immer mit den koordinaten des Notepadfensters abgleiche, sodass dieses dadurch wiederrum blockiert ist... Keine Ahnung...

Hat jemand noch weiter Lösungsansätze oder ideen Tipps und Kniffe, wie ich das ganze realisieren könnte??

Gruß engelinzivil

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

... doch kein Screenlocker .... 
Autor: Manfred X
Datum: 12.04.15 07:02

Hallo!

Was willst Du bzw. Dein Vereinsvorstand eigentlich erreichen ???

Wenn der Computer für Nutzer "operational" bleiben soll,
darfst Du den Screen nicht blockieren oder manipulieren.
Auch TopMost-Windows sollten dann tabu sein.

[B]Vermutlich (???) eignen sich für Deine Zwecke Hooks,
um Tastatur- und Maus-Inputs zu filtern bzw. zu "verschlucken",
damit sie die "geschützte Anwendung" nicht erreichen können.

Bevor man solche Windows-Apis nutzt, sollte man einiges darüber wissen.
http://www.programmershare.com/894851/
http://www.pinvoke.net/default.aspx/user32/SetWindowsHookEx.html
http://www.vbarchiv.net/tipps/details.php?id=1991
http://stackoverflow.com/questions/2080617/intercepting-mouse-events-using-a-global-hook-stop-an-action-from-happening





Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Screenlocker 
Autor: sv00010
Datum: 12.04.15 13:25

Undertaker17 schrieb:
Zitat:


aaber.... Unser vereinsvorstand hat gemeint, es sei nicht
gut, dass die bedienung des gesamten Computers blockiert
würde...

Das hört sich jetzt so an, als wenn du so eine Art Keylogger bauen sollst.
Ein Programm welches die komplette Nachrichtenschleife überwacht,
aber selbst nicht sichtbar ist.
Es ist immer ein großes Problem irgendwelchen "Vorständen" klar zu machen,
wieviel Arbeit so etwas macht.
Mein herzliches Beileid.
0

Beitrag wurde zuletzt am 12.04.15 um 13:26:33 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Screenlocker 
Autor: Undertaker17
Datum: 20.04.15 22:00

Hallo Zusammen,

Sorry dass ich mich jetzt erste wieder melde aber Beruflich war ich in letzter zeit etwas eingespannt.

Also. Das was Manfred X mit den Hooks erwähnt hat, hört sich schlüssig und interessant an, leider hab ich keine Ahnung davon.

@sv00010: Ja da hast du ziemlich recht damit, dass es bald mehr arbeit ist, einem Vorstand etwas zu erklären, wovon er keine ahnung hat. (eigentlich bin ich ja selbst schuld, da ich mich bereit erklärt habe, das ganze in die hand zu nehmen xD)

Gruß Undertaker17

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel