我已经在Windows注册表中注册了一个自定义协议处理程序,因此我可以使用Internet-Browser的特定参数启动我的应用程序。到目前为止,注册效果很好。IE和Chrome都在启动我的应用程序。
我在此问题中使用了Erwinus答案来注册协议处理程序:如何创建自己的URL协议?(例如://...(
奇怪的是,两个浏览器都无法正确设置工作目录。Chrome似乎将工作目录默认为空字符串,而IE将工作目录默认为" C: Users User-X Desktop"。
这种行为是打算的吗?
有什么方法可以在注册表中指定我的应用程序的工作目录?
事先感谢您在此问题上的任何潜在客户。
工作目录已连接到命令行参数以解决诸如.file.ext
之类的路径,并且由于没有相对路径参数,因此工作目录无关紧要。
您的应用程序不应取决于工作目录来加载库和其他应用程序特定文件。
有一个名为 NoWorkingDirectory
的无证件值,可以在文件类型注册中设置,但我不确定它是否适用于URL协议。
已经有一段时间了,因为没有一个正确的答案在这里,我面临同一问题并找到了答案。因此,将其发布在这里,因此对他人有帮助。
在URL协议(注册表条目(中包括更改目录,以便在启动应用程序之前更改工作目录。可以说,如果您创建了名为" prototest2"的URL协议,并且想从目录中运行您的应用程序。在注册表中。首先将目录更改为所需的位置并启动应用程序。在此问题中可以使用详细的示例,如何制作" URL协议"。从其自己的目录启动应用程序,而不是从C: Windows System32?
启动reg add HKEY_CLASSES_ROOTProtoTest2shellopencommand /t REG_EXPAND_SZ /d "%ComSpec% /C "cd /D "C:SourceFor RefURL ProtocolBatchTest" ^& showPath.bat"" /f