Я не знаю среду, в которой вы работаете, но что нужно помнить о «приложениях с одним экземпляром», так это то, как вы определяете один экземпляр. Если приложение может быть запущено на нескольких рабочих станциях одновременно с использованием общего источника данных, это проблема? Аналогично, что касается ситуации со службами терминалов (или ситуации «запуска от имени»), когда на одном компьютере зарегистрировано более одного пользователя, хотите ли вы ограничить приложение таким образом, чтобы только один экземпляр на пользователя -Компьютер? Или вы согласны с тем, что это просто один экземпляр на пользователя?
Ответ на них может привести вас в одном направлении по другому. Например, у нас есть приложение «единый экземпляр» с областью действия, представляющей собой группу компьютеров. Только один пользователь может входить в эту группу рабочих станций. Нам удалось это с помощью таблицы в нашем общем источнике данных, которая отслеживает подключенных в настоящее время пользователей. Это проблема технического обслуживания, так как вы должны быть уверены, что таблица всегда на 100% точна. Для обработки таких вещей, как непредвиденные перебои с питанием на рабочей станции, оставление «поддельных» записей в этой таблице потребовало некоторой осторожной обработки.