Код: Выделить всё
Process CurProcess = Process.GetCurrentProcess();
Process[] CurProcesses = System.Diagnostics.Process.GetProcessesByName(CurProcess.ProcessName);
if (CurProcesses.Length > 1)
... // Already running
Для одного из пользователей я проверил это лично — программа действительно не запускалась, как указано как в диспетчере задач, так и в командной строке, несмотря на приведенный выше код, сообщающий, что она запущена. Я немного повозился и переместил исполняемый файл, прежде чем вернуть его обратно, а затем, когда я снова запустил программу, она больше не сообщала ошибочно, что процесс запущен.
Похоже, что некоторые бухгалтерские данные Windows периодически устаревают. По-настоящему раздражает то, что оба пользователя сообщают, что время от времени проблема сохраняется после перезапуска - он ошибочно думает, что уже запущен, хотя это определенно не так.
Программа довольно старая и недавно была обновлена для поддержки .NET Framework 4.8. Я не уверен, что это часть проблемы. Я не нашел похожих тем. Спасибо за любую информацию.
Подробнее здесь: https://stackoverflow.com/questions/797 ... ct-results
Мобильная версия