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