Перевод another instance already exists

Ошибка Another instance is already running error – как исправить при запуске ETS 2 и других игр

Сегодня расскажем как исправить ошибку при запуске игры Euro Truck Simulator 2 “Another instance is already running”. Инструкция так же подойдёт для других игрушек с площадки Стим и других клиентов. В начале кратко расскажем о возможных причинах такой ошибки, а ниже дадим рекомендации как исправить проблему.

Another instance is already running error

Причины ошибки

Кому интересен перевод ошибки? Окно с предупреждение сообщает: “Ошибка запуска. Копия приложения уже запущена”. Причин тут несколько:

  • Вы уже запустили игру двойным кликом или из лаунчера, а потом запустили игру второй раз. Таким образом в системе появилось два процесса.
  • В системе завис процесс игры ETS 2 или “TruckersMP лаунчера”.
  • Если у вас слабый ПК нажмите ОК и ждите запуска либо перезапускаем компьютер. Если ошибка повторяется – читаем дальше.

Если дело в зависшем процессе – откройте Диспетчер задач (Ctrl+alt+Del) или клик ПКМ на панели задач – “Диспетчер задач”. Находим процесс TruckersMP, нажимаем правой и выбираем “Завершить процесс” или “закрыть задачу” в зависимости от версии операционной системы.

Запускаем Диспетчер задач

Как исправить Another instance is already running

Поскольку ошибку вызывает зависший процесс – самый простой способ перезагрузка ПК. После перезагрузки сначала запускаем Steam, а потом пробуем запустить лаунчер игры, саму игру.
Если процесс зависают каждый раз тут лучше перестраховаться и поступить как советуют на форумах и переустановить лаунчер.

  • Нажимаем клавишу Виндовс + R на клавиатуре. Или Пуск – Выполнить.
  • Набираем в строке “%programdata%” и жмем Enter(набираем без кавычек).
  • Находим и удаляем папку “TruckersMP”.
  • Далее открываем папку C:\Program Files\ и удаляем оттуда лаунчер “TruckersMP Launcher”.
  • Идем на сайт truckersmp.com загружаем его и переустанавливаем.
  • Запускаем лаунчер с правами Администратора и нажимаем “Установить доступные обновления”.
  • Перезапускаем компьютер и пробуем запустить игру.

Так же игроки пигут, что помогает загрузка и установка Microsoft Directx 9, скачать можно по этой ссылке с официального сайта Майрософт: Microsoft DirectX® 9.0c. Русский язык присутствует.

Заключение

Надеюсь вы разобрались как исправить оршибку при запуске ETS 2 “Another instance is already running error”. Похожим образом можно исправить ошибки при запуске игр из Стима. Первым делом проверяем и завершаем процесс игры или лаунчера. Потом обновляем их, перезагружаем ПК и пробуем запустить. Напишите в комментариях какой из способов помог вам. Если у вас схожие ошибки- пишите в комментарии к этой странице и мы поможем найти решение.

Евгений Загорский

IT специалист. Автор информационных статей на тему Андроид смартфонов и IOS смартфонов. Эксперт в области решения проблем с компьютерами и программами: установка, настройка, обзоры, советы по безопасности ваших устройств. В свободное время занимается дизайном и разработкой сайтов.

Источник

another instance already exists

Сегодня расскажем как исправить ошибку при запуске игры Euro Truck Simulator 2 «Another instance is already running». Инструкция так же подойдёт для других игрушек с площадки Стим и других клиентов. В начале кратко расскажем о возможных причинах такой ошибки, а ниже дадим рекомендации как исправить проблему.

Another instance is already running error

Причины ошибки

Кому интересен перевод ошибки? Окно с предупреждение сообщает: «Ошибка запуска. Копия приложения уже запущена». Причин тут несколько:

  • Вы уже запустили игру двойным кликом или из лаунчера, а потом запустили игру второй раз. Таким образом в системе появилось два процесса.
  • В системе завис процесс игры ETS 2 или «TruckersMP лаунчера».
  • Если у вас слабый ПК нажмите ОК и ждите запуска либо перезапускаем компьютер. Если ошибка повторяется — читаем дальше.

