INF文件编写说明

     最近要在web中播放视频,但下端厂商不给提供CAB包,只提供一堆dll和ocx,无奈只有自己打了,难点在哪儿?编写INF文件上。摸爬滚打,找了一天,终于解决了,现在分享一篇INF文件介绍的文章。

 

原文地址:http://blog.youkuaiyun.com/shanhe/archive/2004/12/25/229368.aspx

 

 

INF文件必须包含以下规则:

       节(Sections)开始于由中括号([])扩起来的节名

必须包含版本信息节以表明自己属于win95还是winnt4格式。

值(Value)由%strkey%替代的表达式字符串表达组成,strkey必须在strings节中定义。如果出现%,则用%%替代。

 

Setup程序使用以下各节:

[Version]        必须包含在INF文件中,表明inf文件格式

[Version]

Signature="signature-name"

Class=class-name

ClassGUID=GUID

Provider=INF-creator

LayoutFile=filename.inf[,filename.inf]...

 

Signature-name

参数可以取值 $Windows NT$, $Chicago$, or $Windows 95$(引号括起来).如果不是以上这些字符串,则不被认可为inf文件。 (特别注意!)

Class-name

此参数用于安装设备驱动。详细信息见DDK Programmer's Guide.

GUID

此参数用于安装设备驱动。详细信息见DDK Programmer's Guide.

INF-creator

标示INF的创建者. 典型的情况,此值为inf文件的创建者所在组织

filename.inf

INF文件必须包含SourceDisksFiles 和 SourceDisksNames 节。这些文件的描述文件通常命名为 LAYOUT.INF. 如果文件名不是特别指定,SourceDisksNames 和 SourceDisksFiles 必须出现在当前inf文件中

以下为典型的例子:

[Version]

Signature="$Windows NT$"

Class=Mouse

ClassGUID={4D36E96F-E325-11CE-BFC1-08002BE10318}

Provider=%Provider%

LayoutFile=layout.inf

 

[Strings]

Provider="Corporation X"

 

[Install]   此节指定包含的安装指令节,每一个条目将会成为一节

              [install-section-name]

LogConfig=log-config-section-name[,log-config-section-name]...

Copyfiles=file-list-section[,file-list-section]...

Renfiles=file-list-section[,file-list-section]...

Delfiles=file-list-section[,file-list-section]...

UpdateInis=update-ini-section[,update-ini-section]...

UpdateIniFields=update-inifields-section[,update-inifields-section]...

AddReg=add-registry-section[,add-registry-section]...

DelReg=del-registry-section[,del-registry-section]...

Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...

      

              以上各条目并非全部必须。节名必须为可见字符。每个条目包含一到多个节。第一个命名之后的所有命名必须以,引导。条目指定了必须出现在INF文件中的各节。CopyFiles则可例外(如果没有任何文件被拷贝)。

如果安装驱动程序,仅仅使用LogConfig条目。详见DDK Programmer's Guide.

              CopyFiles条目中可以包含特殊字符@ 以直接拷贝一个单一文件。文件将拷贝到DefaultDestDir, DestinationDirs节包含了DefaultDestDir的描述。如例子:

              [MyInstall]

CopyFiles= @MyFile.exe

此文件将拷贝到缺省目标目录。

 

为适应不同平台,可以在install节后加上不同的后缀。可以出现defaultInstall.nt这样的节名。install-section-name可选的后缀:

Extension                                      Platform

.Win                                           Windows 95

.NT                                           Windows NT (all platforms)

.NTx86                                        Windows NT (x86 only)

.NTMIPS                              Windows NT (MIPS only)

.NTAlpha                                    Windows NT (Alpha only)

.NTPPC                                       Windows NT (PowerPC only)

 

以下例子展示了如何出现两个copyfiles节:

[Ser_Inst]

CopyFiles=Ser_CopyFiles, mouclass_CopyFiles

 

[Ser_CopyFiles]

sermouse.sys

 

[mouclass_CopyFiles]

mouclass.sys

 

 

 

 

 

 

[Add Registry]       描述如何增加注册表项目。add-registry-section 节名必须处现在install节中的 AddReg 条目中。

              [add-registry-section]

reg-root-string, [subkey], [value-name], [flags], [value]

[reg-root-string, [subkey], [value-name], [flags], [value]]

             

              reg-root-string 注册表的根名:

              HKCR                HKEY_CLASSES_ROOT.

HKCU                HKEY_CURRENT_USER.

HKLM                HKEY_LOCAL_MACHINE.

HKU                HKEY_USERS.

