У меня есть ситуация, которая частично освещалась другими ответами в SO, но я не могу найти полный ответ. Короче говоря, мы пытаемся использовать URL-адреса для наших конкретных типов данных, которые при двойном щелчке откроют наше приложение и загрузят эти наборы данных в это приложение. У нас эта часть работает.
(например, URL может выглядеть так: resource: //shaders/basic_shader.hlsl)
Мы хотели бы предотвратить открытие новых экземпляров приложения при двойном щелчке по новому URL. Например, допустим, у нас есть URL, который открывает шейдер в нашем редакторе шейдеров. При нажатии на этот ресурс URL, он откроет наш редактор шейдеров. При щелчке по новому URL-адресу шейдера мы хотели бы иметь возможность открыть шейдер в запущенном в данный момент приложении и открыть новый шейдер в новой вкладке нашего редактора.
Мы можем легко определить, запущен ли другой экземпляр нашего приложения. Проблема, которую мы не знаем, как ее легко решить, заключается в том, как указать текущему приложению открыть этот новый файл для редактирования. Это поведение очень похоже на Apple Finder.
В Unix вы можете эмулировать это поведение, если ваше приложение откроет какой-либо именованный канал, а затем новые приложения смогут проверить, активен ли этот канал, и затем отправить данные документа по каналу. Есть ли более стандартный способ Windows для достижения этого поведения?
Нам нужно решение C / C ++. Спасибо.