现在的位置: 首页 > 综合 > 正文

Windows Shell 编程

2018年05月19日 ⁄ 综合 ⁄ 共 2535字 ⁄ 字号 评论关闭
 

用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编程的一般理解还包括有ShellAPI函数和注册表键等,他们也可以转变你的Win32应用。
集成的Web浏览器已经混淆了本地与远程对象的差别,它在你的桌面上使用相同的风格表示每一个事物。它可以扩展到包含用户的应用和资料。集成新的Windows Shell部件是这个进程的关键部分。所以,现今的Shell 不仅仅是COM、扩展和用户接口,还包含了Internet、动态HTML和脚本WindowsShell已经成为了包含大量客户端技术的汇集点。每一个开发基于Windows代码的程序员,很快或不久就将需要实际和深入例程来探索Windows Shell 的内在特征。这本书包含了全部API函数详细说明,揭示其中的Bugs和没有说明资料的特征。它深入到探测器的内部世界,带出其中闪亮的东西,比如,钩子、注册表、浏览器帮助对象、Shell 扩展、命名空间扩展和Web观察。他还注意到Windows脚本环境扩展和Shell脚本对象。
这本书是为专业开发者定制的,有三个主要的目标:
         为现存的和资料贫乏的Shell API 提供解释
         给出新应用概念
         显示关于IE4.0、活动桌面和Windows98的新特征和这些新特征怎样适应以存在的Shell
本书范围
在这本书中我们见致力于回答下面一般的问题
         什么是Shell API 和我怎样使用它
         怎样使用注册表来客户化我的Windows Shell
         我怎样才能建立向“回收站”和“我的公文包”那样的特殊目录
         有哪些不同的方法把代码插入到探测器地址空间
         怎样处理图标、任务条和“回收站”
         什么是Windows脚本环境,我怎样才能使用它
         什么是Shell脚本对象和浏览器帮助对象
         我怎样才能实现Shell对我的应用处理的文档的支持
         我怎样才能客户化我的文档的关联菜单
         我怎样在Shell和命名空间扩展中使用COMATL来改变Shell的行为
         怎样排除Shell扩展中的错误
         解释建立成功的Shell集成的应用的原理和所需要的技术
         我是怎样使用动态HTML客户化一个文件夹的
每一个Shell编程问题都使用实际例程进行说明,例子程序是由VC++6.0ATL3.0书写的。这本书中还有一些更有趣的例程:
         “开始”按钮的子类
         建立和安装新的增强型快捷方式处理器
         Windows脚本环境一起工作的新对象
         依据控制板尺寸指派不同的图标和Bitmap文件的Shell扩展
         探测器中的按键和建立新的文件夹
         在探测器中把打开的窗口作为节点显示
 
技术准备
准备一台运行Windows98Windows95 Windows NT 4.0 (带有ServicePack4.0)的计算机就不用说了,还要特别注意的是有些例程要求你安装IE4.0以上版本。
代码是由VC++6.0ATL3.0写成的,在CV++5.0中可能会有错误。书中还使用了Windows脚本环境和IE4.01环境编写了一些示例。
 
习惯用法
书中使用不同的文字方格和布局来区分不同的信息。下面是一些例子和他们的意义。

框中是重要的说明资料,它们直接向关于上下文内容。
 

 

 


其它信息以文字形式出现如下.
    重要文字以黑体形式给出
    出现在屏幕山的文字,如菜单选择,与实际屏幕显示的字体相同
    键盘上的按键如CrtlDelete使用斜体
    所有文件名都有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

 

抱歉!评论已关闭.