Prüfen, ob ausführbare Datei ausgeführt wird

08/12/2009 - 07:30 von Christoph Engelhardt | Report spam
Hallo NG,

ich will erfahren, ob eine bestimmte Datei ausgeführt wird.

Erste Idee war, dass ich Process.ProcessName und den Namen der Datei
auf Gleichheit prüfe.

Das funktioniert aber nicht zuverlàssig (Stichpunkt: 2 Dateien mit
gleichem Namen "Setup.exe")

Wie also finde ich zuverlàssig raus, ob eine ganz bestimmte Datei
ausgeführt wird?
 

Lesen sie die antworten

#1 Frank Dzaebel
08/12/2009 - 18:31 | Warnen spam
Hallo Christoph,

ich will erfahren, ob eine bestimmte Datei ausgeführt wird.
Erste Idee war, dass ich Process.ProcessName und den
Namen der Datei auf Gleichheit prüfe.
Das funktioniert aber nicht zuverlàssig (Stichpunkt: 2 Dateien mit
gleichem Namen "Setup.exe")



Naja, zum einen wàre die Definition von "ausgeführt" zu
klàren (wenn etwa eine DLL geladen ist, werden ggf. deren
Methoden auch ausgeführt), sprich, ob auch Nicht-Prozess-MainModule
auch mit einbezogen werden sollen. Vermutlich reicht Dir aber das
MainModule des Prozesses. Das ginge zum Beispiel so:

private void Form1_Load(object sender, EventArgs e)
{
Process[] prozesse = Process.GetProcesses();
ProcessModule module; this.Width = 400;
StringBuilder sb = new StringBuilder();
foreach (Process prozess in prozesse)
{
try
{
module = prozess.MainModule;
sb.AppendLine(Path.GetFullPath(module.FileName));
}
catch { }
}
TextBox tb = new TextBox(); tb.Multiline = true;
tb.Dock = DockStyle.Fill; Controls.Add(tb);
tb.ScrollBars = ScrollBars.Both; tb.Text = sb.ToString();
}
_________

Beachte: nicht alle Prozesse und OS liefern eine
valide MainModule-Eigenschaft:

[Process.MainModule-Eigenschaft (System.Diagnostics)]
http://msdn.microsoft.com/de-de/lib...odule.aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen