通过URI协议启动应用程序传递文件路径

时间:2018-11-01 02:39:26

标签: powershell web

我已经设置了URI协议

Key Name:          HKEY_CLASSES_ROOT\testap
Class Name:        <NO CLASS>
Last Write Time:   31/10/2018 - 11:32 AM
Value 0
  Name:            URL protocol
  Type:            REG_SZ
  Data:            

Key Name:          HKEY_CLASSES_ROOT\testap\shell
Class Name:        <NO CLASS>
Last Write Time:   31/10/2018 - 11:27 AM

Key Name:          HKEY_CLASSES_ROOT\testap\shell\open
Class Name:        <NO CLASS>
Last Write Time:   31/10/2018 - 11:27 AM

Key Name:          HKEY_CLASSES_ROOT\testap\shell\open\command
Class Name:        <NO CLASS>
Last Write Time:   31/10/2018 - 11:37 AM
Value 0
  Name:            <NO NAME>
  Type:            REG_SZ
  Data:            "E:\MyApp.exe" "%1"

我想传递这样的文件路径"E:\ShortHelp_English.pdf"

我运行testap:E:/ShortHelp_English.pdf

我的应用程序返回这样的错误

enter image description here

任何人都可以向我展示将文件路径传递给应用程序的正确方法吗?

1 个答案:

答案 0 :(得分:0)

不确定这是否是导致问题的原因,但请记住,完整网址(包括架构)已传递给您的应用程序:

  

testap:E:/ShortHelp_English.pdf

所以您可能想做的是

if (path.StartsWith("testapp:")) {
    path = path.Substring(8);
}

path = new Uri(path).AbsolutePath;