Mam aplikację, która zmienia niektóre ustawienia innej aplikacji (jest to prosta aplikacja w języku C #, która działa przez podwójne kliknięcie (konfiguracja nie jest wymagana)). Po zmianie ustawień muszę ponownie uruchomić inną aplikację, aby odzwierciedlała zmienione ustawienia.
Aby to zrobić, muszę zakończyć uruchomiony proces i rozpocząć go ponownie, ale problem polega na tym, że po zakończeniu nie jestem w stanie znaleźć procesu. (Powodem jest to, że system nie wie, gdzie jest plik exe ..)
Czy jest jakiś sposób, aby znaleźć ścieżkę uruchomionego procesu lub exe, jeśli jest uruchomiony?
Nie chcę podawać ścieżki ręcznie, macie jakiś pomysł?
1 odpowiedź
using System.Diagnostics;
var process = Process.GetCurrentProcess(); // Or whatever method you are using
string fullPath = process.MainModule.FileName;
//ffullPath ma ścieżkę do pliku exe.
Interfejs API ma jeden haczyk: jeśli uruchamiasz ten kod w aplikacji 32-bitowej, nie będziesz mieć dostępu do 64-bitowych ścieżek aplikacji, więc będziesz musiał skompilować i uruchomić aplikację jako aplikację 64-bitową ( Właściwości projektu → Kompilacja → Cel platformy → x64).