Если дело в зависшем процессе — откройте Диспетчер задач (Ctrl+alt+Del) или клик ПКМ на панели задач — «Диспетчер задач». Находим процесс TruckersMP, нажимаем правой и выбираем «Завершить процесс» или «закрыть задачу» в зависимости от версии операционной системы.

Запускаем Диспетчер задач

Как исправить Another instance is already running

Поскольку ошибку вызывает зависший процесс — самый простой способ перезагрузка ПК. После перезагрузки сначала запускаем Steam, а потом пробуем запустить лаунчер игры, саму игру.
Если процесс зависают каждый раз тут лучше перестраховаться и поступить как советуют на форумах и переустановить лаунчер.

  • Нажимаем клавишу Виндовс + R на клавиатуре. Или Пуск — Выполнить.
  • Набираем в строке «%programdata%» и жмем Enter(набираем без кавычек).
  • Находим и удаляем папку «TruckersMP».
  • Далее открываем папку C:Program Files и удаляем оттуда лаунчер «TruckersMP Launcher».
  • Идем на сайт truckersmp.com загружаем его и переустанавливаем.
  • Запускаем лаунчер с правами Администратора и нажимаем «Установить доступные обновления».
  • Перезапускаем компьютер и пробуем запустить игру.

Так же игроки пигут, что помогает загрузка и установка Microsoft Directx 9, скачать можно по этой ссылке с официального сайта Майрософт: Microsoft DirectX® 9.0c. Русский язык присутствует.

Заключение

Надеюсь вы разобрались как исправить оршибку при запуске ETS 2 «Another instance is already running error». Похожим образом можно исправить ошибки при запуске игр из Стима. Первым делом проверяем и завершаем процесс игры или лаунчера. Потом обновляем их, перезагружаем ПК и пробуем запустить. Напишите в комментариях какой из способов помог вам. Если у вас схожие ошибки- пишите в комментарии к этой странице и мы поможем найти решение.

Иногда при запуске какой либо игры можно получить ошибку “Another instance of game already running”. Часто, для устранение данной ошибки пользователи прибегают к проверенному традиционному способу, а именно, перезагрузке ПК. Однако ошибка устраняется весьма просто.

Данное сообщение говорит о том, что другой экземпляр игры уже запущен. Это происходит, когда после предыдущего закрытия игры, ее процесс остается.

Стоит зайти в Диспетчер задач (Ctrl+ Alt+ Delet) и в списке процессов найти процесс игры и завершить его. Теперь можно вновь запускать игру и ошибка не возникнет.

I keep running into this strange problem. It almost seems to be random but I run my application and open a form, do some work with it and close it. The next time I go to open another isntance of that form I get an error message about the form already existing. This is very odd and I haven’t been able to constantly reproduce the error.

If it helps I’m using Delphi 6 still. Is there some known reason why this is happening or what I can do to prevent it?

3 Answers 3

Are you sure the form is not being hidden when it is closed?

That is the default for MDI forms, but I have seen other people do the same (to speed up re-showing the form).

Edit (thanks Cosmin Prund for the comment!):

Hook the OnClose event of your form, and look what the value of the CloseAction parameter is. If it is caHide , then the form is hidden.

A temporary hack might be to assign caFree to the CloseAction , but a better solution is to watch the stack in your OnClose event handler to see how you ended up there, and what is causing the CloseAction to be caHide in the first place.

Note: in these situations you often want to see what the VCL does. So it is wise to enable the debug DCUs for your project; see this blog article how to do that (search for debug DCUs in the link).

Источник

Проверка на повторный запуск программы

Необходимо сделать в программке, проверку на повторный запуск, то есть если программа уже запущена, то чтобы вторая копия не запускалась.
Каким образом это можно организовать ?

