Entwickler-Ecke
Sonstiges (.NET) - Programm schließung durch cmd verhindern?
Hegrid231 - Fr 08.12.17 20:05
Titel: Programm schließung durch cmd verhindern?
Ich schreibe gerade ein Programm das ein Passwort verlangt und das nicht ohne das Passwort geschlossen werden kann.
Jetzt habe ich aber ein problem und zwar das man per Kommandozeile das Programm immernoch schließen kann! Gibt es einen Weg um zu verhindern das ,dass möglich ist? z.B per Registry?
Hier der CODE:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Diagnostics; using System.Windows.Forms;
namespace WindowsFormsApp2 { public partial class Form1 : Form { int Width = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width; int Height = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height; bool locked = true; public Form1() { InitializeComponent(); }
void Form1_Load(object sender, EventArgs e) { this.Size = new System.Drawing.Size(Width, Height); this.Left = 0; this.Top = 0; this.textBox1.Size = new System.Drawing.Size(Width / 3, (Height / 5) / 2); this.textBox1.Top = (programm.Height / 2) - ((Height / 5) / 2); this.textBox1.Left = (programm.Width / 2) - ((Width / 3) / 2); this.button1.Size = new System.Drawing.Size(textBox1.Width / 3, (textBox1.Height / 5) * 2); this.button1.Top = textBox1.Top + textBox1.Height + 20; this.button1.Left = (textBox1.Left + (textBox1.Width / 2)) - button1.Width / 2; }
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (locked) { e.Cancel = false; } }
private void button1_Click(object sender, EventArgs e) { if (textBox1.Text == "test") { locked = false; this.Close(); } } } } |
Delphi-Laie - Fr 08.12.17 20:24
Der Möglichkeiten, ein Programm zu beenden, sind damit nicht erschöpft. Es kann z.B. auch gewaltsam von außen beendet ("abgeschossen") werden, und das ist n.m.W. nicht zu verhindern.
Insofern halte ich derlei Bemühungen für vergebliche Mühe.
Hegrid231 - Fr 08.12.17 20:32
Okay, trotzdem danke.
Ralf Jansen - Fr 08.12.17 21:04
Wenn du uns deinen Anwendungsfall näher erklärst haben wir vielleicht eine intelligente andere Lösung für dein Problem. Bzw. können dich zu den Rahmenbedingungen führen in denen so etwas möglich wäre und sehen ob das dann für dich noch Sinn macht.
Nebenbei das was du da gerade beschreibst sieht eher nach einem naiven Versuch eine Art Ransomware zu schreiben (das ist glücklicherweise nicht ganz so simpel). Solltest du was anderes versuchen helfen wir natürlich gern nach Möglichkeit weiter.
Palladin007 - Sa 09.12.17 19:11
Dass ein Programm auf irgendeine Weise beendet werden kann, lässt sich nicht ohne Weiteres verhindern und das ist auch gut so!
Wenn Du keine Ransomware oder Vergleichbares schreiben willst, dann bietet es sich vielleicht an, den Zustand, in dem sich das Programm befand, zu speichern.
Wenn der Nutzer das Programm erneut startet, soll er sich dann genau da wieder finden, wo er zuvor das Passwort eingeben sollte.
So kannst Du nicht das Beenden verhindern, aber dass der Nutzer durch das Beenden z.B. die Passwort-Eingabe umgehen kann.
jaenicke - So 10.12.17 12:47
Es gibt ja im Grunde nur zwei große Anwendungsfälle:
- Kioskmodus
- wie schon genannt Schadsoftware
Um so etwas wie einen Kioskmodus zu realisieren gibt es viele Möglichkeiten, nur müsste dafür klar sein was das Ziel ist.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!