HKR                相关于 SetupInstallFromInfSection.节中指定的值

 

subkey

可选,例如 key1\key2\key3....

 

value-name

可选,标示subkey的值名称。对于字符串类型可以空,标示缺省字符串值

 

flag        值类型的标示

Value                             Meaning

FLG_ADDREG_BINVALUETYPE  The value is "raw" data.

FLG_ADDREG_NOCLOBBER         如果注册表中出现不要覆盖此值.

FLG_ADDREG_DELVAL                       从注册表中删除此键

FLG_ADDREG_APPEND                       追加一个值到已存值中,仅仅支持REG_MULTI_SZ 值

FLG_ADDREG_TYPE_MASK               Mask.

FLG_ADDREG_TYPE_SZ                REG_SZ类型

FLG_ADDREG_TYPE_MULTI_SZ  REG_MULTI_SZ.

FLG_ADDREG_TYPE_EXPAND_SZ REG_EXPAND_SZ.

FLG_ADDREG_TYPE_BINARY    REG_BINARY.

FLG_ADDREG_TYPE_DWORD    REG_DWORD.

FLG_ADDREG_TYPE_NONE               REG_NONE.

                     Windows 95 安装程序将视扩展数据类型为REG_SZ or REG_BINARY.

                    

value

可选. 16进值或者字符串

      

 

 

 

 

 

 

[CopyFiles]       此类节可以有多个,定义于install节中。

                     [file-list-section]

destination-file-name[,source-file-name][,temporary-file-name][,flag]

[destination-file-name[,source-file-name][,temporary-file-name]][,flag]

.

                     destination-file-name

目标文件名,如果没有给出源文件名,那么此名也是源文件名.

source-file-name

源文件名,如果没有给出目标文件名,那么此名也是目标文件名.

temporary-file-name

被忽略,setup函数自动处理临时文件.

flag

可选,用于控制文件如何被拷贝。你必须配置实际值

COPYFLG_WARN_IF_SKIP (0x00000001)

如果用户试图在发生一个错误后跳过将显示警告信息

COPYFLG_NOSKIP (0x00000002)

不允许用户跳过拷贝此文件

COPYFLG_NOVERSIONCHECK (0x00000004)

如果文件存在于目标目录,忽略

COPYFLG_FORCE_FILE_IN_USE (0x00000008)

替换被使用得文件?,当拷贝时文件被使用

COPYFLG_NO_OVERWRITE (0x00000010)

不覆盖目标文件中已存文件

COPYFLG_NO_VERSION_DIALOG (0x00000020)

如果目标文件已存且新则不覆盖也不出现对话框

COPYFLG_REPLACEONLY (0x00000040)

替换目标文件

 

 

 

[delete Registry]       描述如何增加注册表项目。del-registry-section 节名必须处现在install节中的 DelReg 条目中。

              [del-registry-section]

reg-root-string, [subkey], [value-name], [flags], [value]

[reg-root-string, [subkey], [value-name], [flags], [value]]

             

              reg-root-string 注册表的根名:

              HKCR                HKEY_CLASSES_ROOT.

HKCU                HKEY_CURRENT_USER.

HKLM                HKEY_LOCAL_MACHINE.

HKU                HKEY_USERS.

HKR                相关于 SetupInstallFromInfSection.节中指定的值

 

subkey

 

value-name

可选,标示subkey的值名称。对于字符串类型可以空,标示缺省字符串值

 

 

[Delete Files]       此节指定需要被删除的文件,节名必须出现在install中的delfiles条目中

              [file-list-section]

file-name[,,,flag]

             

              flag

              可选。

DELFLG_IN_USE (0x00000001)

当因为文件正被使用,SetupCommitFileQueue 取消, 将排队在系统重新启动时候被删除。

如果不使用此值,则安装时候被使用的文件不会被delete files指定节删除

DELFLG_IN_USE1 (0x00010000)

高字节版本的DELFLG_IN_USE. Setting DELFLG_IN_USE1 差别在于同样可适用于Copyfiles节和delete Files节即使COPYFLG_WARN_IF_SKIP 标志被使用。

 

 

[INI File to Registry] 此节指示那些ini文件中的条目将对应到注册表。

                     [ini-to-registry-section]

ini-file, ini-section, [ini-key],reg-root-string,subkey[,flags]

 

ini-file

ini文件名.

ini-section

ini文件的节

ini-key

条目

flags

指示当注册表存在对应的注册表项目是否是否覆盖旧值。

Bit        value 

0        0               缺省,不删除ini文件项目,当ini转移到注册表后

