//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
//
//功能:onmaintuiafter
//
//事件:在文件传输后,最终用户运行时,Maintuiafter事件是在文件传输后发送的
//已经在计算机上安装的安装。通常
//这是通过添加/删除程序小程序发生的。
//处理程序安装中通常会显示UI,以告知
//最终用户维护/卸载已成功完成。
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
功能onmaintuiafter()
字符串sztitle,szmsg1,szmsg2,szoption1,szoption2;
数字BOPT1,BOPT2;
开始
禁用(Statusex);
bopt1 = false;
bopt2 = false;
szmsg1 = sdloadString(ifx_sdfinish_maint_msg1);
szmsg2 =“”;
szoption1 =“”;
szoption2 =“”;
sztitle = sdloadString(ifx_sdfinish_maint_title);
sdfinishex(sztitle,szmsg1,szmsg2,szoption1,szoption2,bopt1,bopt2);
返回0;
结尾;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
//
//功能:启用
//
//事件:当文件传输启动时,发送了移动事件
//在任何文件传输操作之前
//执行。
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
功能onmoving()
字符串szapppath;
开始
//设置徽标合规性申请路径
// do:如果您的应用程序.exe在targetDir的子文件夹中,则添加子文件夹
szapppath = targetDir;
regdbsetItem(regdb_apppath,szapppath);
regdBsetItem(regdb_apppath_default,szapppath ^ @product_key);
结尾;
// ---包括脚本文件部分---
函数loginsql(sztitle,szsqlsvname,szsqluser,szsqlpassword)
字符串szdlg,sztemp;
数字bdone,nid,nmessage,ntemp;
int hwnddlg;
hwnd hwndcontrol;
开始
szdlg =“ dlg_loginsqlsv”;
//记录该对话框产生的数据
if(mode = silentmode),然后
sdmakename(szappkey,szdlg,sztitle,nloginsql);
SilentReadData(szappkey,“结果”,data_number,sztemp,nid);
if((nid!= back)&&(nid!= cancel))然后
silentReadData(szappkey,“ szsqlsvname”,data_string,szsqlsvname,ntemp);
SilentReadData(szappkey,“ szsqluser”,data_string,szsqluser,ntemp);
SilentReadData(szappkey,“ szsqlpassword”,data_string,szsqlpassword,ntemp);
endif;
返回nid;
endif;
//确保一般初始化完成
如果(!bsdinit)
sdinit();
endif;
if(ezdefinedialog(szdlg,“”,“”,dlg_loginsqlsv)= dlg_err)然后
返回-1;
endif;
//在用户选择标准按钮前进行循环
bdone = false;
while(!bdone)
nid = waitondialog(szdlg); //显示对话框
hwndcontrol = getDlgitem(hwnddlg,sd_edit_sqlsv_name);
setFocus(hwndcontrol);
开关(NID)
案例DLG_INIT:
ctrlsetText(szdlg,sd_edit_sqlsv_name,szsqlsvname);
ctrlsetText(szdlg,sd_edit_sqlsv_user,szsqluser);
ctrlsetText(szdlg,sd_edit_sqlsv_password,szsqlpassword);
hwnddlg = cmdgethwnddlg(szdlg);
sdgeneralinit(szdlg,hwnddlg,style_normal,szsdproduct);
//此功能设置了旧样式对话框的标题或
//在Win2k样式对话框的顶部横幅区域中设置文本
sdsetdlgtitle(szdlg,hwnddlg,sztitle);
案例SD_EDIT_SQLSV_NAME:
nmessage = ctrlgetSubCommand(szdlg);
如果(nmessage = editox_change),则
ctrlgetText(szdlg,sd_edit_sqlsv_name,szsqlsvname);
endif;
案例SD_EDIT_SQLSV_USER:
nmessage = ctrlgetSubCommand(szdlg);
如果(nmessage = editox_change),则
ctrlgetText(szdlg,sd_edit_sqlsv_user,szsqluser);
endif;
案例SD_EDIT_SQLSV_Password:
nmessage = ctrlgetSubCommand(szdlg);
如果(nmessage = editox_change),则
ctrlgetText(szdlg,sd_edit_sqlsv_password,szsqlpassword);
endif;
案例确定:
nid = next;
bdone = true;
案件回:
nid = back;
bdone = true;
案例DLG_ERR:
sderror(-1,“ sdwelcome”);
nid = -1;
bdone = true;
案例DLG_CLOSE:
sdclosedlg(hwnddlg,nid,bdone);
默认:
//检查标准处理
如果(sdisstdbutton(nid)&& sddostdbutton(nid))然后
bdone = true;
endif;
末端开关;
结局;
endDialog(szdlg);
释放式(szdlg);
sduninit();
//记录该对话框产生的数据
sdmakename(szappkey,szdlg,sztitle,nloginsql);
silentWritedata(szappkey,“ szsqlsvname”,data_string,szsqlsvname,0);
silentWritedata(szappkey,“ szsqluser”,data_string,szsqluser,0);
silentWritedata(szappkey,“ szsqlpassword”,data_string,szsqlpassword,0);
silentWritedata(szappkey,“结果”,data_number,“”,nid);
返回nid;
结尾;
函数exesqlfile(szsqlfilename)
字符串szcmdline;
数字ntemp;
开始
szcmdline = supportDir ^“ osql.exe”;
if(启动appandwait(supportdir ^“ osql.exe”,szsqlfilename,wait)<0)然后
MessageBox(“ sql安装文件”,严重);
endif;
结尾;
功能modifdbdir()
字符串szinstallfile;
nvlineNumber编号nvresult;
弦Szwindir,svreturnline;
数字SN,nstartpos;
字符串SZ1,SZ2,SZNEWDIR;
数字ntemp;
开始
szinstallfile = targetDir ^“ install // createb.sql”;
//替换db文件的建立路径
while(nvresult!= end_of_file)
nvresult = filegrep(szinstallfile,“ d:// cycdata //”,svreturnline,nvlinenumber,restart);
// filedeleteline(szodbcregfile,nvlinenumber,nvlinenumber);
sn = strlength(svreturnline);
nstartpos = strfind(svreturnline,“ d:// cycdata //”);
strsub(sz1,svreturnline,0,nstartpos);
strsub(sz2,svreturnline,nstartpos+11,sn-nstartpos-11);
sznewdir = sz1+targetdir ^sz2;
FileInsertLine(Szinstallfile,Sznewdir,nvlinenumber,替换);
sz1 =“”;
sz2 =“”;
sznewdir =“”;
结局;
结尾;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////
//
//功能:onfilereadonly
//
//事件:fileReadonly事件是在文件传输期间发送的。
//需要覆盖或删除文件。
//
//参数:文件 - 标记为仅读取的文件的完整路径。
//
//返回:err_yes-文件应覆盖或删除。
// err_no-不应修改文件。
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
功能onfilereadonly(文件)
开始
返回sdexceptions(readonly,file);
结尾;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////
//
//功能:onfilereadonly
//
//事件:fileReadonly事件是在文件传输期间发送的。
//需要覆盖或删除文件。
//
//参数:文件 - 标记为仅读取的文件的完整路径。
//
//返回:err_yes-文件应覆盖或删除。
// err_no-不应修改文件。
//