Проверка повторного вхождения хорошо делается на мьютексах:
const string ; // GUID static void Main(string[] args) < using (var mutex = new Mutex(false, id)) < try < try < if (!mutex.WaitOne(TimeSpan.FromSeconds(1), false)) < // TODO: Вызвать this.Hide, а еще лучше просто выйти >> catch (AbandonedMutexException) < >> finally < mutex.ReleaseMutex(); >> >
Отслеживать
ответ дан 26 мар 2012 в 6:44
34.3k 25 25 золотых знаков 95 95 серебряных знаков 213 213 бронзовых знаков
Обновил первый пост, код почему-то не работает(
26 мар 2012 в 7:10
- Если очень хочется и ты имеешь ввиду закрытие программы ПОЛНОЕ, т.е. она не будет висеть в трее или в фоне, тогда надо сделать какой нибудь проперти файл и в нем хранить флаг — кол-во запусков программы, а при запуске его проверять и обрабатывать.
- Если в фоне, можно хранить в флаг в переменной.
Отслеживать
ответ дан 26 мар 2012 в 6:40
12.4k 1 1 золотой знак 19 19 серебряных знаков 43 43 бронзовых знака
Да но как сделать,я при помощи переменной уже пытался делать, не получилось hashcode.ru/questions/93588/…
Как исправить Код ошибки: 0x80072F8F–0x20000 при запуске Media Creation Tool
26 мар 2012 в 7:08
Вам нужно освобождать мьютекс не сразу, а при закрытии программы.
Ещё могу порекомендовать использовать класс System.Diagnostics.Process для получения предыдущей копии процесса.
var current_proc = Process.GetCurrentProcess(); var same_procs = Process.GetProcessesByName(current_proc.ProcessName).Where(p => p.Id != current_proc.Id p.MainModlue.FileName == current_proc.MainModlue.FileName).ToList(); if (same_procs.Count > 0) this.Hide();
Источник: ru.stackoverflow.com
Исправление ошибки 0xc000012d при запуске приложения в Windows 10
Чаще всего с ошибкой 0xc000012d приходится сталкиваться при запуске компьютерных игр и ресурсоемких приложений, что может указывать на нехватку оперативной памяти в момент запуска. В этом случае должно помочь высвобождение ресурсов памяти. Попробуйте завершить работу всех фоновых программ, в том числе тех, которые находятся в автозагрузке. Если приложение или игра запустятся без ошибки, нужно будет всерьез подумать об увеличении объема оперативной памяти путем установки дополнительных планок RAM.
Способ 2: Изменение объема файла подкачки
Временным альтернативным решением может стать увеличение виртуальной памяти, также известной как файл подкачки или свопа.
- Нажмите на клавиатуре Win + R, введите в открывшемся диалоговом окошке команду systempropertiesperformance и нажмите клавишу ввода.
- Переключитесь в открывшемся окне «Параметры быстродействия» на вкладку «Дополнительно» и нажмите в блоке «Виртуальная память» кнопку «Изменить».
Как исправить ошибку 0x80072f8f — 0x20000 Media Creation Tool
Способ 3: Проверка оперативной памяти
Нельзя также исключать, что причиной ошибки 0xc000012d стала неисправность оперативной памяти. Чтобы проверить ОЗУ на предмет ошибок, выполните следующие действия.
- Откройте окошко быстрого выполнения команд нажатием комбинации клавиш Win + R, введите в него mdsched.exe и нажмите клавишу ввода.
- В появившемся окошке «Средства проверки памяти Windows» выберите опцию «Выполнить перезагрузку и проверку (рекомендуется)».
- В результате компьютер перезагрузится, после чего начнется проверка оперативной памяти. По завершении проверки ОЗУ компьютер будет загружен в штатном режиме, а в «Журнале событий» появится отчет с результатами анализа. Чтобы открыть журнал, в окошке быстрого выполнения команд выполните команду eventvwr.msc .
- Перейдите в раздел «Журналы Windows» → «Система» и отыщите событие «MemoryDiagnostics-Results».
Если в отчете обнаружатся ошибки, необходимо будет проверить каждую планку памяти в отдельности. С этой целью из слота памяти извлекаются все модули ОЗУ кроме проверяемой, после чего компьютер включается. Появление при этом экрана смерти укажет на вероятную неисправность данной планки оперативной памяти, а это значит, что она подлежит замене.
Способ 4: Переустановка приложения
Проблема может быть вызвана и наличием багов в самом приложении. Удалите программу или игру, при запуске которой возникает ошибка, скачайте дистрибутив из другого источника и установите повторно. Избегайте использования взломанных программ, если вы столкнулись с ошибкой в игре, попробуйте удалить моды. Для удаления программного обеспечения в Windows желательно использовать сторонние деинсталляторы, гарантирующие удаление остатков программ — файлов и записей в реестре. Ознакомиться с некоторыми из таких приложений-деинсталляторов вы можете по этой ссылке.
Способ 5: Проверка системных файлов
Если неполадка возникает при запуске не одного конкретного, а всех приложений, следует проверить системные файлы на предмет повреждений встроенной в Windows утилитой «SFC».
- Откройте от имени администратора «Командную строку» или «PowerShell».
- Выполните в консоли команду sfc /scannow и дождитесь завершения проверки. При обнаружении повреждений или отсутствия важных файлов последние будут автоматически восстановлены из локального хранилища компонентов.
- В случае выдачи утилитой «SFC» ошибки восстановите хранилище компонентов, для чего тут же в консоли выполните команду dism.exe /online /cleanup-image /restorehealth , а затем повторите команду sfc /scannow .
Источник: lumpics.ru
Ошибка при запуске приложения (0xc0000022) — Как исправить
При запуске программ или игр вы можете столкнуться с ошибкой «Ошибка при запуске приложения (0xc0000022). Для выхода из приложения нажмите кнопку OK» в Windows 10 и Windows 11.
Ошибка 0xC0000022 означает, что проблема связана с правами доступа, и это происходит, если служба защиты программного обеспечения остановлена или повреждена. Для приложений, написанных на Visual Basic, ошибка 0xc0000022 обычно указывает на проблему с правами доступа к необходимому файлу DLL (Dynamically Linked Library). Также, системные поврежденные файлы могут быть причиной этой ошибки. Давайте разберем, что делать и как исправить ошибку 0xc0000022 при запуске игр и приложений в Windows 11/10.
Исправить ошибку 0xc0000022 при запуске игр и программ
Наиболее распространенной причиной этой ошибки является само приложение или игра, которое не может получить доступ к другим файлам, которые требуются для его запуска. По этой причине, Вам нужно запустить игру или программу от имени администратора.
- Нажмите правой кнопкой по ярлыку, который выдает ошибку, и выберите Запуск от имени админа
1. Установить DirectPlay
Некоторым играм и программам для запуска нужен DirectPlay , который включает в себя старую библиотеку DirectX для более старых программ и игр.
- Нажмите Win+R и введите optionalfeatures
- Установите галочку Компоненты прежних версий
- Раздвиньте графу и убедитесь, что DirectPlay отмечен
- Нажмите Применить и OK, после чего DirectPlay будет установлен
2. Установка/Восстановление Microsoft Visual C ++ Redistributable 2013
Отсутствующий или поврежденный пакет Microsoft Visual C++ может стать причиной ошибки 0xc0000022. По этому вам следует установить его, если у вас его еще нет. Если он уже установлен в вашей системе, то его нужно восстановить. Откройте «Панель управления» > «Удаление программ» и тут два варианта:
1 вариант. Если у вас нет в списке Microsoft Visual C ++ Redistributable 2013, то скачайте его. Если у вас система Windows 11/10 (64-bit), то вам нужно выбрать две версии x64 и x86, если у вас система Windows (32-bit), то вам нужно скачать и установить только x86.
2 вариант. Если у вас пакет Visual C ++ 2013 уже имеется, то его нужно восстановить. Нажмите на нем 1 раз в списке, чтобы выделить. Далее сверху нажмите на кнопку «Изменить» и следуйте инструкциям помощника на экране.
3. Изменить права доступа
Права доступа к файлам могут выдавать ошибку 0xc0000022 при запуске игр или программ. Нажмите правой кнопкой мышки по ярлыку, который выдают вам ошибку, и выберите «Свойства». Далее в новом окне перейдите во вкладку «Безопасность» и нажмите «Изменить». Откроется еще одно новое окно, где нужно выделить текущую учетную запись и ниже поставить галочку напротив пункта «Полный доступ».
4. Поврежденные файлы
Системные поврежденные файлы могут выдавать вам данную ошибку. Запустите командную строку от имени администратора и введите команды по очереди, нажимая Enter после каждой:
- sfc /scannow
- DISM /Online /Cleanup-Image /RestoreHealth
5. Ошибка 0xc0000022 активации Windows 11/10
Если вы получаете ошибку 0xc0000022активации Windows 11/10, то нажмите Win+R и введите regedit. В реестре перейдите по пути:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSoftwareProtectionPlatform
- Справа нажмите дважды по SkipRearm
- Установите значение 1
- Перезагрузите ПК
! SkipRearm указывает на сброс состояния лицензирования Windows и означает, что все данные лицензии в реестре, удаляются или сбрасываются.
Смотрите еще:
- Ошибка при запуске приложения (0xc0000005) в Windows 10
- Исправить ошибку при запуске приложения (0xC000007B) в Windows 10
- Ошибка при запуске приложения 0xc0000142 в Windows 10
- Код ошибки 80004001 при запуске Windows 10
- Ошибка Windows Script Host при запуске Windows 10
Источник: mywebpc.ru