我在HKEY_CLASSES_ROOT\AllFilesystemObjectsAllFilesystemObjects下创建了自定义的菜单子健,在command里添加了对我自定义的程序调用,内容为“D:/test.exe %1”,从而实现了在任意文件下点击鼠标右键后都会出现我自定义的菜单选项,点击后就会调用test.exe并且向其传递所点选的文件路径信息,现在的问题是如果用户圈选了多个文件点选右键自定义菜单时(就像将多个文件打包成rar压缩包的操作那样),text.exe会被调用多次并且每次只传递了一个文件路径信息,这与我的设计初衷不符,我是想不论用户点选几个文件,我的test都只会被调用一次并且一次获得所有被选中的文件路径信息。请问如何设计我的command?
1条回答 默认 最新
- 战在春秋 2017-08-10 22:06关注
仅仅通过改变command的写法,并不能实现,想到两种方法:
1 在test.exe中处理
基本思路:test.exe程序应设计为单例模式(singleton),假设已经有一个程序实例在运行,当点击右键后,
将文件名通过进程间通信(Inter process Communication)方式传递给这个正在运行的实例。2 在操作系统的sendto(发送到)文件夹中,添加test.exe的快捷方式。
之后选择多个文件,在右键弹出菜单中选择发送到test.exe,即可实现调用一次程序处理多个文件。如何找到sendto文件夹请参考: https://zhidao.baidu.com/question/446008776.html
补充:第一种理论上是可行的,不过我也没有写过实际范例,如果有兴趣,楼主可以查阅相关资料研究。
如果对您有帮助,请采纳答案好吗,谢谢!
解决 无用评论 打赏 举报
悬赏问题
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!
- ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
- ¥15 求daily translation(DT)偏差订正方法的代码