猿问

有空格时,某些东西会更改Windows中的文件名(Windows Shell参数)

我正在开发基于C#WPF的应用程序。

此应用程序使用系统注册来捕获“资源管理器上下文菜单”操作。换句话说:Explorer Context Menu提供了一个为我的应用程序定制的附加项,有点像NotePad ++(参见图1)。

我单击文件上的右键,然后我的应用程序正确启动。自然,文件名将从命令行作为参数%1传递给应用程序。图2显示了如何配置上下文菜单的寄存器。

问题是,如果文件名不包含空格,则一切正常。如果它包含空格,那么我会以大写字母找到文件名并将其截断。


情况1可以

文件名: dummy.txt

%1中捕获的字符串: dummy.txt


情况2 KO

文件名: paths - Copia.txt

%1中捕获的字符串: PACE0~1.TXT


在以下两个示例中,第一个正确并且可以正常工作,第二个示例是我遇到了描述的问题的方案。


图片1

图片2

http://img1.mukewang.com/6096467a00017eda11620275.jpg

有谁知道避免这种情况的方法?

脚注

不幸的是,我对Windows系统了解甚少,这使我头疼不已。我不知道问题的原因可能是什么。

请记住,我可能将问题放错了位置:我本人怀疑我是否提供了解决问题所必需的信息。


jeck猫
浏览 155回答 1
1回答

炎炎设计

尝试将注册表项更改为"C:\Program Files (x86)\Polito\Kyactus\Kyactus.exe" "%1"-将程序路径和%1引号都包含在内,但请使用不同的对。
随时随地看视频慕课网APP
我要回答