书名:super红客

键盘操纵控件

    ----前几天在朋友家看到一款联想射雕modem,吸引我的不是modem的外形、性能之类的说明,而是它配套光盘中的 说明能够自动安装modem的驱动程序?当时觉得非常奇怪,因为外置式modem还可以通过检测odem发送at指令获得modem类型,从而安装相应驱动程序,而内置式modem是没有办法这样做的,如果没有先安装驱动程序,无法对modem进行检测的。再仔细观察说明书,原来联想的modem在pc机上用的都是外置式的。这倒是可以通过程序实现自动安装的。

    ----运行起 ,选择自动安装,一步步进行下去,仔细观察modem,发现modem的指示灯没有一点变化,如果程序在检测modem,modem应该有所反应的啊,过了一阵,出现了 s的那个检测到新硬件的窗口,然后就是正在安装驱动程序,实在令我非常诧异。

    ----这是怎么回事?难道它不需要检测modem就能让 s知道有新硬件把我又把驱动程序卸掉,重新运行 ,这次是紧紧的盯着屏幕,忽然,控制面板中系统对话框出现了,自动切换到了设备管理器的界面,然后就是检测到了新硬件,正在安装驱动程序。

    ----我们知道,如果在电脑上安装新的pnp硬件, s启动后会报告找到新硬件,如果这时选择取消按钮,进入 s后,再进入控制面板,选择系统,选择设备管理器,选择刷新按钮, s将再次检测硬件,会再次报告找到新硬件。

    ----于是我再次卸掉驱动程序,先把系统属性界面运行起来,显示出性能页面中的虚拟内存对话框,再运行 ,只见虚拟内存对话框突然出现在前台,而本来应该是 在前台的;也没有出现检测到新硬件对话框,最后 报告没有检测到modem。

    ----看来真相大白了,联想的自动安装程序是通过调用 s的刷新功能实现其安装的,但是一般我们安装新硬件的时候,如果 s本身没有安装程序,都会要求我们插入驱动程序安装盘,那么联想modem的驱动程序是怎么装上去的呢?

    ----仔细查看联想modem的配套光盘,根目录下有几个inf文件,看来这几个是modem的驱动程序了,  do f目录中查找相应的驱动程序,如果没有找到,才会要求驱动程序安装盘,看来联想的自动安装程序是先把驱动程序拷贝到inf目录下,然后再刷新设备管理器,从而安装modem.。

    ----我首先屏蔽掉 对系统属性的刷新功能,然后在 m的时候在inf目录下查找联想modem的驱动程序,果然已经拷贝了,从而证实了我的想法。

    ----下面我说说如何用vb实现类似的功能:

    ----首先是将需要的驱动程序拷贝到 s相应的目录下,

    ----用vb中的filecopy函数可以完成这项功能。

    ----获得  y”,获得 systemdirectory”。

    ----declarefunget ylib"kernel  ya"(byvallpbufferstring,byvalnsizelong)longdeclarefungetsystemdirectorylib"kernel directorya"(byvallpbufferstring,byvalnsizelong)long

    ----然后是调用控制面板中的系统属性对话框。

    ----shell"  ol_rundl ,,1", 就是控制面板的系统属性扩展,要运行它需要调用  ol_rundll运行。

    ----如果我们打开资源管理器的“查看”菜单中“文件夹选项”菜单,将会出现一个对话框,切换到“文件类型”,查找“控制面板扩展”文件类型,选中后,详细信息中说明它的扩展名为“cpl”,打开方式“ ”,点击“编辑”按钮,出现“编辑文件类型”对话框,对应的操作是“使用控制面板打开”,选择“编辑”按钮,出现一个名为“编辑这种类型的操作:控制面板扩展”,这时我们将在“用于执行操作的应用程序”中获得如下信息:

    ----  ol_rundll%1,%*

    ----最后就是如何实现刷新功能了,刷新按钮对应的快捷键是“alt+f”,我们只要让其窗口获得焦点,然后再发送一个按键信息就可以了。

    sendkeys"%f"'%表示alt按键

    ----其它控制面板扩展对应的命令:

    ----控制面板:  ol_rundll

    ----辅助选项:  ol_rundl ,,1(最后一个参数:1显示键盘设置;2显示声音设置;3显示显示设置;4显示鼠标设置;5显示常规设置)

    ----添加新硬件:  ol_rundl 1

    ----增加新的打印机:  lpshortcuts_rundlladdprinter

    ----添加/删除程序:  ol_rundl ,,1(最后一个参数:1显示安装/卸载;2显示 s安装;3显示启动盘)

    ----时间/日期:  ol_rundl ,,0(最后一个参数:0显示设置日期/时间;1显示设置时区)

    ----显示器:  ol_rundl ,,0(最后一个参数:0显示背景设置;1显示屏幕保护设置;2显示外观设置;3显示窗口设置)

    ----操纵杆:  ol_rundl ,,0(最后一个参数:0显示常规设置;1显示高级设置)

    ----鼠标属性:  ol_rundl 0

    ----键盘属性:  ol_rundl 1,0(最后一个参数:0显示速度设置;1显示语言设置)

    ----打印机属性:  ol_rundl 2

    ----字体属性:  ol_rundl 3

    ----增加modem:  ol_rundl ,,add

    ----多媒体:  ol_rundl ,,0(最后一个参数:0显示音频属性;1显示视频属性;2显示midi属性; d音乐属性;4显示设备属性)

    ----声音:  ol_rundl 1

    ----网络:  ol_rundl

    ----口令:  ol_rundl

    ----区域设置:  ol_rundl ,,0(最后一个参数:0显示区域设置;1显示数字格式设置;2显示金额格式设置;3显示时间格式设置;4显示日期格式设置)

    ----系统设置:  ol_rundl ,,0(最后一个参数:0显示常规设置;1显示设备管理设置;2显示硬件设置;3显示性能设置)

    ----ie4设置:  ol_rundl (最后一个参数:0显示常规设置;1显示安全设置;2显示内容设置;3显示连接设置;4显示程序设置;5显示高级设置)

    </p>