|
You last visited: Today at 04:01
Advertisement
[VB.NET]Prüfen ob eine Anwendung startet
Discussion on [VB.NET]Prüfen ob eine Anwendung startet within the .NET Languages forum part of the Coders Den category.
03/21/2013, 15:11
|
#1
|
elite*gold: 3570
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
|
[VB.NET]Prüfen ob eine Anwendung startet
Hey Leute,
bei uns im Jugendhaus sind kleine Kinder, die immer was spielen wollen. Meist ist es Minecraft. Eigentlich immer.
Nun wollte ich ein "kleines" Passwort-System schreiben, dass sie nicht mehr so einfach Minecraft etc. starten können.(Für jede Anwendung ein Passwort eingeben)
Für Minecraft alleine habe ich es schon geschafft. Ich will es nun so haben:
Pseudocode:
Code:
If Eine Anwendung Startet Then
Me.Show()
Else
Me.Hide[
End If
So ungefähr meine ich es. Google hat mir nur Ergebnisse für einzelne Prozesse gegeben, was mir leider nicht hilft.
MfG
ya Pony /)
|
|
|
03/21/2013, 22:23
|
#2
|
elite*gold: 462
Join Date: Mar 2013
Posts: 3,427
Received Thanks: 333
|
Meinst du es so ?
Code:
If Process.Start("C:\irgendwas.exe") then
......
|
|
|
03/22/2013, 04:24
|
#3
|
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
|
Mhh
Könntest du genauer erklären was du da machen willst ?
Soll es ein Tool werden das jeden Start überwacht oder eines das das Programm startet wenn das Richtige Passwort eingegeben wurde ?
Das ganze ist nicht soo trivial wie es sich anhört
Hier ein Beispiel wie du das System und alle gerade laufenden Process ohne einen Hook abfragen kannst
Code:
List<string> programme = new List<string>();
programme.Add("notepad");
Process[] allproc = Process.GetProcesses();
foreach (Process x in allproc)
{
if (programme.Contains(x.ProcessName))
{
MessageBox.Show("wurde gestartet");
}
}
Müsstest dann noch eine Liste pflegen die die Entsprechden Processhandles aufnimmt so das nicht doppelt abgefragt wird, das ganze periodisch aufrufen.
In der Passwortfunktion das Passwordwindow immer in den Fordergrund holen etc.
Weiß leider nicht wie gut das ganze in Sachen Ressourceneffiziens wäre, ich tip mal auf nich so toll :P
@smokingdeath
Was genau soll dieser Code bewirken ? +g+
Also wenn ich das nun nicht total falsch verstehe würde dein Code
irgendwas.exe starten
wenn windows den process starten kann tue etwas
*kopfkratz*
|
|
|
03/22/2013, 08:18
|
#4
|
elite*gold: 3570
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
|
Er soll jedes mal, wenn ein Prozess gestartet wird der NICHT mit dem Start drin ist, die Form zum Passwort anzeigen.
Also jegliche Prozesse die existieren.
Hab mir schon überlegt, die aktuelle Prozessliste zu speichern, jede Sekunde überprüfen und wenn sich was ändert, die Form anzeigen soll.
|
|
|
03/22/2013, 08:27
|
#5
|
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
|
Mhhh kannst etwas genauer erklären wie du dir das vorgestellt hattest ?
Edit: nach etwas nachdenken komm ich zu dem Schluss das was du da machen magst so ganz und garnicht trivial ist
Der Weg den du bisher gegangen bist wird auf diese Größe ausgedehnt ordentlich Cpu fressen. Das wäre zwar immernoch machbar aber weiß nicht ob das so das Geschickteste ist :/
Die einfachste Lösung wäre es wohl CreateProcess systemwide zu hooken, aber bin mir nicht sicher ob das für dich Lohnenswert ist, da es durchaus einiges an Arbeit erfordert und nicht gerade trivial ist mit C#
|
|
|
03/22/2013, 09:19
|
#6
|
elite*gold: 3570
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
|
Ich will das auch in Vb machen
|
|
|
03/22/2013, 09:40
|
#7
|
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
|
Vb und C# sind beides .net Sprachen, solltest also alles in der einen wie der anderen umsetzen können 
Ist mehr oder weniger nur ein anderer Syntax aber am ende kommt das selbe raus
|
|
|
03/22/2013, 11:02
|
#8
|
elite*gold: 3570
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
|
Es wird doch wohl iwie möglich sein
|
|
|
03/22/2013, 11:10
|
#9
|
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
|
Sicher  Wie gesagt dein Ansatz von oben würde ja funktionieren, aber er wird einfach eine menge Systemleistung fressen
|
|
|
03/22/2013, 11:14
|
#10
|
elite*gold: 0
Join Date: Sep 2005
Posts: 427
Received Thanks: 87
|
Ist bereits in Windows integriert, nennt sich Jugendschutzeinstellung
|
|
|
03/22/2013, 12:16
|
#11
|
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
|
Quote:
Originally Posted by dready
Sicher  Wie gesagt dein Ansatz von oben würde ja funktionieren, aber er wird einfach eine menge Systemleistung fressen
|
Nee  Das frisst nicht allzu viel Leistung. Man muss ja nicht alle 5ms die Prozesse checken. 200ms reichen ja auch aus.
|
|
|
03/22/2013, 13:21
|
#12
|
elite*gold: 3570
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
|
Ich kann es ja auch alle 5000ms Ch ecken lassen.
So wird der PC nicht extrem überlastet.
|
|
|
03/22/2013, 14:31
|
#13
|
elite*gold: 2932
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
|
du kannst nur die liste aller prozesse durchsuchen aber du kannst nicht ohne weiteres ein event erstellen welches auslöst wenn ein prozess irgendwie irgendwo auf dem pc gestartet wird
wenn du immer die laufenden prozesse durchsuchst musst du entweder mit einer white oder einer blacklist arbeiten anders wird es nicht klappen
|
|
|
03/23/2013, 10:48
|
#14
|
elite*gold: 3570
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
|
Dann muss ich nochmal überdenken wie ich das auf die einfachste Weise machen kann.
|
|
|
03/23/2013, 12:46
|
#15
|
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
|
Code:
Public Shared allreadychecked As New List(Of Process)()
Private Sub Form1_Load(sender As Object, e As EventArgs)
Dim programme As New List(Of String)()
programme.Add("notepad")
Dim allproc As Process() = Process.GetProcesses()
For Each x As Process In allproc
If programme.Contains(x.ProcessName) Then
startcheck(x)
End If
Next
End Sub
Private Sub startcheck(x As Process)
If allreadychecked.Contains(x) Then
Return
End If
' hier pw abfrage anzeigen und pwcheck darin aufrufen
End Sub
Private Sub pwcheck(pw As String, x As Process)
If x.ProcessName = "notepad" Then
If pw = "notepadpw" Then
allreadychecked.Add(x)
Else
x.Kill()
End If
End If
End Sub
Ist durchn Converter gejagt, von der Performance her sich nicht optimal und ganz allgemein nicht getestet, aber ich hoff mal du kannst verstehen was der Gedanke bei dem ganzen war.
|
|
|
 |
Similar Threads
|
Harmonia3 Anwendung startet nicht [Bitte um Hilfe]
07/04/2012 - Metin2 Private Server - 1 Replies
Sers leute ich habe folgendes problem.
Wenn ich von Harmonia3 die exe starten möchte passiert einfach nichts der mauszeiger lädt etc aber es öffnet sich nichts ist auch bei anderen p-servern so
weiß einer von euch warum ?
|
Suche jmd. der mir eine Facebook Anwendung installiert
01/23/2012 - elite*gold Trading - 2 Replies
Huhu zusammen,
ich habe auf meinem Rechner eine fertige Anwendung. Auch schon auf einen Webspace geladen.
Nun weiß ich allerdings nicht, wie ich diese zu meiner Facebook Page hinzufüge.
Suche jmd. der das via Teamviewer macht.
Mfg
|
[AutoIT] Eine alternative Anwendung ausführen?
05/04/2011 - AutoIt - 7 Replies
Heyho Coders,
Ich hab mal wieder eine Frage.
Undzwar habe ich vor in meinem Tool
eine Exe per
shellexecute("test.exe")
|
[Guide] Prüfen ob eine Seite per SQL Injection angreifbar ist.
10/28/2010 - Tutorials - 14 Replies
Achtung: Ich übernehme in keinster Weise Verantwortung dafür wenn ihr durch diesen Guide bei irgentwelchen Seiten was anstellt.
1) Um zu prüfen ob eine Seite per SQL Injection angreifbar ist müsst ihr einen Link finden der so aussieht:
Die Seite braucht ganz einfach nur ein = in den URL.
Bei der URL schreibt ihr noch ein ' dahinter, Bsp.:
Wenn die Seite bzw. die Datenbank angreifbar ist, kriegt ihr eine MySQL Fehlermeldung so wie diese:
|
All times are GMT +2. The time now is 04:04.
|
|