我正在开发一个应用程序,它需要根据调用协议处理程序的位置做出不同的反应。
假设它需要打印出来,browser
如果它是从 chrome 中调用的
app://something/something
,shell
如果它是从 cmd/powershell 调用的。
根据我目前的理解,我只能接收字符串,所以应该无法检测到它是从哪里调用的,但是我已经看到程序能够推断出它们的调用位置并具有不同的行为基于那个,当我检查这些程序及其协议的 HKEY_CLASSES_ROOT 条目时,无非是program.exe "%1"
我看不到他们收集数据的方式。
我还尝试摆弄这些协议处理程序,它们检测它何时从 C# 和 Process.Start() 而不是常规命令提示符启动,或者是自制的 c# 浏览器而不是 chrome,这让我更加困惑。