Одна мысль, которую я имел, состояла в том, чтобы использовать ключ реестра, поэтому, когда выполняется первый App.exe run
, он устанавливает ключ реестра на определенное значение (то есть true
) и периодически проверяет, является ли он все еще * 1003. * а если нет, то использует Environment.Exit(0)
для закрытия.
Теперь вашему App.exe exit
потребуется обновить этот раздел реестра до false
. Это кажется довольно компактным решением, так как вам не нужно беспокоиться о том, чтобы найти определенный процесс и убить его, фактически ни одна из программ не должна знать о другом, так как он просто обновляет раздел реестра.
Другим решением было бы сделать то же самое с временным текстовым файлом, но я бы порекомендовал параметр ключа реестра до этого.
Вот некоторая документация по классу RegistryKey
для вашей справки. Я использовал это много раз в предыдущих проектах, так что это должно работать для вашего случая.
https://docs.microsoft.com/en-us/dotnet/api/microsoft.win32.registrykey?view=netframework-4.7.1
Чтобы начать работу с этой опцией, я бы вручную создал ключ в кусте программного обеспечения, а затем получил к нему доступ, используя следующую команду.
RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software");