当有空格(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 括在引号中,但每个使用不同的一对。