用VB将自己的程序加进Windows右键菜单的三种方法

合集下载
相关主题
  • windows应用程序设计
  • 下载提示
  • 文本预览
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用VB将自己的程序加进Windows右键菜单的三种方法

引言:当我们在资源管理器中右键点击某个(或某些)文件时,Windows会调出对这些文件进行的相应操作,这就是Windows右键菜单,将自己的程序加进右键菜单,就可以很方便的进行我的相应操作了。这里给出加进右键菜单的三种方法。

方法一、通过对注册表相应键新建项并赋值实现

首先介绍一下要执行的目标程序CopyPathToClipboard的作用,该程序的界面见图一,实现将选中的文件(或目录)的路径复制到剪切板供其它程序使用的功能。

要实现单个文件(或目录)进行右键操作,只需对注册表如下键添加相应键值就可以了。

点击系统【开始】-【运行】-输入Regedit,打开注册表。展开【HKEY_CLASSES_ROOT】,继续打开【*】-【shell】-新建项【CopyPathToClipboard】-【Command】,在【Command】建默认值:E:\Program Files\XZB\CopyPathToClipboard.exe “%1”,“E:\Program Files\XZB\”是程序CopyPathToClipboard.exe的文件路径,见图二。

如果还需对目录进行操作,定位到注册表项:【HKEY_CLASSES_ROOT\Directory\shell\】进行同样添加项【CopyPathToClipboard】-【Command】,在【Command】建默认值:E:\Program Files\XZB\CopyPathToClipboard.exe “%1”。

这样当你右击一个文件(或目录)时,就会在右键菜单中显示:CopyPathToClipboard,点击【CopyPathToClipboard】,就会调出主程序即可进行相应操作了,见图三。

主程序CopyPathToClipboard在Private Sub Form_load()中有如下关键代码:

Private Sub Form_load()

If Command$ <> "" Then

If Left$(Command$, 1) = Chr(34) And Right$(Command$, 1) = Chr(34) Then

Combo1.Text = Mid$(Command$, 2, Len(Command$) - 2) ' 去除前后两个引号

Else

Combo1.Text = Command$

End If

End If

'...

End Sub

这样就实现了将参数传递进Combo1(CopyPathToClipboard的顶端组合框即为Combo1)中供后续程序代码调用处理。

要说明的是:如果选择了多个文件,右键菜单中也有CopyPathToClipboard,如果此时点击执行CopyPathToClipboard将会打开多个CopyPathToClipboard主程序窗口。

方法二、利用Windows右键菜单的【发送到】功能实现

这里以另一个程序SendToSelect.exe为例说明,该程序运行界面见图四:

实现将选中的文件【含结构复制】、【含结构移动】、【合并】、【批量命名】等功能。主程序窗体中上半部为RichTextBox1,供接收传递过来的参数。

只要在Windows用户的SendTo文件夹下建一个要出现在右键菜单程序(如E:\Program Files\XZB\SendToSelect.exe)的快捷方式,比如用户名称为XZB,则该文件夹路径一般为:E:\Program Files\XZB\SendTo,然后在右键菜单的【发送到】中就会出现你的程序,见图五。

只要在主程序SendToSelect.exe的VB源代码中处理传递过来的参数就可以了,通过这种方式传递给主程序的参数(即文件路径集)格式为:每个文件名路径间用空格分隔,如果某个文件名路径中含有空格,该文件名路径就用引号引起来,通过一个函数GetCanShuNum对传递过来的文件路径集参数进行处理。

Private Sub Form_Load()

If Command$ <> "" Then

Dim MyCanShu() As String, I As Integer, xPosition As Integer

XX$ = Command$

GetCanShuNum XX$, " ", MyCanShu

FenGeFu$ = Chr$(13) & Chr$(10)

RichTextBox1.Text = Join(MyCanShu, Chr$(13) & Chr$(10))

If Left$(RichTextBox1.Text, Len(FenGeFu$)) = FenGeFu$ Then

RichTextBox1.Text = Mid$(RichTextBox1.Text, Len(FenGeFu$) + 1) ' 去掉Join产生的第一个分隔符End If

End If

End Sub

调用的过程GetCanShuNum

Function GetCanShuNum(ByVal s As String, FenGeFu$, CanShu() As String) As Long

If s <> "" Then

Dim I As Long, T As String

Dim Si As Long, Ei As Long

Dim F1 As Byte

Dim Num As Long

F1 = 0

Num = 0

s = FenGeFu$ & Replace(Replace(Trim$(s), Chr(10), ""), Chr(13), "") & FenGeFu$

For I = 1 To Len(s)

T = Mid(s, I, 1)

Select Case F1

Case 0 ' 开始分隔符

If T = FenGeFu$ Then ' "号

If Mid(s, I = 1, 1) = Chr(34) Then '判断分隔符后参数开始是否引号

F1 = 2 ' 下次 For循环到Case引号段

I = I + 1: Si = I + 1

Else

F1 = 1: Si = I + 1

End If

End If

Case 1 ' 结束分隔符

Do Until T = FenGeFu$ ' 程序优化段

I = I + 1

T = Mid(s, I, 1)

Loop

'If T =FenGeFu$ Then

F1 = 0

Ei = I

Num = Num + 1

相关文档
最新文档

玻璃钢生产厂家党建文化玻璃钢人物雕塑制作辽阳玻璃钢花盆生产厂家广东主题商场美陈价格玻璃钢雕塑和grc报价表白银卡通玻璃钢雕塑制作上海室内雕塑玻璃钢江西商场美陈雕塑厂家马鞍山玻璃钢雕塑设计惠州端州玻璃钢人物雕塑玻璃钢花盆栽水果郑州商场美陈装饰仿铜玻璃钢雕塑出售天津玻璃钢仿真水果雕塑价格文山玻璃钢座椅雕塑报价崇明玻璃钢花盆陕西户外玻璃钢雕塑方法玻璃钢花盆制作工艺武汉新乡玻璃钢卡通雕塑玻璃钢圣女果雕塑湘潭怀化玻璃钢雕塑供应南京周年庆典商场美陈温州校园玻璃钢雕塑定做哪里有玻璃钢雕塑厂家深圳商场美陈网站北京室内商场美陈销售开封玻璃钢人物雕塑厂家稀奇玻璃钢植绒版雕塑摆件青岛玻璃钢花盆设计焦作玻璃钢雕塑雕刻厂家电话商场墙体美陈香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化