当有空格(Windows Shell 参数时,某些东西会更改 Windows 中的文件名
Something changes files name in Windows when there are whitespaces (Windows Shell arguments)
我正在开发基于 C# WPF 的应用程序。
此应用程序使用系统寄存器来捕获资源管理器上下文菜单操作。换句话说:Explorer 上下文菜单提供了一个为我的应用程序定制的附加项,有点像 NotePad++(见图 1)。
我在文件上单击右键,我的应用程序正确启动。自然地,文件名作为参数 %1 从命令行传递给应用程序。图 2 显示了我如何为上下文菜单配置寄存器。
问题是如果文件名不包含空格,一切都很好。相反,如果它包含空格,我会找到大写字母的文件名并被截断。
案例 1 正常
文件名:dummy.txt
在 %1 中捕获的字符串:dummy.txt
案例2 KO
文件名:paths - Copia.txt
在 %1 中捕获的字符串:PACE0~1.TXT
在下面的两个示例中,第一个正确且有效,第二个是我遇到问题的场景。
Image 1
Image 2
有谁知道避免这种情况的方法吗?
脚注
不幸的是,我对Windows系统知之甚少,这让我很头疼。我不知道问题的原因可能是什么。
请记住,我可能放错了问题:我自己怀疑我是否提供了解决问题所需的信息。
尝试将注册表条目更改为 "C:\Program Files (x86)\Polito\Kyactus\Kyactus.exe" "%1"
-- 将程序路径和 %1
括在引号中,但每个使用不同的一对。
我正在开发基于 C# WPF 的应用程序。
此应用程序使用系统寄存器来捕获资源管理器上下文菜单操作。换句话说:Explorer 上下文菜单提供了一个为我的应用程序定制的附加项,有点像 NotePad++(见图 1)。
我在文件上单击右键,我的应用程序正确启动。自然地,文件名作为参数 %1 从命令行传递给应用程序。图 2 显示了我如何为上下文菜单配置寄存器。
问题是如果文件名不包含空格,一切都很好。相反,如果它包含空格,我会找到大写字母的文件名并被截断。
案例 1 正常
文件名:dummy.txt
在 %1 中捕获的字符串:dummy.txt
案例2 KO
文件名:paths - Copia.txt
在 %1 中捕获的字符串:PACE0~1.TXT
在下面的两个示例中,第一个正确且有效,第二个是我遇到问题的场景。
Image 1
Image 2
有谁知道避免这种情况的方法吗?
脚注
不幸的是,我对Windows系统知之甚少,这让我很头疼。我不知道问题的原因可能是什么。
请记住,我可能放错了问题:我自己怀疑我是否提供了解决问题所需的信息。
尝试将注册表条目更改为 "C:\Program Files (x86)\Polito\Kyactus\Kyactus.exe" "%1"
-- 将程序路径和 %1
括在引号中,但每个使用不同的一对。