前一段时间一直在使用,Installsheild 2009制作安装包。很可惜没有成功!本以为IS2009是一个完全可视化的安装工具,结果发现网上的例子包括了很多机器码,自己感觉很麻烦就放弃了。应该说IS2009更加想一个MFC集成的编程环境。
后来改用INNO来制作安装包,感觉INNO的框架比较简单明了。开源的软件。安装包非常的小。(1.4MB).
INNO分为【setup】、【Types】、【Components】、【Tasks】、【Dirs】、【Files】、【Icons】、【INI】、【installDelete】、【Languages】、【CustomMessages】、【LangOptions】、【Registry】、【Run】、【UninstallDelete】、【UninstallRun】。
并且INNO有可视化的软件:IsTool.
利用IsTool软件可以很方便的将注册表信息添加。即可生成相应的代码。【小技巧】
[Setup]
AppName=CAMERA 300B
AppVerName=CAMERA 300B Version 1.3
DefaultDirName={pf}/sunny
DisableDirPage=yes
DisableReadyPage=yes
DisableFinishedPage=yes
DefaultGroupName=sunny
UninstallDisplayIcon=CAMERA 300B.exe
OutputDir=CAMERA 300B
[files]
;把安装所需要的文件放在INNO目录下或者指明全路径。
source:"CAMERA 300B.inf";DestDir:"C:/WINDOWS/inf"
source:"CAMERA 300B.sys";DestDir:"C:/WINDOWS/system32/drivers"
;标记为自动注册
source:"CAMERA 300B.ax";DestDir:"C:/WINDOWS/system32";Flags:regserver
[Registry]
;Root写根目录。分别为HKCR、HKCU、HKLM、HKU.
;ValueName指的是注册表里的文件夹,ValueKey指的是注册表的key.
;利用IsTool软件可以很方便的将注册表信息添加。即可生成相应的代码。【小技巧】
Root: HKLM; SubKey: SYSTEM/ControlSet001/Control/Class/{{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011; ValueType: string; ValueName: DevLoader; ValueData: *ntkern
Root: HKLM; SubKey: SYSTEM/ControlSet001/Control/Class/{{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011; ValueType: string; ValueName: NTMPDriver; ValueData: CAMERA 300B.sys
Root: HKLM; SubKey: SYSTEM/ControlSet001/Control/Class/{{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011; ValueType: string; ValueName: CLSID; ValueData: {{978779A5-59C7-4d2c-B4D8-9904BF96365A}
Root: HKLM; SubKey: SYSTEM/ControlSet001/Control/Class/{{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011; ValueType: string; ValueName: FriendlyName; ValueData: CAMERA 300B USB2.0 Camera
Root: HKLM; SubKey: SYSTEM/ControlSet001/Control/Class/{{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011; ValueType: string; ValueName: InfPath; ValueData: oem21.inf
Root: HKLM; SubKey: SYSTEM/ControlSet001/Control/Class/{{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011; ValueType: string; ValueName: InfSection; ValueData: CAMERA 300B.Dev
Root: HKLM; SubKey: SYSTEM/ControlSet001/Control/Class/{{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011; ValueType: string; ValueName: InfSectionExt; ValueData: .NT
Root: HKLM; SubKey: SYSTEM/ControlSet001/Control/Class/{{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011; ValueType: string; ValueName: ProviderName; ValueData: ShenZhen CLD Co.Ltd
Root: HKLM; SubKey: SYSTEM/ControlSet001/Control/Class/{{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011; ValueType: binary; ValueName: DriverDateData; ValueData: 00 80 7c 11 65 59 c8 01
Root: HKLM; SubKey: SYSTEM/ControlSet001/Control/Class/{{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011; ValueType: string; ValueName: DriverDate; ValueData: 1-18-2008
Root: HKLM; SubKey: SYSTEM/ControlSet001/Control/Class/{{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011; ValueType: string; ValueName: DriverVersion; ValueData: 3.0.0.0
Root: HKLM; SubKey: SYSTEM/ControlSet001/Control/Class/{{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011; ValueType: string; ValueName: MatchingDeviceId; ValueData: usb/vid_0547&pid_4d33
Root: HKLM; SubKey: SYSTEM/ControlSet001/Control/Class/{{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011; ValueType: string; ValueName: DriverDesc; ValueData: CAMERA 300B USB2.0 Camera
Root: HKLM; SubKey: SYSTEM/ControlSet001/Control/Class/{{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011; ValueType: string; ValueName: Vendor; ValueData: ShenZhen CLD Co.Ltd
Root: HKLM; SubKey: SYSTEM/ControlSet001/Control/Class/{{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011; ValueType: string; ValueName: DeviceID; ValueData: {{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011
Root: HKLM; SubKey: SYSTEM/ControlSet001/Control/Class/{{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011; ValueType: dword; ValueName: Capabilities; ValueData: $00000000
Root: HKLM; SubKey: SYSTEM/ControlSet001/Control/Class/{{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011; ValueType: dword; ValueName: DeviceType; ValueData: $00000000
Root: HKLM; SubKey: SYSTEM/ControlSet001/Control/Class/{{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011; ValueType: dword; ValueName: DeviceSubType; ValueData: $00000000
Root: HKLM; SubKey: SYSTEM/ControlSet001/Control/Class/{{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}/0011; ValueType: dword; ValueName: IsPnP; ValueData: $00000001
=====================================
注册表的语句较多。可以使用IsTool工具将注册表导入,自动生成文件。