Самый простой способ, не всегда хороший, но работающий. Основан на создании объекта ядра (это такие объекты, которые существуют для всех приложений, грубо говоря). Вот такой код примерно:

int WINAPI WinMain()
<
HANDLE h = CreateMutex(NULL, FALSE, «some_unical_name, f.e. GUID»);
if (GetLastError() == ERROR_ALREADY_EXISTS) <
// экземпляр этого приложения уже запущен
return(0);
>
// запущен первый экземпляр приложения

// перед выходом закрываем объект
CloseHandle(h);
return(0);
>

Sir Tempo
еще один, более уродский способ — создавать временный файл с уникальным именем и проверять, не существует ли он уже.

А меня истерисует вот что:
если приложение вылетит с ошибкой или заглючит, удалится ли обьект ядра? если нет, то мы не сможем запустить еще раз приложение после ошибки

тут такая идея пришла.
перед запуском просто проверять существует ли окно со своим заголовком. т.е если существует, значит окно созданно и приложение уже запущенно.

будет ли такое работать?

_KAIN_
имо, будет, но лучше проверять не по заголовку, а по классу.

да, но только имя класса должно быть что-то типа _ddjw8DASku 🙂

ИМХО тоже неплохо и стандартные pid-ы Юникса, как ты сказал ранее, таким образом, заодно можно было ли приложение нормально завершено, при следующем запуске.

_KAIN_
>тут такая идея пришла.
>перед запуском просто проверять существует ли окно со своим заголовком. т.е
>если существует, значит окно созданно и приложение уже запущенно.
>будет ли такое работать?

Будет, так наверное и делают, и я так делал.

Кстати, однажды я жутко нагрузил систему и два раза подряд при этом кликнул на винамп — у меня их стало двое :), судя по всему они не успели создать окна или чегото другое но уже оба были запущены

Да гдето читал (вроде на РСДН), что можно еще скрейтить длл для приложения, в которой обьявить шаред область.
Приложение при запуске грузится и ставит вфлаг в этой области или выгружается если флаг уже стоит

radius
>IPSer
>да, но только имя класса должно быть что-то типа _ddjw8DASku 🙂
имо, хватит «??_MyCompany_MyApplication_??’

lsiserg
ага, типа-хаков много, но с мутексами и файлами помойму проще. (однако, насчёт освобождения мьютекса при крахе. на практике ..хз)

IPSer
тоже хватает, но как всегда хочется дополнительно «перестраховаться» 😉

В зависимости от требований персистенса софта, если нужен анализ успешного завершения — рулит пид, (какой-то свой сложный лог), если просто запрет одинаковых экземпляров — можно и классом и мьютексами и даже броадкаст сообщений только твоей прогой обрабаемых :))

if OpenEvent(EVENT_ALL_ACCESS, False, ‘YourEvent’)<>0 then Exit; // мона Halt или ExitProcess(0)
CreateEvent(nil, True, True, ‘YourEvent’);

ShTiRLiC
Ага, я помню как-то раз прибитая софтина TerminateProcess ом под 2000, повторно не захотела запускаться до ребута компа (она
тоже ставила какой-то из объектов ядра. )

есть теория, есть практика, есть наиболее вероятный способ сделать так, чтоб первые два явления не сильно различались.
напримар пид рулит всегда ИМХО

Читаем дружно MSDN 🙂 Справка по функции CreateMutex раздел Remarks:
«Use the CloseHandle function to close the handle. The system closes the handle
automatically when the process terminates. The mutex object is destroyed when
its last handle has been closed.»

Т.е. опасения _KAIN_ беспочвенны. Система сама закроет хэндл если
слетит процесс.

Версия тов. RMX безопасна и годна(я) к употреблению :)))

Источник

Поделиться с друзьями
admin
Оцените автора
( Пока оценок нет )
Как переводится?
Adblock
detector