我想在我正在运行的应用程序中触发一个事件,并通过在 Windows 10 中调用 URL 方案来传递参数。我创建了以下注册表项:
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 上实现这一点呢?我正在使用面向对象的 BASIC 在 XOJO 中编写此应用程序,但我会对通用解决方案感到高兴。