如果我没有点击某个对象,为什么我不能将右键单击的位置作为参数传递?
问题描述:
为什么我不能将右键单击的位置作为参数传递给程序?如果我没有右键单击某个对象?如果我没有点击某个对象,为什么我不能将右键单击的位置作为参数传递?
我的测试设置: Windows 10,我有DebugViewer运行和我的程序something.exe将输出它接收调试的任何参数。
我设置这些注册表项中:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\TestYo2]
@="Directory Test"
[HKEY_CLASSES_ROOT\Directory\Background\shell\TestYo2\command]
@="c:\\something.exe %1"
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\txtfile\shell\Try This]
@="Txt Menu"
[HKEY_CLASSES_ROOT\txtfile\shell\Try This\command]
@="c:\\something.exe %1"
结果: 当我用鼠标右键单击文本文件,然后从上下文菜单中选择我的“TXT菜单”激发了我的程序和通行证它是文本文件的文件路径。我右键单击的文本文件的位置被打印为调试。
如果我右键点击打开目录的背景下,选择我的“目录测试”此消息显示: 此文件没有与它进行此动作相关的程序。请安装程序,或者,如果已经安装了程序,请在“默认程序”控制面板中创建关联。 我的程序永远不会启动。
什么给?
答
因此,解决办法是这样的:
添加一个名为NoWorkingDirectory新的密钥,并保持数据的空白。
在命令行中%1变成了%V
现在,当我用鼠标右键单击背景,并选择我的菜单项,它启动了一个程序,通过该程序包含在右键点击的位置参数刚刚发生。完成。
发现它通过这个职位:Windows shell add item to context menu when click on blank part of folder