Подумайте об этом по-другому: когда вы пишете программу, как вы определяете, является ли она единичным или множественным экземпляром?Есть ли способ, чтобы какая-то другая программа могла получить эту информацию из вашей программы без ее запуска?(После того, как вы ответите на этот вопрос, у вас будет ответ на ваш вопрос.)
Эта проблема, в общем, не решаема, поскольку один экземпляр / несколько экземпляров определяется во время выполнения и может основываться на времени выполненияусловия.Например, некоторые приложения «иногда несколько экземпляров, иногда одиночные»: если вы запустите приложение, чтобы открыть документ X, а затем документ Y, вы получите два экземпляра.Но если вы откроете документ X, а затем снова документ X, эти два экземпляра сложатся в один.Другие приложения могут иметь переключатель конфигурации, который позволяет вам выбирать, являются ли они одним экземпляром или несколькими.Или, может быть, они решают подбросить монету и решают быть одним экземпляром, если хвосты, и несколькими экземплярами, если голова.