Laden...

Process.Start() Probleme

Erstellt von KingPin vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.333 Views
K
KingPin Themenstarter:in
376 Beiträge seit 2005
vor 17 Jahren
Process.Start() Probleme

hallo forum,

ich benötige mal wieder eure hilfe...
ich möchte eine datei mit dem dazugehörigen prog öffnen über Process.start().
das klappt auch ganz gut, wenn das entsprechende prog nicht bereits geöffnet ist.
da ist nämlich der wurm drin... wenn das progr bereits offen ist, passiert nämlich nichts.
wie kann ich es jedoch so anstellen, dass die datei geöffnet wird, auch wenn das entsprechende prog bereits offen ist?

danke.

1.433 Beiträge seit 2006
vor 17 Jahren

Hy
Du fragst zuerst ab, ob der Process bereits am Laufen ist und beendest diesen dann. Danach kannst Du den Prozess mit den von Dir mitgegebenen Parametern starten.


if (process.hasexited !=true)
{
      process.close();
}

DeinProcess.start()

So in der Art würd ich es jetzt machen. 😉

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt

K
KingPin Themenstarter:in
376 Beiträge seit 2005
vor 17 Jahren

das habe ich mir auch schon überlegt..
aber ich weiss es nicht genau, ob es erwünscht ist, dass der alte prozess geschlossen wird...

eine andere möglichkeit gibt es nicht, die vergleichsweise einfach wäre?

I
2 Beiträge seit 2007
vor 17 Jahren

Wie wärs mit dieser Lösung?

public static Process RunningInstance()
        {
            // Alle Prozesse mit dem Namen des aktuellen Prozesses holen
            Process[] processes = Process.GetProcessesByName(
            Process.GetCurrentProcess().ProcessName);
            // Alle Prozesse durchgehen und den Fenstertitel vergleichen
            string mainWindowTitle = Process.GetCurrentProcess().MainWindowTitle;
            for (int i = 0; i < processes.Length; i++)
            {
                // Den aktuellen Prozess ausschließen
                if (processes[i].Id != Process.GetCurrentProcess().Id)
                {
                    if (processes[i].MainWindowTitle == mainWindowTitle)
                    {
                        // Prozess gefunden, diesen zurückgeben
                        return processes[i];
                    }
                }
            }
            // Kein Prozess gefunden, der dem aktuellen entspricht, also null
            // zurückgeben
            return null;
        }

Du müsstest halt anstatt GetCurrentProcess den jeweiligen einsetzen den du brauchst, sollte dann eigentlich funktionieren wenn ich dich nicht falsch verstanden habe 😉

mfg Inf3rnus

http://netencoderteam.funpic.de