键盘操纵控件
----前几天在朋友家看到一款联想射雕modem,吸引我的不是modem的外形、性能之类的说明,而是它配套光盘中的bxwx.org说明能够自动安装modem的驱动程序?当时觉得非常奇怪,因为外置式modem还可以通过检测org口对modem发送at指令获得modem类型,从而安装相应驱动程序,而内置式modem是没有办法这样做的,如果没有先安装驱动程序,无法对modem进行检测的。再仔细观察说明书,原来联想的modem在pc机上用的都是外置式的。这倒是可以通过程序实现自动安装的。
----运行起bxwx.org,选择自动安装,一步步进行下去,仔细观察modem,发现modem的指示灯没有一点变化,如果程序在检测modem,modem应该有所反应的啊,过了一阵,出现了windows的那个检测到新硬件的窗口,然后就是正在安装驱动程序,实在令我非常诧异。
----这是怎么回事?难道它不需要检测modem就能让windows知道有新硬件把我又把驱动程序卸掉,重新运行bxwx.org,这次是紧紧的盯着屏幕,忽然,控制面板中系统对话框出现了,自动切换到了设备管理器的界面,然后就是检测到了新硬件,正在安装驱动程序。
----我们知道,如果在电脑上安装新的pnp硬件,windows启动后会报告找到新硬件,如果这时选择取消按钮,进入windows后,再进入控制面板,选择系统,选择设备管理器,选择刷新按钮,windows将再次检测硬件,会再次报告找到新硬件。
----于是我再次卸掉驱动程序,先把系统属性界面运行起来,显示出性能页面中的虚拟内存对话框,再运行bxwx.org,只见虚拟内存对话框突然出现在前台,而本来应该是bxwx.org在前台的;也没有出现检测到新硬件对话框,最后bxwx.org报告没有检测到modem。
----看来真相大白了,联想的自动安装程序是通过调用windows的刷新功能实现其安装的,但是一般我们安装新硬件的时候,如果windows本身没有安装程序,都会要求我们插入驱动程序安装盘,那么联想modem的驱动程序是怎么装上去的呢?
----仔细查看联想modem的配套光盘,根目录下有几个inf文件,看来这几个是modem的驱动程序了,windows安装新硬件的驱动程序时,首先会在windows目录下耳朵inf目录中查找相应的驱动程序,如果没有找到,才会要求驱动程序安装盘,看来联想的自动安装程序是先把驱动程序拷贝到inf目录下,然后再刷新设备管理器,从而安装modem.。
----我首先屏蔽掉bxwx.org对系统属性的刷新功能,然后在bxwx.org检测modem的时候在inf目录下查找联想modem的驱动程序,果然已经拷贝了,从而证实了我的想法。
----下面我说说如何用vb实现类似的功能:
----首先是将需要的驱动程序拷贝到windows相应的目录下,
----用vb中的filecopy函数可以完成这项功能。
----获得windows目录可以使用api函数“getwindowsdirectory”,获得windows系统目录使用api函数“getsystemdirectory”。
----declarefunctiongetwindowsdirectorylib"kernel32"alias"getwindowsdirectorya"(byvallpbufferstring,byvalnsizelong)longdeclarefunctiongetsystemdirectorylib"kernel32"alias"getsystemdirectorya"(byvallpbufferstring,byvalnsizelong)long
----然后是调用控制面板中的系统属性对话框。
----shell"bxwx.orgbxwx.org,control_bxwx.org,,1",bxwx.org就是控制面板的系统属性扩展,要运行它需要调用bxwx.orgbxwx.org,control_rundll运行。
----如果我们打开资源管理器的“查看”菜单中“文件夹选项”菜单,将会出现一个对话框,切换到“文件类型”,查找“控制面板扩展”文件类型,选中后,详细信息中说明它的扩展名为“cpl”,打开方式“bxwx.org”,点击“编辑”按钮,出现“编辑文件类型”对话框,对应的操作是“使用控制面板打开”,选择“编辑”按钮,出现一个名为“编辑这种类型的操作:控制面板扩展”,这时我们将在“用于执行操作的应用程序”中获得如下信息:
----bxwx.orgbxwx.org,control_rundll%1,%*
----最后就是如何实现刷新功能了,刷新按钮对应的快捷键是“alt+f”,我们只要让其窗口获得焦点,然后再发送一个按键信息就可以了。
sendkeys"%f"'%表示alt按键
----其它控制面板扩展对应的命令:
----控制面板:bxwx.orgbxwx.org,control_rundll
----辅助选项:bxwx.orgbxwx.org,control_bxwx.org,,1(最后一个参数:1显示键盘设置;2显示声音设置;3显示显示设置;4显示鼠标设置;5显示常规设置)
----添加新硬件:bxwx.orgbxwx.org,control_bxwx.org1
----增加新的打印机:bxwx.orgbxwx.org,shhelpshortcuts_rundlladdprinter
----添加/删除程序:bxwx.orgbxwx.org,control_bxwx.org,,1(最后一个参数:1显示安装/卸载;2显示windows安装;3显示启动盘)
----时间/日期:bxwx.orgbxwx.org,control_bxwx.org,,0(最后一个参数:0显示设置日期/时间;1显示设置时区)
----显示器:bxwx.orgbxwx.org,control_bxwx.org,,0(最后一个参数:0显示背景设置;1显示屏幕保护设置;2显示外观设置;3显示窗口设置)
----操纵杆:bxwx.orgbxwx.org,control_bxwx.org,,0(最后一个参数:0显示常规设置;1显示高级设置)
----鼠标属性:bxwx.orgbxwx.org,control_bxwx.org0
----键盘属性:bxwx.orgbxwx.org,control_bxwx.org1,0(最后一个参数:0显示速度设置;1显示语言设置)
----打印机属性:bxwx.orgbxwx.org,control_bxwx.org2
----字体属性:bxwx.orgbxwx.org,control_bxwx.org3
----增加modem:bxwx.orgbxwx.org,control_bxwx.org,,add
----多媒体:bxwx.orgbxwx.org,control_bxwx.org,,0(最后一个参数:0显示音频属性;1显示视频属性;2显示midi属性;3显示cd音乐属性;4显示设备属性)
----声音:bxwx.orgbxwx.org,control_bxwx.org1
----网络:bxwx.orgbxwx.org,control_bxwx.org
----口令:bxwx.orgbxwx.org,control_bxwx.org
----区域设置:bxwx.orgbxwx.org,control_bxwx.org,,0(最后一个参数:0显示区域设置;1显示数字格式设置;2显示金额格式设置;3显示时间格式设置;4显示日期格式设置)
----系统设置:bxwx.orgbxwx.org,control_bxwx.org,,0(最后一个参数:0显示常规设置;1显示设备管理设置;2显示硬件设置;3显示性能设置)
----ie4设置:bxwx.orgbxwx.org,control_bxwx.org(最后一个参数:0显示常规设置;1显示安全设置;2显示内容设置;3显示连接设置;4显示程序设置;5显示高级设置)