• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            C++樂園

            C/C++ 交流

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              12 隨筆 :: 18 文章 :: 14 評論 :: 0 Trackbacks
            轉載]明明白白Inf文件

            信息來源:網絡

            INF文件全稱Information File文件,是Winodws操作系統下用來描述設備或文件等數據信息的文件。INF文件是由標準的ASCII碼組成,您可以用任何一款文字編輯器查看修改其中的內容。一般我們總是認為INF文件是系統設備的驅動程序,其實這是錯誤的認識,Windows之所以在安裝某些硬件的驅動時提示需要INF文件是因為INF文件為該設備提供了一個全面描述硬件參數和相應驅動文件(DLL文件)的信息。就好比我們看著說明書安裝電腦硬件一樣,我們就是Windows系統,說明書就是INF文件。INF文件功能非常強大,幾乎能完成日常操作的所有功能。您可以把它看成是Windows系統底下的超強批初理。要熟練掌握和理解甚至是編寫INF文件需要對其內部結構有相當的認識。下面就讓我們來深入到INF文件中的內部一窺其真面貌吧!

            INF文件的組成有節(Sections),鍵(Key)和值(value)三部分。
            關鍵節有
            [Version]版本描述信息,主要用于版本控制。
            [Strings]字符串信息,用于常量定義。
            [DestinationDirs]定義系統路徑信息。
            [SourceDisksNames]指明源盤信息。
            [SourceDisksNames]指明源盤文件名。
            [DefaultInstall]開始執行安裝。
            其它的節可以自定義,下面用一實例來具體講解。


            程序代碼
            [Version]
            Signature=$Chicago$
            Provider=%Author%

            [Strings]
            Product="添加文件關聯演示"
            Version="1.0"
            Author="Xunchi"
            Copyright="Copyright 2005"
            CustomFile="inf" ;修改您需要的文件名后綴
            Program="NOTEPAD.EXE" ;修改您需要關聯的應用程序名

            [Add.Reg]
            HKCR,"."%CustomFile%,"",FLG_ADDREG_TYPE_SZ ,%CustomFile%File
            HKCR,%CustomFile%File,"",FLG_ADDREG_TYPE_SZ,安裝信息
            HKCR,%CustomFile%"File\shell","",FLG_ADDREG_TYPE_SZ,open
            HKCR,%CustomFile%"File\shell\open\command","",FLG_ADDREG_TYPE_SZ,%program% %1

            [DefaultInstall]
            AddReg=Add.Reg

              在[Version]節中"Signature"項定義了該INF文件需要運行在何種操作系統版本中。有$Windows NT$, $Chicago$, or $Windows 95$三個值供選擇,一般選擇$Chicago$即可。項Provider中定義了該文件的創作來源,%Author%指引用Author項的值。您也可自定其它項來描述該INF文件的版本信息。該INF文件的作用是關聯文件,所以主要是對注冊表的操作,我們來看[Add.Reg]節,共四條語句,格式都是一樣。HKCR表示根HKEY_CLASSES_ROOT,第二個參數是子鍵的路徑名,第三個參數是表明值的類型,最后是值(具體見附表)。以上都是對操作的定義與過程,在節[DefaultInstall]中是開始執行要安裝的流程,AddReg表明是對注冊表進行操作,操作對象是Add.Reg節中的定義。如果您把AddReg換成DelReg則是刪除注冊表中的鍵值。當鼠標單擊該INF文件在彈出的菜單中選擇“安裝”就開始執行您所定義的操作。該示例在系統的INF文件右鍵菜單中增加了查看編輯功能并設置了默認動作,因為在安裝了不了解的INF文件有可能對系統產生不良的影響,這樣雙擊文件就可打開編輯該文件了。


              再看看INF文件在文件操作方面的能力吧。請看下面的一個例子。

            程序代碼
            [Version]
            Signature=$Chicago$
            Provider=%Author%
            [Strings]
            Product="文件復制和安裝演示"
            Version="1.0"
            Author="Xunchi"
            Copyright="Copyright 2005"

            [FileList]
            ProcessList.exe ;此文件已在當前目錄下,下同。

            [FileList1]
            Wordpad.exe
            [DestinationDirs]
            FileList=11 ;安裝到Windows的系統目錄
            FileList1=10 ;安裝到Windows目錄
            [DefaultInstall]
            Copyfiles=FileList,FileList1

              相同的節的作用與上一例類似,請注意新出現的節[FileList],這是我自定義的節名,它表示了一個文件組,[FileList1]也類似。在節[DestinationDirs]中需定義每個文件組復制到的目錄(各個常量的意義見附表)。Copyfiles指明了需要進行復制的文件組。
              INF文件的操作還包括服務(NT系統)程序的安裝和卸載,INI文件的轉換等。由于這些操作都比較的復雜和繁瑣,且有一定的危險性故下次有機會再向大家進行深入探討。
              最后我們來看一下INF文件的執行機制,這時你也許要問不就是簡單的執行一下“安裝”嗎?知其然不知其所以然知識水平是不會提高的。在“文件夾選項”中的“文件類型”找到INF文件的“安裝”命令看到一串命令。“rundll32.exe setupapi,InstallHinfSection DefaultInst_all 132 %1”它表示了運行Dll文件setupapi.dll中的命令InstallHinfSection并傳遞給它起始節的名字 DefaultInstall。可見起始節是可以自定義的。INF文件的執行也可用在各種支持API調用的編程工具中。至此INF文件的結構和運行機制我們已基本了解,現在就讓你的思維開動起來,讓它更好的為我們工作吧。


            注冊表操作的常量定義:
            ----------------------------------------------------------
            常量 根值 
            HKCR HKEY_CLASSES_ROOT.
            HKCU HKEY_CURRENT_USER.
            HKLM HKEY_LOCAL_MACHINE.
            HKU HKEY_USERS.
            ----------------------------------------------------------- 
            FLG_ADDREG_APPEND 在多字符串后添加字符
            FLG_ADDREG_TYPE_SZ 字符類型
            FLG_ADDREG_TYPE_MULTI_SZ 字符串類型
            FLG_ADDREG_TYPE_EXPAND_SZ 擴展字符串類型
            FLG_ADDREG_TYPE_BINARY 二進制值
            FLG_ADDREG_TYPE_DWORD DWord值
            FLG_ADDREG_TYPE_NONE NULL值
            ----------------------------------------------------------


            [DestinationDirs]節中所定義的常量路徑
            ----------------------------------------------------------
            01 源目錄(后跟路徑)
            10 Windows目錄
            11 Windows系統目錄
            12 驅動目錄
            17 INF文件目錄
            18 幫助文件目錄
            20 字體目錄
            21 根目錄
            24 應用程序目錄
            25 共享目錄
            30 當前根目錄
            50 System目錄
            51 Spool 目錄
            52 Spool 驅動目錄
            53 用戶配置目錄
            ----------------------------------------------------------

            [DefaultInstall]節中定義的操作
            ----------------------------------------------------------
            LogConfig Log日志文件配置
            Copyfiles 復制文件
            Renfiles 文件改名
            Delfiles 刪除文件
            UpdateInis 更新Inis
            UpdateIniFields 更新Ini字段
            AddReg 添加注冊項
            DelReg 刪除注冊項
            Ini2Reg Ini文件轉換為Reg文件
            -----------------------------------------------------------
            posted on 2007-06-27 15:35 小不懂^_^ 閱讀(420) 評論(0)  編輯 收藏 引用 所屬分類: Windows編程
            久久久久亚洲av成人网人人软件 | 热久久视久久精品18| 久久综合久久综合九色| 久久精品国产WWW456C0M| 久久久久一级精品亚洲国产成人综合AV区 | 国产韩国精品一区二区三区久久| 99久久精品无码一区二区毛片| 热RE99久久精品国产66热| 亚洲va国产va天堂va久久| 蜜桃麻豆www久久| 2021最新久久久视精品爱| 国产精品久久久久久影院| 亚洲欧洲久久av| 久久97久久97精品免视看秋霞 | 国产精品久久久久久久久免费| 久久久久亚洲AV成人网| 欧洲人妻丰满av无码久久不卡 | 精品久久久久久无码不卡| 伊人丁香狠狠色综合久久| 亚洲精品无码久久千人斩| 久久久久亚洲?V成人无码| 日本道色综合久久影院| 色欲久久久天天天综合网| 色偷偷88欧美精品久久久| 亚洲午夜久久久精品影院 | 伊人久久大香线蕉av不变影院| 国产精品免费久久久久久久久| 久久久精品人妻一区二区三区蜜桃 | 999久久久国产精品| 久久夜色精品国产欧美乱| 久久久久久亚洲精品不卡| 97久久精品人人做人人爽| 久久精品国产第一区二区三区| 亚洲熟妇无码另类久久久| 精品综合久久久久久97| 伊人色综合九久久天天蜜桃| 亚洲午夜精品久久久久久app| 亚洲国产精品狼友中文久久久| 久久亚洲精品无码观看不卡| 狠狠人妻久久久久久综合| www亚洲欲色成人久久精品|