- 博客(10)
- 收藏
- 关注
原创 抓狂的Namespace Shell Extension (8)
这次说的是剪贴板格式 vs. 上下文菜单&属性页之间的关系。这种关系并非相声和水利的关系。 为了更好地证明SEF的强大威力,同时为了更方便自己在网上down东西,决定写一个non-rooted NSE:网络硬盘,把@163.com的邮箱变成一个虚拟硬盘。网上已经有类似的东西,叫做GmailDrive,可惜一来不公开源码,二来上传大文件的时候太费劲。 WebDrive是植根在desktop上的non
2005-10-12 12:56:00
1768
原创 抓狂的Namespace Shell Extension (7)
SEF支持本文中所说的两种类型的NSE。 这次要说的是如何支持NSE的两种类型: RootedNon-rooted 这两个微软发明的名词有些误导。有人会以为前者是在桌面上,后者是像RarFS那样的file viewer,实际正好相反。 :) 注册NSE的时候,如果选择:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Expl
2005-10-12 12:41:00
1745
原创 抓狂的Namespace Shell Extension (6)
这次说的是如何在XP/2003的任务列表中添加自己的任务。 CodeProject上有篇文章, Namespace Extensions: The Tasks Band DisclosedBy Henk Devos http://www.codeproject.com/shell/foldertasks.asp 说的是这个主题。但是这位大拿有个关键地方讲错了。我实现了所有的接口,但是Explore
2005-10-10 20:19:00
1620
原创 Windows:不借助任何DLL,取得密码框的内容
Windows 2000之后,微软的GetWindowText提高了安全性,对于其它进程的窗口,如果是个有ES_PASSWORD的Edit,就返回ERROR_ACCESS_DENIED。XP SP2和2003中,微软干脆不让取任何进程外Edit窗口(包括RichEdit各个版本)的文字,无论是否为密码框。传统的方法是写一个鼠标或者键盘的全局钩子DLL,Windows会将它加载到所有装载了USER3
2005-10-10 19:40:00
1803
原创 如何在基于IE的浏览器中装入google toolbar
这里说的方法适合任何IE toolbar,已经测试的包括:- google toolbar- MSN toolbar- Sina DDT- Yahoo toolbar(0) 如果你还不了解下面几个接口的作用,请查询MSDN。- IServiceProvide- IInputObjectSite- IOleWindow- IWebBrowser2- IDeskBand- IObjectWithSit
2005-10-10 19:37:00
1384
原创 抓狂的Namespace Shell Extension (5)
这次说的是如何在自己的NSE中将工具条按钮添加到Explorer中。SEF所包含的RarFS源码中有本文所讲的所有信息的参考实现,以及目前网上所能找到的所有公开和未公开的SFVM_*消息的含义的参数结构。 :) 第一个问题是:什么时候加入按钮。 微软有一个例子:CabView,在老的SDK里面有源码,新的SDK不再提供这个例子。它是自己用ListView实现了一个IShellView,在IShel
2005-10-10 19:27:00
2450
1
原创 抓狂的Namespace Shell Extension (4)
这次要说的是如何支持两个Windows shell的新特性:details expando和find in files。 Details expando,这个东西就是Explorer窗口左边的任务列表中“细节”栏的内容。(打开Explorer,将文件夹和搜索两个按钮置为抬起状态,就可以看到左边一排可以伸展收缩的框,称为expando。)在RarFS 0.0.8之前的版本中,如果选中一个rar里面的
2005-10-10 19:25:00
1937
原创 抓狂的Namespace Shell Extension (3)
Explorer有两种线程模型: (1) 所有窗口在一个进程内,每窗口是一个或多个GUI线程。(2) 每窗口一个进程,每进程中有一个或多个GUI线程。 比较好的情况(对程序员友好)是(2)。如果用户选择的是方式1,那么在编写namespace shell extension时如果需要non-blocking方式,即完成长时间工作而主窗口依然能处理用户消息,一定要千万分当心。 下面是典型的一种情况:
2005-10-10 19:09:00
2110
原创 抓狂的Namespace Shell Extension (2)
写了个新玩具:RarFS。实际上就是个namespace extension,可以把rar在资源管理器里面(explorer)虚拟成文件夹。 利用了rooted namespace extension和shell default view。文件信息的获取是通过管道操作从rar获取的。 需要的请来信netex@163.com。 :)
2005-10-10 19:07:00
3479
原创 抓狂的Namespace Shell Extension (1)
最近在做一个NSE,把RAR文件虚拟成一个folder,所有前期准备工作做完后,突然发现SHITEMID的结构要变一变,让它能更好地对齐,从: bool bFolder;wchar_t parent[var_len];UINT size;wchar_t name[var_len]; 改为: BOOL bFolder;UINT size;wchar_t parent[var_len];wchar_t
2005-10-10 19:05:00
3317
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人