| |
VB.NET - Ein- und UmsteigerScreenlocker | | | 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ß
| |
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!
| |
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ß
| |
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. | |
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 | |
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.
| |
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. | |
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. | |
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.)
| |
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. | |
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
| |
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. | |
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
| |
| 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 |
|
|
Neu! sevCommand 4.0
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|