?----前幾天在朋友家看到一款聯(lián)想射雕modem,吸引我的不是modem的外形、性能之類的說明,而是它配套光盤中的說明能夠自動(dòng)安裝modem的驅(qū)動(dòng)程序?當(dāng)時(shí)覺得非常奇怪,因?yàn)橥庵檬絤odem還可以通過檢測(cè)com口對(duì)modem發(fā)送at指令獲得modem類型,從而安裝相應(yīng)驅(qū)動(dòng)程序,而內(nèi)置式modem是沒有辦法這樣做的,如果沒有先安裝驅(qū)動(dòng)程序,無法對(duì)modem進(jìn)行檢測(cè)的。再仔細(xì)觀察說明書,原來聯(lián)想的modem在pc機(jī)上用的都是外置式的。這倒是可以通過程序?qū)崿F(xiàn)自動(dòng)安裝的。
----運(yùn)行起,選擇自動(dòng)安裝,一步步進(jìn)行下去,仔細(xì)觀察modem,發(fā)現(xiàn)modem的指示燈沒有一點(diǎn)變化,如果程序在檢測(cè)modem,modem應(yīng)該有所反應(yīng)的啊,過了一陣,出現(xiàn)了s的那個(gè)檢測(cè)到新硬件的窗口,然后就是正在安裝驅(qū)動(dòng)程序,實(shí)在令我非常詫異。
----這是怎么回事?難道它不需要檢測(cè)modem就能讓s知道有新硬件把我又把驅(qū)動(dòng)程序卸掉,重新運(yùn)行,這次是緊緊的盯著屏幕,忽然,控制面板中系統(tǒng)對(duì)話框出現(xiàn)了,自動(dòng)切換到了設(shè)備管理器的界面,然后就是檢測(cè)到了新硬件,正在安裝驅(qū)動(dòng)程序。
----我們知道,如果在電腦上安裝新的pnp硬件,s啟動(dòng)后會(huì)報(bào)告找到新硬件,如果這時(shí)選擇取消按鈕,進(jìn)入s后,再進(jìn)入控制面板,選擇系統(tǒng),選擇設(shè)備管理器,選擇刷新按鈕,s將再次檢測(cè)硬件,會(huì)再次報(bào)告找到新硬件。
----于是我再次卸掉驅(qū)動(dòng)程序,先把系統(tǒng)屬性界面運(yùn)行起來,顯示出性能頁面中的虛擬內(nèi)存對(duì)話框,再運(yùn)行,只見虛擬內(nèi)存對(duì)話框突然出現(xiàn)在前臺(tái),而本來應(yīng)該是在前臺(tái)的;也沒有出現(xiàn)檢測(cè)到新硬件對(duì)話框,最后報(bào)告沒有檢測(cè)到modem。
----看來真相大白了,聯(lián)想的自動(dòng)安裝程序是通過調(diào)用s的刷新功能實(shí)現(xiàn)其安裝的,但是一般我們安裝新硬件的時(shí)候,如果s本身沒有安裝程序,都會(huì)要求我們插入驅(qū)動(dòng)程序安裝盤,那么聯(lián)想modem的驅(qū)動(dòng)程序是怎么裝上去的呢?
----仔細(xì)查看聯(lián)想modem的配套光盤,根目錄下有幾個(gè)inf文件,看來這幾個(gè)是modem的驅(qū)動(dòng)程序了,dof目錄中查找相應(yīng)的驅(qū)動(dòng)程序,如果沒有找到,才會(huì)要求驅(qū)動(dòng)程序安裝盤,看來聯(lián)想的自動(dòng)安裝程序是先把驅(qū)動(dòng)程序拷貝到inf目錄下,然后再刷新設(shè)備管理器,從而安裝modem.。
----我首先屏蔽掉對(duì)系統(tǒng)屬性的刷新功能,然后在m的時(shí)候在inf目錄下查找聯(lián)想modem的驅(qū)動(dòng)程序,果然已經(jīng)拷貝了,從而證實(shí)了我的想法。
----下面我說說如何用vb實(shí)現(xiàn)類似的功能:
----首先是將需要的驅(qū)動(dòng)程序拷貝到s相應(yīng)的目錄下,
----用vb中的filecopy函數(shù)可以完成這項(xiàng)功能。
----獲得y”,獲得systemdirectory”。
----declarefunctiongetylib"kernelya"(byvallpbufferstring,byvalnsizelong)longdeclarefunctiongetsystemdirectorylib"kerneldirectorya"(byvallpbufferstring,byvalnsizelong)long
----然后是調(diào)用控制面板中的系統(tǒng)屬性對(duì)話框。
----shell"ol_rundl,,1",就是控制面板的系統(tǒng)屬性擴(kuò)展,要運(yùn)行它需要調(diào)用ol_rundll運(yùn)行。
----如果我們打開資源管理器的“查看”菜單中“文件夾選項(xiàng)”菜單,將會(huì)出現(xiàn)一個(gè)對(duì)話框,切換到“文件類型”,查找“控制面板擴(kuò)展”文件類型,選中后,詳細(xì)信息中說明它的擴(kuò)展名為“cpl”,打開方式“”,點(diǎn)擊“編輯”按鈕,出現(xiàn)“編輯文件類型”對(duì)話框,對(duì)應(yīng)的操作是“使用控制面板打開”,選擇“編輯”按鈕,出現(xiàn)一個(gè)名為“編輯這種類型的操作:控制面板擴(kuò)展”,這時(shí)我們將在“用于執(zhí)行操作的應(yīng)用程序”中獲得如下信息:
----ol_rundll%1,%*
----最后就是如何實(shí)現(xiàn)刷新功能了,刷新按鈕對(duì)應(yīng)的快捷鍵是“alt+f”,我們只要讓其窗口獲得焦點(diǎn),然后再發(fā)送一個(gè)按鍵信息就可以了。
sendkeys"%f"'%表示alt按鍵
----其它控制面板擴(kuò)展對(duì)應(yīng)的命令:
----控制面板:ol_rundll
----輔助選項(xiàng):ol_rundl,,1(最后一個(gè)參數(shù):1顯示鍵盤設(shè)置;2顯示聲音設(shè)置;3顯示顯示設(shè)置;4顯示鼠標(biāo)設(shè)置;5顯示常規(guī)設(shè)置)
----添加新硬件:ol_rundl1
----增加新的打印機(jī):lpshortcuts_rundlladdprinter
----添加/刪除程序:ol_rundl,,1(最后一個(gè)參數(shù):1顯示安裝/卸載;2顯示s安裝;3顯示啟動(dòng)盤)
----時(shí)間/日期:ol_rundl,,0(最后一個(gè)參數(shù):0顯示設(shè)置日期/時(shí)間;1顯示設(shè)置時(shí)區(qū))
----顯示器:ol_rundl,,0(最后一個(gè)參數(shù):0顯示背景設(shè)置;1顯示屏幕保護(hù)設(shè)置;2顯示外觀設(shè)置;3顯示窗口設(shè)置)
----操縱桿:ol_rundl,,0(最后一個(gè)參數(shù):0顯示常規(guī)設(shè)置;1顯示高級(jí)設(shè)置)
----鼠標(biāo)屬性:ol_rundl0
----鍵盤屬性:ol_rundl1,0(最后一個(gè)參數(shù):0顯示速度設(shè)置;1顯示語言設(shè)置)
----打印機(jī)屬性:ol_rundl2
----字體屬性:ol_rundl3
----增加modem:ol_rundl,,add
----多媒體:ol_rundl,,0(最后一個(gè)參數(shù):0顯示音頻屬性;1顯示視頻屬性;2顯示midi屬性;d音樂屬性;4顯示設(shè)備屬性)
----聲音:ol_rundl1
----網(wǎng)絡(luò):ol_rundl
----口令:ol_rundl
----區(qū)域設(shè)置:ol_rundl,,0(最后一個(gè)參數(shù):0顯示區(qū)域設(shè)置;1顯示數(shù)字格式設(shè)置;2顯示金額格式設(shè)置;3顯示時(shí)間格式設(shè)置;4顯示日期格式設(shè)置)
----系統(tǒng)設(shè)置:ol_rundl,,0(最后一個(gè)參數(shù):0顯示常規(guī)設(shè)置;1顯示設(shè)備管理設(shè)置;2顯示硬件設(shè)置;3顯示性能設(shè)置)
----ie4設(shè)置:ol_rundl(最后一個(gè)參數(shù):0顯示常規(guī)設(shè)置;1顯示安全設(shè)置;2顯示內(nèi)容設(shè)置;3顯示連接設(shè)置;4顯示程序設(shè)置;5顯示高級(jí)設(shè)置)