|
您的位置:学院
>> 编程开发 >>
PowerBuilder >> 使用install shield制作PB6程序的安装盘(八)
|
使用install shield制作PB6程序的安装盘(八)
|
常见需要修改注册表的情况:
我只作过32位的,以下都是基于32位的
1、安装32位ODBC for Sql Any Where
不用修改
真是猪,没有你说什么!不怪我拉,因为就是不用拉!
2、安装SQL anywhere的DB
都加上全路径,避免...
svDBprofile = "LAW"; //数据库别名,就是在PB连接串中的那个
svDB = TARGETDIR+"\\db\\law.db";//law.db的全名
svWod50t = TARGETDIR+"\\sqlany50\\wod50t.dll";//wod50t.dll的全名
svStart = TARGETDIR+"\\sqlany50\\dbeng50 -Q";//dbeng50.exe的...,注意不要加上.exe,"-Q"表示不要那个讨厌的sqlanywhere窗口跑出来。
RegDBSetDefaultRoot ( HKEY_CURRENT_USER );
RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBC.INI\\"+svDBprofile , "AutoStop" , REGDB_STRING , "YES" , -1 );//不用改
RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBC.INI\\"+svDBprofile , "DatabaseFile" , REGDB_STRING , svDB , -1 );
RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBC.INI\\"+svDBprofile , "DatabaseName" , REGDB_STRING , svDBprofile , -1 );
RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBC.INI\\"+svDBprofile , "Driver" , REGDB_STRING , svWod50t , -1 );
RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBC.INI\\"+svDBprofile , "PWD" , REGDB_STRING ,"sql" , -1 );//不用改
RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBC.INI\\"+svDBprofile , "UID" , REGDB_STRING ,"dba" , -1 );//不用改
RegDBSetKeyValueEx ( "SOFTWARE\\ODBC\\ODBC.INI\\"+svDBprofile , "Start" , REGDB_STRING , svStart, -1 );
3、安装PB的window plugin (also for IE4.0)
RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
svPath="c:\\Program Files\\Internet Explorer\\plugins\\nppba60.dll";
LongPathToShortPath ( svPath );
RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
RegDBSetKeyValueEx ( "SOFTWARE\\Microsoft\\Internet Explorer\\Plugins\\Extension\\.pbd" , "" , REGDB_STRING , "" , -1 );
RegDBSetKeyValueEx ( "SOFTWARE\\Microsoft\\Internet Explorer\\Plugins\\Extension\\.pbd" , "Content Type" , REGDB_STRING , "application/vnd.powerbuilder6" , -1 );
RegDBSetKeyValueEx ( "SOFTWARE\\Microsoft\\Internet Explorer\\Plugins\\Extension\\.pbd" , "Location" , REGDB_STRING , svPath , -1 );
RegDBSetKeyValueEx ( "SOFTWARE\\Microsoft\\Internet Explorer\\Plugins\\Extension\\.pbd" , "Version" , REGDB_STRING , "6.5.00.444" , -1 );
RegDBSetKeyValueEx ( "SOFTWARE\\Microsoft\\Internet Explorer\\Plugins\\MIME\\application/vnd.powerbuilder" , "Extension" , REGDB_STRING , ".pbd" , -1 );
RegDBSetKeyValueEx ( "SOFTWARE\\Microsoft\\Internet Explorer\\Plugins\\MIME\\application/vnd.powerbuilder6" , "Extension" , REGDB_STRING , ".pbd" , -1 );
RegDBSetDefaultRoot ( HKEY_CLASSES_ROOT );
RegDBSetKeyValueEx ( ".pbd" , "" , REGDB_STRING , "PowerBuilder.Application" , -1 );
RegDBSetKeyValueEx ( ".pbd" , "Content Type" , REGDB_STRING , "application/vnd.powerbuilder" , -1 );
RegDBSetKeyValueEx ( "MIME\\Database" , "Content Type" , REGDB_STRING , "application/vnd.powerbuilder" , -1 );
4、//注册Access数据库
////////////////////////////////////////////////////////////
RegDBSetDefaultRoot ( HKEY_CURRENT_USER );
svDB="SOFTWARE\\ODBC\\ODBC.INI\\"+"LAW";
svDBFile = TARGETDIR+"\\db\\law.mdb";//law.db的全名
szDriver = WINSYSDIR+"\\odbcjt32.dll"
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 , "SafeTransactions" , REGDB_STRING , "0" , -1 );
RegDBSetKeyValueEx ( svDB , "UID" , REGDB_STRING , "" , -1 );
RegDBSetKeyValueEx ( svDB +"\\Engines\\jet" , "ImplicitCommitSync" , REGDB_STRING , "Yes" , -1 );
RegDBSetKeyValueEx ( svDB +"\\Engines\\jet", "UserCommitSync" , REGDB_STRING , "Yes" , -1 );
RegDBSetKeyValueEx ( svDB +"\\Engines\\jet", "MaxBufferSize" , REGDB_STRING , "512" , -1 );
RegDBSetKeyValueEx ( svDB +"\\Engines\\jet" , "PageTimeout" , REGDB_STRING , "5" , -1);
RegDBSetKeyValueEx ( svDB +"\\Engines\\jet", "Threads" , REGDB_NUMBER , "3" , -1 );
这个我没有试过,也不知道行不行。应该差不多吧!
5、在注册表里添路径,例如
RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
RegDBSetKeyValueEx ( "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\" , "Myexe.exe" , REGDB_STRING , TARGETDIR + "\\Myexe.exe" ,-1 );
我不喜欢这样做,喜欢把路径加入autoexec的Path里。
………………………………to be continued
|
|