网页功能: 加入收藏 设为首页 网站搜索  
InstallShield应用中SetupRegistry()完整脚本
发表日期:2003-07-29作者:[] 出处:  

最近多数网友询问怎样在注册表中注册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;

begin

svMsg="正在更新注册表......";

SdShowMsg(svMsg,TRUE);

szXbdagl="SOFTWARE\\"+@COMPANY_NAME+"\\"+@PRODUCT_NAME+"\\"+@PRODUCT_VERSION;

//MessageBox(szXbdagl,INFORMATION);

RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);

//注册ODBC有关内容

if (ComponentIsItemSelected(MEDIA,"ODBC Driver") ) then

svMStranslator="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") ) then

svDBprofile="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 Driver

RegDBSetDefaultRoot ( 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帮助支持文件") ) then

szCommand = WINSYSDIR+APPLICATION_REG;

szCmdLine = WINSYSDIR+CMD_LINE_OCX;

if (LaunchApp(szCommand, szCmdLine) < 0) then

MessageBox("注册Hhctrl.ocx失败!", SEVERE);

endif;

endif;

//注册DBASE数据库

if (ComponentIsItemSelected(MEDIA,"DBASE ODBC Driver") ) then

svDBprofile="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 Driver

RegDBSetDefaultRoot ( 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;

回页首

Installshield中注册SQL Anywhere 7.0 ODBC的完整脚本

function SetupRegistry()

STRING svDBprofile,svDB,szDriver,szDriver1,szSetup,svDBFile;

STRING svAccess,svAsa70;

STRING svMStranslator,svMStransdriver;

STRING szXbdagl,svStart,svAsa70app;

STRING szCommand, szCmdLine,svMsg;

begin

svMsg="正在更新注册表......";

SdShowMsg(svMsg,TRUE);

szXbdagl="SOFTWARE\\"+@COMPANY_NAME+"\\"+@PRODUCT_NAME+"\\"+@PRODUCT_VERSION;

//MessageBox(szXbdagl,INFORMATION);

RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);

//注册ASA70数据库

if (ComponentIsItemSelected(MEDIA,"asa70") ) then

svAsa70app="SOFTWARE\\Sybase\\Adaptive Server Anywhere\\7.0";

svDBprofile="kykq";

svDB="SOFTWARE\\ODBC\\ODBC.INI\\"+svDBprofile;

svDBFile = TARGETDIR+"\\database\\kykq.db";//kykq.db的全名

szDriver = TARGETDIR+"\\asa70\\dbodbc7.dll";

szDriver1=TARGETDIR+"\\asa70\\dbodtr7.dll";

svAccess="Adaptive Server Anywhere 7.0";

svAsa70="Adaptive Server Anywhere 7.0 Translator";

svStart= TARGETDIR+"\\asa70\\dbeng7.exe -c 8m";

RegDBSetDefaultRoot ( HKEY_CURRENT_USER );

RegDBSetKeyValueEx ( svDB , "AutoStop" , REGDB_STRING , "YES" , -1 );

RegDBSetKeyValueEx ( svDB , "DatabaseFile" , REGDB_STRING , svDBFile , -1 );

RegDBSetKeyValueEx ( svDB , "Debug" , REGDB_STRING , "NO" , -1 );

RegDBSetKeyValueEx ( svDB , "DisableMultiRowFetch" , REGDB_STRING , "NO" , -1 );

RegDBSetKeyValueEx ( svDB , "Driver" , REGDB_STRING , szDriver , -1 );

RegDBSetKeyValueEx ( svDB , "Integrated" , REGDB_STRING , "NO" , -1 );

RegDBSetKeyValueEx ( svDB , "PWD" , REGDB_STRING , "sql" , -1 );

RegDBSetKeyValueEx ( svDB , "UID" , REGDB_STRING , "dba" , -1 );

RegDBSetKeyValueEx ( svDB , "Start" , REGDB_STRING , svStart, -1 );

//注册ASA70 ODBC Driver

RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );

RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svAccess , "Driver" , REGDB_STRING , szDriver , -1 );//不用改

RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svAccess , "Setup" , REGDB_STRING , szDriver , -1 );//不用改

RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svAsa70 , "Driver" , REGDB_STRING , szDriver1 , -1 );//不用改

RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svAsa70 , "Setup" , REGDB_STRING , szDriver1 , -1 );//不用改

RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\"+svAsa70 , "Translator" , REGDB_STRING , szDriver1 , -1 );//不用改

RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\ODBC Drivers" , svAccess , REGDB_STRING , "Installed" , -1 );//不用改

RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBCINST.INI\\ODBC Translators" , svAsa70 , REGDB_STRING , "Installed" , -1 );//不用改

//注册ASA7的应用,主要是设成中文版本

RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );

RegDBSetKeyValueEx ( svAsa70app , "Language" , REGDB_STRING , "ZH" , -1 );

RegDBSetKeyValueEx ( svAsa70app , "Location" , REGDB_STRING , TARGETDIR+"\\asa70" ,-1 );

RegDBSetKeyValueEx ( svAsa70app , "Shared Location" , REGDB_STRING ,TARGETDIR+"\\asa70" , -1 );

endif;

SdShowMsg(svMsg,FALSE);

return 0;

end;

我来说两句】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 InstallShield应用中SetupRegistry()完整脚本
本类热点文章
  MODEM AT指令集
  MODEM AT指令集
  贝叶斯过滤算法的基本步骤
  贝叶斯过滤算法的基本步骤
  Window 窗口层次关系
  InstallShield应用中SetupRegistry()完..
  InstallShield应用中SetupRegistry()完..
  Installshield6.22安装脚本文件样例
  Installshield6.22安装脚本文件样例
  Installshield内部库函数(1)
  Installshield内部库函数(1)
  TCP/IP协议基础
最新分类信息我要发布 
最新招聘信息

关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放  
Copyright ©2003-2021 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.00465