0       1               删除ini文件中的项目,当ini转移到注册表后 

1        0               缺省,当注册表存在此子项,则不覆盖

1        1               覆盖

 

 

[Rename Files]              此类型节列出那些将样改名的文件。此节名必须出现在install节中

              [rename-files-section-name]

new-file-name,old-file-name

 

new-file-name

新文件名

old-file-name

原来的文件名。此参数必须定义于 SourceDisksFiles 节中。

 

 

[Update INI Fields]            此节替换、增加、删除指定ini文件的条目。此节名必须存在于install节中。

              [update-inifields-section-name]

ini-file,ini-section,profile-name,[old-field],[new-field],[flags]

            

              参数说明见上

 

 

[Update INI File]  此节删除、替换或者新增INI 的项目. 节名必须处现在install节中的 UpdateInis 条目中

              update-ini-section-name]

ini-file,ini-section,[old-ini-entry],[new-ini-entry],[flags]

             

              ini-file

包含将要改变的条目的ini文件。

ini-section

节名

old-ini-entry

可选的,通常为key=value形式

new-ini-entry

可选。通常来自key=value. key 或者value可以为可替换的字符串。

flags

可选命令标志.

Value               Meaning

0                   缺省。如果old-ini-entry key 出现在INI file 条目中, 将被new-ini-entry替换。 值会被忽略,只要key匹配即可。为无条件增加新条目到ini文件,可设置 old-ini-entry为NULL。 为无条件从ini文件中删除old-ini-entry from,设置 new-ini-entry 为NULL。

1                   如果 old-ini-entry 的key 和value 已经存在于 INI 文件,将被 new-ini-entry替换。  old-ini-entry 参数的key和value都必须匹配

2                   如果old-ini-entry 参数没有出现在INI 文件中, 将不进行任何替换

若 old-ini-entry 的key存在于INI 文件且new-ini-entry的key存在于 INI 文件, INI 文件中匹配的 new-ini-entry 的key参数被删除,  old-ini-entry 的key匹配参数被替换

 

3                   类似2,但是,例外情况为:old-ini-entry 参数匹配基于key和value,并不限于key

 

可以使用通配符 (*)指代key和value的一部分和全部

 

ini文件名可以为字符串或者字符键。即%strkey% ,此 strkey 定义于[Strings]节,且必须是一个合法文件名。

 

Ini文件明应当包含目录,可以是直接目录,也可以是特定目录标示符。

可以拥有%dirid% 指定目录,dirid指定于 SetupSetDirectoryId节中. 当时用目录标示符,你应当使用反斜线号于一个目录路径中。举例:,你可以使用 %11%\card.ini 表示 CARD.INI 存在于System32 目录中。

 

以下为例子:

 

%11%\sample.ini, Section1,, Value1=2             ; 新增一个条目

%11%\sample.ini, Section2, Value3=*,             ; 删除老条目

%11%\sample.ini, Section4, Value5=1, Value5=4     ;替换老条目

 

 

 

 

[Services]条目       此节条目列出增加和删除的服务列表。

 

              [install-section-name.Services]

AddService=ServiceName,flag,service-install-section[,event-log-install-section]

DelService=ServiceName

             

              ServiceName

将要安装/删除的服务名

flag

指定将如何增加服务。此参数仅用于AddService 键,取值为:

SPSVCINST_TAGTOFRONT (0x1)

将服务标签题见到服务所在组的前列

SPSVCINST_ASSOCSERVICE (0x2)

此增加的服务关联的服务.

service-install-section

服务安装节

event-log-install-section

时间记录安装节。

 

以下为例子:

              [Ser_Inst.Services]

AddService = sermouse, 0x00000002, sermouse_Service_Inst, sermouse_EventLog_Inst ; Port Driver

AddService = mouclass,, mouclass_Service_Inst, mouclass_EventLog_Inst

                       ; Class Driver

 

[Service Install]              此节列出将要安装的每一个服务信息

       [install-section-name_ServiceInstallSection]

DisplayName=[name]

ServiceType=type-code

StartType=start-code

ErrorControl=error-control-level

ServiceBinary=path-to-service

LoadOrderGroup=[load-order-group-name]

Dependencies=+depend-on-group-name[[,depend-on-service-name]...]

StartName=[driver-object-name]

             

              name

可选,友好的服务名称

type-code

驱动类型。为任何被theCreateService 函数认可的参数。

start-code

何时启动驱动程序。可为:

SERVICE_BOOT_START (0x0)

由操作系统loader启动。使用此值仅用于操作系统基本服务。

SERVICE_SYSTEM_START (0x1)

