Laden...

Process - Start Parameter

Erstellt von ltgwjo vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.623 Views
L
ltgwjo Themenstarter:in
5 Beiträge seit 2006
vor 16 Jahren
Process - Start Parameter

Hallo Leute!

Wie erhalte ich die Start Parameter, wenn mehrere gleichnamige Prozesse mit unterschiedlichen Startparametern laufen?

LG
Josef 🤔

P
992 Beiträge seit 2007
vor 16 Jahren

ProcessStartInfo pInfo = myProcess.StartInfo

Ansonsten müsstest du dein Vorhaben etwas näher erläutern.

L
ltgwjo Themenstarter:in
5 Beiträge seit 2006
vor 16 Jahren

Hallo punkdevil!

Das ging ja super schnell!!!

Mein Problem:
Beim Start der Applikation ist die Prozessliste zu durchsuchen ob der Prozess nicht schon läuft.
Diese Prozesse unterscheiden sich nicht durch dem Prozessnamen sondern durch deren Parameter.

Process m = Process.GetCurrentProcess();
ProcessStartInfo m = m.StartInfo;
m.StartInfo.Arguments; ="" ???

Leider steht aber nichts in Arguments drinnen 🙁

MSDN
For example, if you use GetProcesses to get an array of processes running on the computer, the StartInfo property of each Process does not contain the original file name or arguments used to start the process.

Die grosse Frage:
Wie kommt man zu den Startparameter von den laufenden Prozessen?

LG
Josef

738 Beiträge seit 2007
vor 16 Jahren

ungetestet:


System.Diagnostics.Process m = System.Diagnostics.Process.GetCurrentProcess();
System.Diagnostics.ProcessStartInfo ms = m.StartInfo;
string argumente = ms.Arguments;

so vielleicht ???

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo ltgwjo,

Wie kommt man zu den Startparameter von den laufenden Prozessen?

wenn Sie nicht in Arguments stehen, vermutlich gar nicht.

herbivore

B
1.529 Beiträge seit 2006
vor 16 Jahren

Nein, die ProcessStartInfo sind wirklich nur Framework intern zum Starten gedacht, d.h. sie reflektieren keine Eigenschaften existierender Prozesse.

Daher: WMI, Klasse: root\CIMV2\Win32_Process, Property: CommandLine

L
ltgwjo Themenstarter:in
5 Beiträge seit 2006
vor 16 Jahren

Hallo Borg!

Hättest du ein Beispiel für mich, Bitte?

Josef =)

738 Beiträge seit 2007
vor 16 Jahren

der macht dir die beispiele

L
ltgwjo Themenstarter:in
5 Beiträge seit 2006
vor 16 Jahren

Danke nin!

Der WMICodeCreator ist eine tolle Sache!

Ein Beispiel!


using System;
using System.Management;

namespace WMISample
{
    public class MyWMIQuery
    {
        public static void Main()
        {
            try
            {
                ManagementObjectSearcher searcher =
                    new ManagementObjectSearcher("root\\CIMV2",
                    "SELECT * FROM Win32_Process");

                foreach (ManagementObject queryObj in searcher.Get())
                {
                    Console.WriteLine("CommandLine: {0}", queryObj["CommandLine"]);
                    Console.WriteLine("ProcessID: {0}", queryObj["ProcessID"]);
                    Console.WriteLine("Name: {0}", queryObj["Name"]);
                }
                while(Console.KeyAvailable == false) 
                {
                    System.Threading.Thread.Sleep(100);
                }
            }
            catch (ManagementException e)
            {
                Console.WriteLine("An error occurred while querying for WMI data: " + e.Message);
            }
        }
    }
}