📄 installshield应用setupregistry()完整脚本.txt
字号:
InstallShield应用中SetupRegistry()完整脚本 最近多数网友询问怎样在注册表中注册Access ODBC 及DBASE ODBC,下面版主将自己的InstallShield应用中一段SetupRegistry()完整脚本上载供大家参考,不足之处请高手指正!下面是SetupRegistry()///////////////////////////////////////////////////////////////////////////////// //// Function: SetupRegistry //// //// Purpose: This function makes the registry entries for this setup. //// /////////////////////////////////////////////////////////////////////////////////function SetupRegistry()STRING svDBprofile,svDB,szDriver,szSetup,svDBFile;STRING svAccess,svDBASE,svSourceDB;STRING svMStranslator,svMStransdriver;STRING szXbdagl;STRING szCommand, szCmdLine,svMsg;beginsvMsg="正在更新注册表......";SdShowMsg(svMsg,TRUE);szXbdagl="SOFTWARE\\"+@COMPANY_NAME+"\\"+@PRODUCT_NAME+"\\"+@PRODUCT_VERSION;//MessageBox(szXbdagl,INFORMATION);RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);//注册ODBC有关内容if (ComponentIsItemSelected(MEDIA,"ODBC Driver") ) thensvMStranslator="MS Code Page Translator";svMStransdriver=WINSYSDIR+"mscpxl32.dll";RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\ODBC Core" , "" , REGDB_STRING , "" , -1 );RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svMStranslator , "Setup" , REGDB_STRING , svMStransdriver , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svMStranslator , "Translator" , REGDB_STRING , svMStransdriver , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\ODBC Translators" , svMStranslator , REGDB_STRING , "Installed" , -1 );//不用改endif;//注册Access数据库if (ComponentIsItemSelected(MEDIA,"MS Access ODBC Driver") ) thensvDBprofile="MS Access Database for gzgl";svDB="SOFTWARE\\ODBC\\ODBC.INI\\"+svDBprofile;svDBFile = TARGETDIR+"\\dbms\\gzgl.mdb";//szDriver = WINSYSDIR+"odbcjt32.dll";svAccess="Microsoft Access Driver (*.mdb)";RegDBSetDefaultRoot ( HKEY_CURRENT_USER );RegDBSetKeyValueEx ( svDB , "DBQ" , REGDB_STRING , svDBFile , -1 );RegDBSetKeyValueEx ( svDB , "Driver" , REGDB_STRING , szDriver , -1 );RegDBSetKeyValueEx ( svDB , "FIL" , REGDB_STRING , "MS Access;" , -1 );//RegDBSetKeyValueEx ( svDB , "DriverId" , REGDB_STRING , "25" , -1 );RegDBSetKeyValueEx ( svDB , "DriverId" , REGDB_NUMBER , "25" , -1 );RegDBSetKeyValueEx ( svDB , "SafeTransactions" , REGDB_STRING , "0" , -1 );RegDBSetKeyValueEx ( svDB , "UID" , REGDB_STRING , "Admin" , -1 );RegDBSetKeyValueEx ( svDB +"\\Engines\\Jet" , "ImplicitCommitSync" , REGDB_STRING , "" , -1 );RegDBSetKeyValueEx ( svDB +"\\Engines\\Jet", "UserCommitSync" , REGDB_STRING , "Yes" , -1 );RegDBSetKeyValueEx ( svDB +"\\Engines\\Jet", "MaxBufferSize" , REGDB_NUMBER , "512" , -1 );RegDBSetKeyValueEx ( svDB +"\\Engines\\Jet" , "PageTimeout" , REGDB_NUMBER , "5" , -1);RegDBSetKeyValueEx ( svDB +"\\Engines\\Jet", "Threads" , REGDB_NUMBER , "3" , -1 );RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBC.INI\\ODBC Data Sources",svDBprofile, REGDB_STRING , svAccess, -1 );//注册Access ODBC DriverRegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svAccess , "APILevel" , REGDB_STRING , "1" , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svAccess , "ConnectFunctions" , REGDB_STRING , "YYN" , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svAccess , "Driver" , REGDB_STRING , szDriver , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svAccess , "DriverODBCVer" , REGDB_STRING , "02.50" , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svAccess , "DSN" , REGDB_STRING , svDBprofile , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svAccess , "FileExtns" , REGDB_STRING , "*.mdb" , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svAccess , "FileUsage" , REGDB_STRING , "2" , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svAccess , "Setup" , REGDB_STRING , szDriver , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svAccess , "SQLLevel" , REGDB_STRING , "0" , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svAccess , "UID" , REGDB_STRING , "Admin" , -1 );//不用改//RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svAccess , "UsageCount" , REGDB_NUMBER , 4 , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\ODBC Drivers" , svAccess , REGDB_STRING , "Installed" , -1 );//不用改endif;//注册Hhctrl.OCX控件if (ComponentIsItemSelected(MEDIA,"CHM帮助支持文件") ) thenszCommand = WINSYSDIR+APPLICATION_REG;szCmdLine = WINSYSDIR+CMD_LINE_OCX;if (LaunchApp(szCommand, szCmdLine) < 0) thenMessageBox("注册Hhctrl.ocx失败!", SEVERE);endif;endif;//注册DBASE数据库if (ComponentIsItemSelected(MEDIA,"DBASE ODBC Driver") ) thensvDBprofile="dBASE Files for gzgl";svDB="SOFTWARE\\ODBC\\ODBC.INI\\"+svDBprofile;svSourceDB = "c:\\gzgl";//原库的路径szDriver = WINSYSDIR+"odbcjt32.dll";szSetup=WINSYSDIR+"ODDBSE32.DLL";svDBASE="Microsoft dBase Driver (*.dbf)";RegDBSetDefaultRoot ( HKEY_CURRENT_USER );RegDBSetKeyValueEx ( svDB , "DefaultDir" , REGDB_STRING , svSourceDB, -1 );RegDBSetKeyValueEx ( svDB , "Driver" , REGDB_STRING , szDriver , -1 );RegDBSetKeyValueEx ( svDB , "DriverId" , REGDB_NUMBER , "277" , -1 );RegDBSetKeyValueEx ( svDB , "FIL" , REGDB_STRING , "dBase III", -1 );RegDBSetKeyValueEx ( svDB , "SafeTransactions" , REGDB_NUMBER , "0", -1 );RegDBSetKeyValueEx ( svDB , "UID" , REGDB_STRING , "" , -1 );RegDBSetKeyValueEx ( svDB +"\\Engines\\Xbase" , "CollatingSequence" , REGDB_STRING , "ASCII" , -1 );RegDBSetKeyValueEx ( svDB +"\\Engines\\Xbase" , "Deleted" , REGDB_BINARY , "00" , -1 );RegDBSetKeyValueEx ( svDB +"\\Engines\\Xbase" , "ImplicitCommitSync" , REGDB_STRING , "" , -1 );RegDBSetKeyValueEx ( svDB +"\\Engines\\Xbase" , "PageTimeout" , REGDB_NUMBER , "5" , -1);RegDBSetKeyValueEx ( svDB +"\\Engines\\Xbase" , "Statistics" , REGDB_BINARY , "00" , -1);RegDBSetKeyValueEx ( svDB +"\\Engines\\Xbase", "Threads" , REGDB_NUMBER , "3" , -1 );RegDBSetKeyValueEx ( svDB +"\\Engines\\XBase", "UserCommitSync" , REGDB_STRING , "Yes" , -1 );RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBC.INI\\ODBC Data Sources",svDBprofile, REGDB_STRING , svDBASE, -1 );//注册DBASE ODBC DriverRegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svDBASE , "APILevel" , REGDB_STRING , "1" , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svDBASE , "ConnectFunctions" , REGDB_STRING , "YYN" , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svDBASE , "Driver" , REGDB_STRING , szDriver , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svDBASE , "DriverId" , REGDB_STRING , "533" , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svDBASE , "DriverODBCVer" , REGDB_STRING , "02.50" , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svDBASE , "DSN" , REGDB_STRING , svDBprofile , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svDBASE , "FileExtns" , REGDB_STRING , "*.dbf,*.ndx,*.mdx" , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svDBASE , "FileUsage" , REGDB_STRING , "1" , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svDBASE , "Setup" , REGDB_STRING , szSetup , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svDBASE , "SQLLevel" , REGDB_STRING , "0" , -1 );//不用改//RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svAccess , "UsageCount" , REGDB_NUMBER , 4 , -1 );//不用改RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\ODBC Drivers" , svDBASE , REGDB_STRING , "Installed" , -1 );//不用改endif;SdShowMsg(svMsg,FALSE);return 0;end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -