没有合适的资源?快使用搜索试试~ 我知道了~
Windows Shell 编程.pdf
需积分: 50 75 下载量 43 浏览量
2016-10-17
22:26:59
上传
评论 2
收藏 25.12MB PDF 举报
温馨提示
Windows Shell 编程.pdf 看过一些对windows 外壳的扩展程序,在使用上一般都是直接利用windows的外壳API做一些工作,因为外壳操作需要一些比较专业的知识,因此,大部分编程人员特别是使用集成编程环境的程序人员对windows shell的扩展编程不很了解,也缺乏这方面的资料。 在做过一些程序之后,感觉到使用windows shell的扩展编程可以使程序与操作系统的结合更加紧密,就好像应用程序已经融入到操作系统之中一样。在使用windows shell扩张编程工具的过程中深切体会到windows shell技术资料的重要性,为此,根据Dino Esposito的《Visual C++ Windows Shell Programming》为蓝本,编译形成以下文字,为希望使用windows shell编程的人员提供一点帮助。
资源推荐
资源详情
资源评论

格式:pdf 资源大小:2.2MB 页数:384



























格式:octet-stream 资源大小:1.9MB



Windows Shell 编程
版权声明:本文为博主原创文章,未经博主允许不得转载。
用VC++ 进行Windows Shell 扩展编成
由ccc编译
序言:
看过一些对windows 外壳的扩展程序,在使用上一般都是直接利用windows的外壳API做一些工作,
因为外壳操作需要一些比较专业的知识,因此,大部分编程人员特别是使用集成编程环境的程序人员对
windows shell的扩展编程不很了解,也缺乏这方面的资料。
在做过一些程序之后,感觉到使用windows shell的扩展编程可以使程序与操作系统的结合更加紧
密,就好像应用程序已经融入到操作系统之中一样。在使用windows shell扩张编程工具的过程中深切体
会到windows shell技术资料的重要性,为此,根据Dino Esposito的《Visual C++ Windows Shell
Programming》为蓝本,编译形成以下文字,为希望使用windows shell编程的人员提供一点帮助。
编译过程可能会出现错误,希望朋友们指正,请Email联系:ch2zh1@tom.com。本人将不胜感
激。
引言
欢迎阅读CV++ Windows Shell编程,在这本书中,你将学到怎样扩展Windows Shell,客户化它的行为和继承应用
到Windows Shell中。你还将发现怎样使用和修改它的属性以达到最好的效能,以及调用那些资料欠缺的Shell API 函数
的方法。对Shell编程并不困难,但是很少有关于这方面的完整资料进行介绍。
系统的演变
在Windows 95 和 Windows NT 4.0 中微软通过各种不同的扩展使操作系统的Shell可编程并高度客户化,Shell和命名空
间扩展只是其各种扩展的冰山一角。对Shell编程的一般理解还包括有Shell的API函数和注册表键等,他们也可以转变你
的Win32应用。
集成的Web浏览器已经混淆了本地与远程对象的差别,它在你的桌面上使用相同的风格表示每一个事物。它可以扩展到
包含用户的应用和资料。集成新的Windows Shell部件是这个进程的关键部分。所以,现今的Shell 不仅仅是COM、扩展
和用户接口,还包含了Internet、动态HTML和脚本Windows。Shell已经成为了包含大量客户端技术的汇集点。每一个开
发基于Windows代码的程序员,很快或不久就将需要实际和深入例程来探索Windows Shell 的内在特征。这本书包含了
全部API函数详细说明,揭示其中的Bugs和没有说明资料的特征。它深入到探测器的内部世界,带出其中闪亮的东西,
比如,钩子、注册表、浏览器帮助对象、Shell 扩展、命名空间扩展和Web观察。他还注意到Windows脚本环境扩展和

Shell脚本对象。
这本书是为专业开发者定制的,有三个主要的目标:
为现存的和资料贫乏的Shell API 提供解释
给出新应用概念
显示关于IE4.0、活动桌面和Windows98的新特征和这些新特征怎样适应以存在的Shell。
本书范围
在这本书中我们见致力于回答下面一般的问题
什么是Shell API 和我怎样使用它
怎样使用注册表来客户化我的Windows Shell
我怎样才能建立向“回收站”和“我的公文包”那样的特殊目录
有哪些不同的方法把代码插入到探测器地址空间
怎样处理图标、任务条和“回收站”
什么是Windows脚本环境,我怎样才能使用它
什么是Shell脚本对象和浏览器帮助对象
我怎样才能实现Shell对我的应用处理的文档的支持
我怎样才能客户化我的文档的关联菜单
我怎样在Shell和命名空间扩展中使用COM和ATL来改变Shell的行为
怎样排除Shell扩展中的错误
解释建立成功的Shell集成的应用的原理和所需要的技术
我是怎样使用动态HTML客户化一个文件夹的
每一个Shell编程问题都使用实际例程进行说明,例子程序是由VC++6.0和ATL3.0书写的。这本书中还有一些更有趣的例
程:
“开始”按钮的子类
建立和安装新的增强型快捷方式处理器
和Windows脚本环境一起工作的新对象
依据控制板尺寸指派不同的图标和Bitmap文件的Shell扩展
探测器中的按键和建立新的文件夹
在探测器中把打开的窗口作为节点显示
技术准备
准备一台运行Windows98、Windows95 或Windows NT 4.0 (带有ServicePack4.0)的计算机就不用说了,还要特别注意
的是有些例程要求你安装IE4.0以上版本。
代码是由VC++6.0和ATL3.0写成的,在CV++5.0中可能会有错误。书中还使用了Windows脚本环境和IE4.01环境编写了
一些示例。
习惯用法
书中使用不同的文字方格和布局来区分不同的信息。下面是一些例子和他们的意义。

框中是重要的说明资料,它们直接向关于上下文内容。
其它信息以文字形式出现如下.
重要文字以黑体形式给出
出现在屏幕山的文字,如菜单选择,与实际屏幕显示的字体相同
键盘上的按键如Crtl和Delete使用斜体
所有文件名都有Pidl.cpp这种风格
函数名则有SHBrowseForFolder()这种风格
新的,重要的和与当前讨论问题相关的代码有如下形式:
void CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime)
{
HWND hwndOK = GetDlgItem(g_hwndDlg, IDOK);
// Simulate the Close button being pressed
if(IsWindowEnabled(hwndOK))
PostMessage(g_hwndDlg, WM_COMMAND, IDCANCEL, 0);
}
联系地址
电子邮箱 ch2zh1@tom.com

Windows Shell 编程 第一章
版权声明:本文为博主原创文章,未经博主允许不得转载。
第一章 Windows Shell是什么
一个操作系统外壳的不错的定义是它是一个系统提供的用户界面,它允许用户执行公共的任务,如访问文件系统,
导出执行程序,改变系统设置等。MS-DOS有一个Command.COM扮演着这个角色。然而Windows已经有了图形界面环
境,他的外壳程序也就必然是图形方式的。在Windows95以前,默认的Windows Shell就是程序管理器。
程序管理器是一个中央控制台,从那里你可以启动应用程序,重排和重组图标,执行新任务。换句话说,程序管理
器就像他的名字提示的那样管理所有集中在Windows大伞之下的程序。现在对应程序管理器的是文件管理器,它是一个
专门为维护文件系统而设计的工具。
随着Windows95的出现,探测器取代了这两个老工具,并集成了二者的功能,如果你愿意,你仍能发现文件管理器
仍然深深地隐藏在Windows系统目录中。然而,由于用户友善性方面比他的后继者差,现今已经很少使用了。
一般错误的概念认为,探测器就是一个程序,当你需要通过点击“我的计算机”或右击“开始”按钮来浏览文件系
统时这个程序启动。事实上,探测器总是启动和运行着的,从引导开始一直到你关闭计算机。直觉是“探测器”实际上
就是新概念下的窗口。探测器是一个可执行模块(explorer.exe),它实现了Windows外壳功能。
在这一章中,主要是介绍外壳和探测器,更精确地讲是
Shell的组成部分
探测器结构
Shell的组成部分
Shell由许多不同的部分组成,现在我们就从最显而易见的桌面和任务条开始。从概念上讲,桌面是所有Windows
Shell对象的父对象,即宿主对象。就实现方式而言,桌面是一个系统定义窗口类的特殊窗口(命名为#32769),并且是
所有窗口的祖先窗口。那些导出应用的顶层窗口一般而言都是桌面的子窗口。在这些子窗口中有一个有趣的窗口子树,
它的根是“程序管理器”。
你可以用CV++带的工具Spy++来检查窗口栈中打开的窗口。
程序管理器保持了兼容性,在图中你可以看到,他的封装结构:程序管理器的直接下级是一个命为SHELLDLL DefView的
窗口类,这个窗口包含了一个默认的观察对象,事实上这个窗口负责枚举标准文件夹的内容,它总是从ListView控件中

导出,这是一个通用的系统控件。SHELLDLL DefView窗口包含了一个ListView(类名为SysListView32)和一个标题控件(类
名为SysHeader32),标题控件仅仅用于ListView的报告观察。
随着IE4.0的活动桌面和Windows98的发布,默认的观察对象已经有了基于某些浏览器能力的变化。在下一章中我们
将更进一步讨论这些观察对象和他们的变化。
程序管理器
就象前面提到的一样,程序管理器窗口是为了兼容性而保留的。它正好演示了一个窗口应用从16位到32位的演变过程。
在Win16环境中,与Shell唯一的通讯方式是通过动态数据交换(DDE)。这个层面的代码在Windows95 甚至Windows98
中还在维护。为什么呢?,为了兼容性。
关于DDE接口变成与Shell的详细说明,建议察看资料Internet ClientSDK其中给出了最新的信息。DDE是一款较老的
技术,微软已经有大量的资料说明。
任务条
主要的Windows Shell部件就是任务条,它实际上就是由探测器进程所拥有的一个窗口。每当你需要终止探测器进程
的时候,都将引起任务条的消失和重新显现。每当他重新显现的时候他注册一个具有不同HWND的新窗口。因而,就引
用而言,你没有必要保留这个窗口的HWND 。任务条也是也各拥有“开始”按钮的窗口,在托盘区域有时钟和类似按钮
的控件,表示正在运行的应用。
任务条实际上与窗口一样,可以在其上作任何窗口上可以做的操作如移动、隐藏和子类化等。在第七章中我们将说
明怎样子类化任务条和“开始”按钮。在第九章中可以找到怎样隐藏任务条和编成重新启动Shell。这后一个特性在编成
实现Shell和命名空间扩展时是有用的。
桌面
你是否奇怪,桌面上的快捷方式是从哪里来的和属于谁,坦白地讲,开始我也认为探测器模块绘制了这些图标,记录了
用户设置,颜色,状态等。这个模块开可能在桌面背景上绘制用户设置的墙纸。
桌面并不是这样工作的,相反,快捷方式作为图标是由一个普通的ListView显示的。当然这个ListView有了一个不寻
常的变异,但是它确实是一个ListView,因此它也就不难从消息中获取处理对象了,将在第九章中给出例程进行说明。
探测器结构
探测器是一个扮演着系统外壳角色的应用程序。当说到外壳扩展的时候,我们讲的就是有探测器感知的、装入的并
最终执行的代码块。
探测器可以被看作为一个微型的窗口开发环境。想象一下:它有自己的函数和对话框;允许写特殊的与已存在的体
系集成的应用程序;能包容应用和文档。他甚至可以解释任何活动的脚本兼容语言的脚本(VBScript,JScript,Perl,等
等)。本书中将包含所有这些特征。
扩展的切入点
随Windows3.1一起发布的文件管理器有着非常好的旦未充分利用的特性,比如:它能够在运行时加载DLL,执行具
有特殊原形的已注册函数等。也就是说,在这个资源中有一点,其代码本身能够知晓某些活动是由用户执行的。换句话
剩余542页未读,继续阅读
资源评论


Vinx911
- 粉丝: 127
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 桩基钢筋加工(劳务分包)协议书.doc
- 单片机原理与接口技术试题及答案.doc
- 给水企业供水调度管理信息化初探.docx
- 用于慢病管理的网络化健康信息技术.ppt
- 基于广义回归神经网络的黄金价格预测.docx
- 城市污水雨水管网的设计计算(毕业设计).doc
- 大数据技术在智慧物流中的应用研究.docx
- 全现浇结构塔楼造价指标.doc
- 浙江计算机网络专业技术历真题(附标准答案).doc
- 监理人员进场一览表1.doc
- hs-icf外墙外保温建筑节能体系技术规程概要.doc
- 人工智能医疗应用场景解析.pptx
- 劳动合同(固定期限).docx
- 4层百货框架结构计算书及施工组织设计.doc
- 新型智慧城市解决方案V3.pptx
- 计算机基础上机指导.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