操作系统初始化式启动。

SERVICE_AUTO_START (0x2)

SCM在系统启动期间启动

SERVICE_DEMAND_START (0x3)

SCM根据需要启动

SERVICE_DISABLED (0x4)

此服务不可被启动

error-control-level

指定错误控制级别。

CRITICAL (0x3)

如果驱动装载失败,启动失败。如果启动不是在 “最后一次正确(LastKnownGood.)”控制集,切换到LastKnownGood。如果启动试图用于 LastKnownGood, 运行故障检查例程

SEVERE (0x2)

如果启动不是用于 LastKnownGood , 切换到LastKnownGood。如果启动试图LastKnownGood, 发生错误时继续启动。

NORMAL (0x1)

若初始化时失败,启动将继续,但显示警告信息

IGNORE (0x0)

若初始化时失败,启动将继续,无警告信息

path

二进制文件路径

load-order-group-name

可选. 指示服务处在的服务组中的次序: pointer, port, primary disk, and so forth.

+depend-on-group-name

可选,服务依赖的服务组,服务仅当该组的最后一个服务都启动后才启动

depend-on-service-name

可选。依赖的服务。

driver-object-name

可选。如果类型属于 Kernel driver或者file system driver,,此名用于I/O管理器装载的名称

例子:

[mouclass_Service_Inst]

DisplayName    = %mouclass.SvcDesc%

ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER

StartType      = 1                  ; SERVICE_SYSTEM_START

ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL

ServiceBinary  = %12%\mouclass.sys

LoadOrderGroup = Pointer Class

 

 

[DestinationDirs]       此节用于指定(copy file ,rename file等节中的目标目录)

       [DestinationDirs]

file-list-section=drid[,subdir]

.      .

[DefaultDestDir=drid[,subdir]]

 

file-list-section

 Copy Files, Rename Files, 或者Delete Files 节名. drid

目录标示(DRID)。 安装程序在安装期间替换一个 DIRID采用实际的目录

DIRID  %dirid% 为预先定义的目录

DIRID 可为以下值:

-01,0xffff               目录

01                        SourceDrive:\path.

10                        Windows directory.

11                        System directory. (%windir%\system on Windows 95, %windir%\system32 on Windows NT)

12                        Drivers directory.(%windir%\system32\drivers on Windows NT)

17                        INF 文件目录

18                        help目录

20                         Fonts directory.

21                        察看器目录

24                         应用程序目录

25                        共享目录Shared directory.

30                         启动驱动器的根目录Root directory of the boot drive.

50                         %windir%\system

51                        假脱机目录Spool directory.

52                         Spool drivers directory.

53                        用户 Profile 目录

54                         ntldr or OSLOADER.EXE 所在目录

 

subdir

子目录名

可选项 DefaultDestDir 提供缺省的目标目录。如果DefaultDestDir 未用于 DestinationDirs 节,缺省的目录设为 drid_system.

 

 

[SourceDisksFiles]          此节指定源安装盘上的文件

              为了允许多操作系统分发源文件,你可构造针对特定平台的SourceDisksFiles 节举例来讲, 在 MIPS 平台上,所有安装功能在用到 SourceDisksFiles 节将首先查找 SourceDisksFiles.Mips 节。 如果安装功能未找到 SourceDisksFiles.Mips 节, 或者某个特定行未能在那里找到,安装功能将使用 SourceDisksFiles 节。此行为直接或间接影响安装功能处理 SourceDisksFiles节作为其进程的一部分。

       大小写不敏感的前缀可为:

              alpha

mips

ppc

x86

 

              [SourceDisksFiles]

filename=disk-number[,subdir][,size]

       filename

                在源此盘上的文件名

disk-number

                第几号源盘包含此文件。大于等于1,且定义于 SourceDisksNames 节

subdir

                可选参数。在源盘上的子目录,缺省为源盘的跟目录

size

         可选参数,文件的压缩尺寸

        

         [SourceDisksFiles]

         SRS01.x86 = 1                       ;源文件SRS01.x86存在于安装盘一号盘的根目录

 

 

[SourceDisksNames]         指示源文件的磁盘名称

         为了允许多操作系统分发源文件,你可构造针对特定平台的SourceDisksNames节举例来讲, 在 MIPS 平台上,所有安装功能在用到 SourceDisksNames节将首先查找 SourceDisksNames.Mips 节。 如果安装功能未找到 SourceDisksNames.Mips 节, 或者某个特定行未能在那里找到,安装功能将使用 SourceDisksNames节。此行为直接或间接影响安装功能处理 SourceDisksNames节作为其进程的一部分。

