joshua_yu
驱动小牛
驱动小牛
  • 注册日期2004-12-06
  • 最后登录2010-12-01
  • 粉丝0
  • 关注0
  • 积分428分
  • 威望54点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
阅读:1613回复:12

我想拦截文件“发送到”这样一个右键操作

楼主#
更多 发布于:2004-12-07 12:27
我们在文件上点击右键有一个“发送到”的菜单,可以将文件发送的邮件接受者以及“我的文档”等等,请问该操作的文件系统底层动作是怎样的啊?

急等中......
yuxuehu
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2008-04-03
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-12-08 16:20
到了文件系统层拦截Open操作就可以了
joshua_yu
驱动小牛
驱动小牛
  • 注册日期2004-12-06
  • 最后登录2010-12-01
  • 粉丝0
  • 关注0
  • 积分428分
  • 威望54点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-12-08 16:44
能不能麻烦你介绍的详细一点,小弟是初学,谢谢了!
yuxuehu
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2008-04-03
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-08 16:51
如果你做的是驱动程序,就看看Filemon程序有源码可以下的(不过只是模板而已,有不少问题)。应付你的要求应该可以。
如果是DLL方法Hook的话看看SetWindowsHookEx函数
joshua_yu
驱动小牛
驱动小牛
  • 注册日期2004-12-06
  • 最后登录2010-12-01
  • 粉丝0
  • 关注0
  • 积分428分
  • 威望54点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-12-08 17:14
谢谢,你说的两种方法我知道,不过我还是很想知道:例如foxmail在安装完成以后如何自动的加入“发送到”的列表中的,以及用户选择了“发送到”->“foxmail邮件收件者”以后系统的基本处理过程,包括调用了哪些主要的API函数、文件系统底层的动作等等。
fslife
驱动大牛
驱动大牛
  • 注册日期2004-06-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望49点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-12-08 17:41
其实所有修改右键菜单的程序,都会在Explore.exe里注入(HOOK)一个dll程序,你也可以这样把你的东西整进去的,你说的在“发送到”里加入一个新的,应该也不例外,具体怎么做,找一个修改快捷菜单的程序研究一下吧,网上应该可以找到类似的例子。
在交流中学习。。。
yuxuehu
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2008-04-03
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-12-08 18:11
我看了一下,Mail的程序是个DLL启动的。
你首先调查一下foxmail调用的方法(可以用RegMon,FileMon)
我用的是OutlookExpress好像调用了sendmail.dll(具体没跟过~0~)
不管怎样先要找到打开文件的程序,然后在打开时返回错误。
其实Send方式和直接打开方式对于底层都是一样的


简单的方法是添加到SendTo目录就可以了,如E:\Documents and Settings\yxh\SendTo
像Mail这种不太清楚
toadwolf
驱动牛犊
驱动牛犊
  • 注册日期2003-11-30
  • 最后登录2013-11-12
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望67点
  • 贡献值0点
  • 好评度26点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-12-09 03:48
右键点菜单与文件系统没有关系, 那全是Windows Shell Programming的东西. 具体你可以查Shell Extension, Context Menu, SHGetSpecialFolderLocation().

toad
joshua_yu
驱动小牛
驱动小牛
  • 注册日期2004-12-06
  • 最后登录2010-12-01
  • 粉丝0
  • 关注0
  • 积分428分
  • 威望54点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-12-09 08:52
十分感谢各位的支持!!!
我自己试了一下,其实就是在“C:\Documents and Settings\yourusername\SendTo”目录下面添加一个链接,然后所有的右键菜单的“发送到”就会添加上去,甚至包括office中的那个“发送”菜单里面也是一样的。接下来的事情就是调用相应的程序,例如mail程序,将文件发送出去,跟在foxmail里面发送这个文件的方式是相同的。 :)
fslife
驱动大牛
驱动大牛
  • 注册日期2004-06-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望49点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-12-09 09:05
十分感谢各位的支持!!!
我自己试了一下,其实就是在“C:Documents and SettingsyourusernameSendTo”目录下面添加一个链接,然后所有的右键菜单的“发送到”就会添加上去,甚至包括office中的那个“发送”菜单里面也是一样的。接下来的事情就是调用相应的程序,例如mail程序,将文件发送出去,跟在foxmail里面发送这个文件的方式是相同的。 :)


 :) :)
简单的问题想复杂了,长见识了,呵呵。
在交流中学习。。。
dj_ukyo
驱动小牛
驱动小牛
  • 注册日期2003-03-13
  • 最后登录2009-06-02
  • 粉丝0
  • 关注0
  • 积分118分
  • 威望16点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-12-09 10:31
是添加快捷方式,不用编程来实现!
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-12-13 22:02
这个不是驱动的问题,需要修改注册表
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
joshua_yu
驱动小牛
驱动小牛
  • 注册日期2004-12-06
  • 最后登录2010-12-01
  • 粉丝0
  • 关注0
  • 积分428分
  • 威望54点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-12-14 08:37
谢谢老大,不过我真的只需要将快捷方式放到send to目录下面就可以在右键菜单的“发送”看到新增加的项了啊?

另外,如果需要修改注册表,你能不能说的详细一点,修改哪些项呢?
游客

返回顶部