Powiedzmy, że próbuję utworzyć nowy proces z następującego kodu:Pierwsze PID procesu utworzonego w C#
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.WorkingDirectory = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
p.StartInfo.FileName = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\AwesomeFile.exe";
p.StartInfo.Arguments = "parameter1 parameter2";
p.StartInfo.CreateNoWindow = true;
p.Start();
i prawo w następnej linii, postaram się dostać pid tego procesu z następującym wierszem:
MessageBox.Show(p.Id);
Ta linia daje mi "Żaden proces nie jest powiązany z tym obiektem". błąd. Każdy pomysł, dlaczego ten błąd występuje?
Dziękuję za odpowiedź. Czy istnieje sposób identyfikacji różnych procesów o tej samej nazwie? Powiedzmy, że mam uruchomione dwa procesy iexplore, oba zostały początkowo wykonane z różnymi adresami URL jako parametrami. Skąd mam wiedzieć, który z nich jest w tablicy? – screenshot345
Zauważyłem to polecenie: System.Diagnostics.Process.GetProcessesByName ("processname") [0] .StartInfo który zawiera parametr argumentu, który byłby świetny, ale okazuje się pusty w pliku, który nie był wykonywane przez C#. Czy jest jakiś sposób aby to naprawić? – screenshot345