Я хочу инициировать событие в моем работающем приложении и доставить аргументы с вызовом схемы URL в Windows 10. Я сделал следующую запись в реестре:
HKEY_CLASSES_ROOT
alert
(Default) = "URL:Alert Protocol"
URL Protocol = ""
DefaultIcon
(Default) = "alert.exe,1"
shell
open
command
(Default) = "C:\Program Files\Alert\alert.exe" "%1"
Очевидно, что это всегда запускает новый экземпляр моего приложения с аргументом при вызове «alert: arg1». Но я хочу, чтобы Windows вызывала мой уже запущенный экземпляр.
В Mac вызов этой схемы URL вызывает событие, которое я могу перехватить. Именно так, как я хочу. Для этого я добавил следующую часть в файл alert.app/Contents/Info.plist:
<array>
<dict>
<key>CFBundleURLName</key>
<string>Alert</string>
<key>CFBundleURLSchemes</key>
<array>
<string>alert</string>
</array>
</dict>
</array>
Итак, как мне реализовать это в Windows? Я программирую это приложение в XOJO с объектно-ориентированным BASIC, но я буду рад общему решению.