大小写不敏感的前缀可为:

              alpha

mips

ppc

x86

 

             [SourceDisksNames[.platform]]

             disk-ordinal="disk-description"[,[disk-label],[unused,path]

.              

                platform

                  指示源文件应用的平台指示符。

                disk-ordinal

                                磁盘序号

                disk-description

                                “”包含的字符串,用于标示磁盘。

                disk-label

                                磁盘卷标

                unused

                                保留未用

                path                

                                可选参数,源文件的绝对路径,如果未用,则表示示根目录

                如下例子中, write.exe 所有平台都一样,且存在于源盘1的\common 目录。圆盘1将所有平台都一致的文件存在于\common目录中。 CMD.EXE 文件特定于平台,磁盘2指示安装功能针对每一个平台的特定目录。HALNECMP.DLL 文件特定于MIPS 平台。

                [SourceDisksNames]

                1 = "Windows NT CD-ROM", Instd1,, \common

               

                [SourceDisksNames.Alpha]

                2 = "Windows NT CD-ROM", Instd1,, \alpha

               

                [SourceDisksNames.Mips]

                2 = "Windows NT CD-ROM", Instd1,, \mips

               

                [SourceDisksNames.x86]

                2 = "Windows NT CD-ROM", Instd1,, \x86

               

                [SourceDisksNames.ppc]

                2 = "Windows NT CD-ROM", Instd1,, \ppc

 

                [SourceDisksFiles]

                write.exe = 1

                cmd.exe = 2

 

                [SourceDisksFiles.Mips]

                halnecmp.dll = 2

               

[EventLog Install]                该节往注册表中加入事件消息文件,也可利用此节移除事件消息文件。

                [install-section-name_EventLogInstallSection]

                AddReg=add-registry-section

                DelReg=del-registry-section

              

                add-registry-section

                del-registry-section

                                     事件消息节名

                AddReg                             指示哪节将作为增加事件的注册表项

                DelReg            指示删除事件项

               

                以下为典型的 EventLog 安装节:

                [sermouse_EventLog_Inst]

                                AddReg=sermouse_EventLog_AddReg             

                [sermouse_EventLog_AddReg]

         HKR,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll\;%%SystemRoot%%\System32\drivers\sermouse.sys"

                HKR,,TypesSupported,0x00010001,7

 

 

 

 

[Strings]    该节定义了1个或多个字符串关键字. 一个字符串key 展开一个可打印字符串

可以有针对特定语言的String节

 

                [Strings[.langid]]

                strings-key=value

               

                langid

                                可选的指示string节所属语言的语言标示符. 举例, U.S. English 是 0409 以及Standard French 是 040c.

                strings-key

                                由字符和数字组成的唯一名符

                value

                                展开后的字符串内容

               

                例子:

 

                [Strings]

                String0="Corporation X"

                String1="Corporation X"

                String2="CS2590 SCSI Adapter"

 

                特定语言的例子:

                [Strings.0409]

                ; American English strings

                S1 = "Hello"

               

                [Strings.0009]

                ; British English strings

                ; Note that 0009 is used instead of 0809 to make this the default

                ; for English languages other than U.S. English.

                S1 = "Greetings"

               

                [Strings]

                ; French strings

                ; Not specifying a langid makes this the default

                S1 = "Bonjour"

               

               

                注释

                尽管此节通常处于inf文件的最后一节,但是定义的字符串Key可用于inf文件任何位置。安装程序将展开字符串

                如果用到%,请使用%%。

                Windows 95: 不可包含strings节,不支持多语言.

16QAM调制解调仿真(matlab,详细介绍仿真方案的设计、结果及结论、完整代码及注释) 16QAM调制解调仿真目录一、仿真要求二、仿真方案详细设计三、仿真结果及结论四、仿真代码 一、仿真要求 1.用基带等效的方式仿真16-QAM在AWGN信道下的误码率和误比特率性能,并与理论值相比较; 2.高阶与低阶的性能比较。 二、仿真方案详细设计 三、仿真结果及结论 仿真结果 16QAM的星座点图 64QAM的星座点图 16QAM加噪声后的星座点图 64QAM加噪声后的星座点图 16-QAM载波调制信号在AWGN信道下的误比特率性能比较 结论:由图可知,16QAM的误符号率 阅读详情

相关推荐

OSCS开源安全周报第13期:Exchange 高危漏洞公开

OSCS 社区共收录安全漏洞31个,公开漏洞值得关注的是 Apache Commons JXPath 存在代码执行漏洞(CVE-2022-41852),Microsoft Exchange 远程代码执行漏洞(ProxyNotShell(CVE-2022-41040),Apache Tomcat 条件竞争漏洞(CVE-2021-43980),FasterXML jackson-databind 小于2.14.0-rc1拒绝服务漏洞(CVE-2022-42003)。

OSCS开源安全社区 4198

inf文件初探

摘要:本文讨论了仅支持右键安装Windows WDM驱动的inf文件的格式,介绍了相关规则、执行顺序和必需Section。关键词:WDM,INF一、简介INF是Device INFormation File的英文缩写,是Microsoft公司为硬件设备制造商发布其驱动程序推出的一种文件格式,INF文件中包含硬件设备的信息或脚本以控制硬件操作。通过inf文件可以指示安装程序完成:1、文件的复制、删除和重命名操作;2、添加或删除注册表项;3、更新系统设置文件(如:Autoexec.bat、Config.sys、

XinhuaSoft 1454

Labview程序框架介绍

当掌握LabVIEW基础知识并达到,理解单个小型模块程序会相对轻松。而若想进一步探索大型程序,就必然需要了解程序框架相关内容。LabVIEW常用的程序架构包括等。在多年工作中,我接触过的众多高级工程师所开发的大型程序,基本都基于这些架构搭建。接下来,将为大家详细介绍这些框架。

Misterlhw的博客 4619

Windows驱动之INF文件

这只是简单的一个inf文件编写过程,还有一些更为复杂的本文没有写上,需要的可自行查找资料。

TakakiTohno的博客 4909

从ESP/ABS选型看轮速传感器:为什么你的车用了AK+PWM+7/14mA三种协议?

本文深入解析了汽车轮速传感器的三种主流协议(7/14mA电流型、PWM型和AK协议型)及其混合应用场景。通过对比不同协议的技术特点、成本效益和工程挑战,揭示了现代车辆采用多种传感器协议背后的设计逻辑,包括成本控制、性能平衡和冗余设计等关键因素。

weixin_29266679的博客 532

E28 LoRa模块透传 定点传输 RSSI测试与MicroPython应用

测试说明 测试模块数:3 测试模式:配置模式和传输模式 如果没有检测到串口,首先检查是否安装串口驱动CH341SER,下载链接,提取码:vaw2 工作模式 模式(0-3) M2 M1 M0 模式介绍 备注 0 传输模式 1 0 0 串口打开,无线打开,连续透明传输 空速支持手动配置和自适应波特率自动调节;连续模式双方波特率必须一致 1 RSSI 1 0 1 串口打开,无线打开,RSSI功能打开 模块每100ms输出RSSI强度值 2 测距模式 1 1 0 保留 - 3 配置模式

GniLAY1022的博客 4242

编写INF文件进行文件安装

◆ 丁健 张万 江南安装信息(Setup Information)文件是Windows系统支持的一种安装信息存放文件,一般以INF作为扩展名,因此也叫INF文件。安装信息INF文件与Windows内建的安装服务引擎(API函数库)紧密协同工作,基于其严格的编写语法制作而成的INF文件在拷贝、删除文件,增、删注册表键,更改系统设置等方面都有优秀的表现,完全可以用来实现应用程序文件安装的目标,而且价格

ncdawen的专栏 3272

CocosCreator | 自定义启动页之H5

01 效果对比 默认启动页: 自定义启动页: 02 启动页存在的意义 我们在 creator 中的开发的游戏都是基于 cocos engine,所以在展示我们的游戏之前,是必须要先加载 cocos engine,然后才是我们自己的业务代码 流程图如下: 而构建完成后未精简的 cocos engine 代码为 1.9M 如果再加上物理相关代码的话,一共是2M 别忘了,我们自己的首场景也要加载过程哦 所以,从游戏启动,到真...

Valiancer 5896

INF文件详解

安装信息(Setup Information)文件是Windows系统支持的一种安装信息存放文件,一般以INF作为扩展名,因此也叫INF文件。安装信息INF文件与Windows内建的安装服务引擎(API函数库)紧密协同工作,基于其严格的编写语法制作而成的INF文件在拷贝、删除文件,增、删注册表键,更改系统设置等方面都有优秀的表现,完全可以用来实现应用程序文件安装的目标,而且价格免费,透明度高,安装程序小,可完全定制。INF文件是文本文件,可在任何文本编辑器内查看、创建、修改,普通用户使用Wi...

子曰小玖的博客 1万+

YOLOv8改进策略【损失函数篇】| 替换Powerful-IoU(PIoU),增强对中等质量锚框的关注力,引导锚框更直接、高效地回归

现有基于IoU的损失函数存在不合理的惩罚因子,导致锚框在回归过程中出现面积扩大的问题,使得回归效率降低、收敛速度变慢。同时,这些损失函数在反映锚框与目标框之间的差异、考虑目标框大小以及某些情况下的性能表现等方面存在局限性。在目标检测任务中,边界框回归的损失函数对检测性能至关重要。Powerful-IoU(PIoU)及其升级版PIoU v2正是为解决现有损失函数存在的问题而设计的。本文利用PIoU改进YOLOv8的损失函数,提高模型精度。

Limiiiing的博客 672

ESP32S3接入讯飞在线语音识别教程及配套源代码

本文介绍了如何使用ESP32-S3开发板实现讯飞在线语音识别功能。首先,需要准备硬件设备,包括ESP32-S3开发板、麦克风模块、MicroSD卡模块和扬声器模块。接着,安装Arduino IDE并配置ESP32-S3开发环境,注册讯飞开放平台账号并获取API凭证。然后,通过I2S接口连接麦克风模块,并编写代码实现语音录制、Base64编码、API请求和识别结果处理。代码包括初始化WiFi、麦克风、系统时间,以及录制语音、发送请求、解析响应等功能。最后,通过按键触发录音,并将识别结果输出到串口。

2401_88800025的博客 746

如何编写 INF 文件

如何编写 INF 文件INF文件全称Information File文件,是Winodws操作系统下用来描绘设备或文件等数据信息的文件。INF文件是由规范的ASCII码组成,您能够用任何一款文字编辑器查看修正其中的内容。普通我们总是以为INF文件是系统设备的驱动程序,其实这是错误的认识,Windows之所以在装置某些硬件的驱动时提示需求INF文件是由于INF文件为该设备提供了一个全面描绘硬件参数和相应驱动文件(DLL文件)的信息。就好比我们看着阐明书装置电脑硬件一样,我们就是Windows系统,阐明书就是I

hutao1101175783的专栏 2580

运放实现阶梯波发生器-总结报告

实验目的: 学习、理解、掌握方波电路、限幅电路积分累加电路、反馈电路 课程条件: 电脑仿真软件Multisim 原理框图和实验思路: 方波电路通过微分电路可以形成正负脉冲,在通过限幅电路后变为单脉冲,最后在积分电路中形成阶梯波。微分电路存在的意义就是为了防止方波频率过大,从而导致在经过限幅电路的方波,在一个周期内将电容的电充满,这样就不会产生阶梯波。如果方波的频率比较小,可以近似认为是正负脉冲,这样就可以跳过微分电路。 ...............

0 1万+

windows的inf

windows的inf是什么? 它有什么么用? INF是安装windows驱动的时候需要用到的文件。 它就像一个安装脚本,告诉windows怎么安装驱动, 源文件在哪里、安装到哪一个文件夹中、怎样在注册表中加入自身相关信息等等。 INF文件其实是一种纯文本文件,可以编辑查看。 INF文件有一整套的编写规则,每一个INF文件都是严格按照这些规则来编写的。 规则 规

mofabang的专栏 777

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Spring Boot中通过META-INF/spring.factories注册ApplicationListener

在Spring Boot开发中,ApplicationListener 是一个非常重要的接口,它允许我们监听Spring容器的事件。从输出中可以看到,我们的监听器成功捕获了Spring Boot启动过程中的多个事件,包括 ApplicationStartedEvent、ApplicationEnvironmentPreparedEvent、ApplicationPreparedEvent、ContextRefreshedEvent 和 ApplicationReadyEvent。五、运行程序并查看输出。

m0_74337424的博客 687

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ActiveX控件的WEB发布

ActiveX控件的WEB发布有两部分组成1. ActiveX控件的制作部分要求    WEB发布对ActiveX控件的编码生成部分的要求就是必须实现ActiveX控件的安全接口“IObjectSafety 接口”:    2. ActiveX控件的发布要求         1)制作ActiveX空间的CAB包 :创建 CAB 文件请参见为 MFC 和 ATL 控件创建签名 C

zjs__2000的专栏 1940

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

生成jar文件的方法

Peter Qian 13-08-04JAR --Java Archive File,顾名思意,它是 Java 的一种文档格式。几乎可以说JAR 文件就是 ZIP 文件,它们的区别是在 JAR 文件的内容中,包含了一个META-INF/MANIFEST.MF 文件,这个文件可以是在生成 JAR 文件的时候自动创建的;也可以是自己书写的。例如有如下程序:public class Hell

3723

WM终端安装包制作

一、INF文件介绍     1.inf文件是由一系列段组成,段的定义放在广括号中,段名不能超过255字节,名字不区分大小写。每一个段描述了文件的目标地址,快捷方式,注册设置等信息,这些都会被写入.cab文件中。各个段可以随意排放次序。      2.各段描述        A.[Version]是必需的,可以指定应用程序的创建者和版本            Signature="$

wyymaomi的专栏 810

UEFI开发——编写一个简单的PPI

PEI阶段是由一个个的PEIM实现的,而PPI是PEIM之间互相调用的接口。所提供的服务由EFI_PEI_PPI_DESCRIPTOR这个数据结构通过PEIM向PEI foundation进行描述,这个数据结构的原型为。NotifyPpi():PPI里的function不会再派发时就执行,会有一个判定条件,通知系统这个PPI会在某个PPI被安装时才执行。(注意,要想在运行的时候输出以上DEBUG信息,需要在编译包的时候加上DEBUG_ON_SERIAL_PORT)

蟹蟹泥的博客 1298

2.UEFI-edk2 编写第一个应用

上一章把UEFI的编译开发和模拟器环境都搭建好了,这里开始写第一个应用。写之前先简单介绍下UEFI-edk2的源码目录结构,源码目录下主要有以下这些子目录: BaseTools: 包含代码编译所需的二进制编译工具集和编译环境配置文件。 MdePkg: 包含各个平台通用的基本的底层库函数、协议和工业标准。 MdeModulePkg:包含一系列各平台通用的模块,其中包括MdePkg中公共库的应用模块示...

westlor的专栏 3286

新手学VS2013+WDK8.1编写window驱动(1)

图中红框处为最近学习windows系统驱动的成果.虽然这在高手来看挺简单,但在与新手来讲确是一个很高的起步点.不仅仅要克服注册表,inf文件编写,驱动的编写.还涉及windows的原理性东西. 我的项目环境是vs2013和wdk8.1.  vs2013不需要任何的设置,编写好文件后,点击F7编译生成,就会自动生成一个inf文件和sys文件. vs2013和WDK8.1可在微软官网下载,下载WD

w10800337的专栏 2436

INF文件的编写

这部分主要讲解inf文件的编写,其实inf文件不仅仅可以用来做为安装驱动使用,还有很多其他用法,这里就不涉及了,先讲下inf的语法,这些语法都是google上有的。 inf文件其实是一种纯文本文件,可以用任意一款文本编辑软件来打开进行编辑。inf是不区分大小写的。 inf中包含各节的含义: 1、Version节 每一个INF文件都包含一个这样的节,该节中的条目主要是描述此INF文件支持的设备类型和适用的操作系统。在该节中如果出现"signature="$CHICAGO$""这样的条目则表示该INF文...

hutao1101175783的专栏 1646

inf文件的编写

标 题: 【原创】【成果3.2】inf文件的编写作 者: sislcb时 间: 2008-01-02,15:19链 接: http://bbs.pediy.com/showthread.php?t=57571这部分主要讲解inf文件的编写,其实inf文件不仅仅可以用来做为安装驱动使用,还有很多其他用法,这里就不涉及了,先讲下inf的语法,这些语法都是

trents的专栏 891

INF文件的编写规则

INF文件即Device Information File(设备信息文件),主要用来指示安装Windows驱动程序,一般一个INF文件需要配合一个INF文件才可进行安装。 INF文件是Windows系统下用来描述设备或文件等数据信息的文件,是一个文本文件。INF的组成有节(Sections)、键(Key)和值(value)3部分,INF文件的节按照层次结构排列,以方括号的形式开始,后面紧跟该节的各个项和值。INF文件的节主要分为以下: 1.【Version】 INF文件的开始,版本信息描述 【Versio

hutao1101175783的专栏 1176

inf文件解析

1 INF简介 一般我们总是认为INF文件是系统设备的驱动程序,其实这是错误的认识,Windows之所以在安装某些硬件的驱动时提示需要INF文件是因为INF文件为该设备提供了一个全面描述硬件参数和相应驱动文件(DLL文件)的信息。就好比我们看着说明书安装电脑硬件一样,我们就是Windows系统,说明书就是INF文件。INF文件功能非常强大,几乎能完成日常操作的所有功能。源文件在哪里、安装到哪一个

tianshiyalin的专栏 2563
上一篇: java对Excel操作
下一篇: java 图片压缩
fanday
博客等级 码龄20年 8粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值