//////////////////////////////////////////////////////////////////////////////////4 ////////////////////////////
//
// 기능 : OnMaintuiafter
//
// 이벤트 : MainTuiaFter 이벤트는 파일 전송 후 전송됩니다.
// 컴퓨터에 이미 설치된 설치. 대개
// 이것은 프로그램 추가/제거 애플릿을 통해 발생합니다.
// 핸들러 설치에 일반적으로 알리는 UI가 표시됩니다.
// 유지 보수/제거가 성공적으로 완료된 최종 사용자.
//
//////////////////////////////////////////////////////////////////////////////////4 ////////////////////////////
Onmaintuiafter () 함수
문자열 sztitle, szmsg1, szmsg2, szoption1, szoption2;
번호 BOPT1, BOPT2;
시작하다
비활성화 (statusex);
BOPT1 = 거짓;
bopt2 = 거짓;
szmsg1 = sdloadstring (ifx_sdfinish_maint_msg1);
szmsg2 = "";
szoption1 = "";
szoption2 = "";
sztitle = sdloadString (ifx_sdfinish_maint_title);
sdfinishex (sztitle, szmsg1, szmsg2, szoption1, szoption2, bopt1, bopt2);
반환 0;
끝;
//////////////////////////////////////////////////////////////////////////////////4 ////////////////////////////
//
// 기능 : on -moving
//
// 이벤트 : 결과로 파일 전송이 시작될 때 이동 이벤트가 전송됩니다.
// 파일 전송 작업 전에 ComponentTransferData 호출
// 수행됩니다.
//
//////////////////////////////////////////////////////////////////////////////////4 ////////////////////////////
기능 onmoving ()
문자열 szapppath;
시작하다
// 로고 컴플라이언스 응용 프로그램 경로를 설정합니다
// 할 일 : 응용 프로그램 .Exe가 TargetDir의 하위 폴더에 있으면 subfolder를 추가하십시오.
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;
// 일반 초기화가 완료되었는지 확인하십시오
if (! bsdinit) 그러면
sdinit ();
endif;
if (ezdefinedialog (szdlg, "", "", dlg_loginsqlsv) = dlg_err)
반품 -1;
endif;
// 在用户选择标准按钮前进行循环
bdone = 거짓;
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);
CASE SD_EDIT_SQLSV_NAME :
nmessage = ctrlgetsubcommand (szdlg);
if (nmessage = editbox_change)
ctrlgetText (szdlg, sd_edit_sqlsv_name, szsqlsvname);
endif;
CASE SD_EDIT_SQLSV_USER :
nmessage = ctrlgetsubcommand (szdlg);
if (nmessage = editbox_change)
ctrlgetText (szdlg, sd_edit_sqlsv_user, szsqluser);
endif;
CASE SD_EDIT_SQLSV_PASSWORD :
nmessage = ctrlgetsubcommand (szdlg);
if (nmessage = editbox_change)
ctrlgetText (szdlg, sd_edit_sqlsv_password, szsqlpassword);
endif;
케이스 확인 :
NID = 다음;
bdone = true;
케이스 백 :
nid = 뒤로;
bdone = true;
사례 dlg_err :
sderror (-1, "sdwelcome");
NID = -1;
bdone = true;
CASE DLG_CLOSE :
sdclosedlg (hwnddlg, nid, bdone);
기본:
// 표준 처리를 확인합니다
if (sdisstdbutton (nid) && sddostdbutton (nid))
bdone = true;
endif;
엔드 스위치;
마지막으로;
enddialog (szdlg);
Releaselialog (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, "result", data_number ", nid);
NID를 반환합니다.
끝;
함수 exesqlfile (szsqlfilename)
문자열 szcmdline;
숫자 ntemp;
시작하다
szcmdline = supportDir ^"osql.exe";
if (launchAppandWait (supportDir ^"osql.exe", szsqlfilename, 대기) <0)
MessageBox ( "不能运行 sql 安装文件.", 심한);
endif;
끝;
함수 modifdbdir ()
문자열 szinstallfile;
숫자 nvresult, nvlineNumber;
문자열 szwindir, svreturnline;
숫자 sn, nstartpos;
문자열 sz1, sz2, sznewdir;
숫자 ntemp;
시작하다
szinstallfile = targetDir ^"install // createdb.sql";
// 替换 db 替换
while (nvresult! = end_of_file)
nvresult = filegrep (szinstallfile, "d : // cycdata //", svreturnline, nvlineNumber, 다시 시작);
// 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 = "";
마지막으로;
끝;
//////////////////////////////////////////////////////////////////////////////////4 ///////////////////////////
//
// 기능 : onfilereadonly
//
// 이벤트 : 파일 전송 중에 filereadonly 이벤트가 전송됩니다.
// 파일은 덮어 쓰거나 제거해야합니다.
//
// 인수 : 파일 - 읽기 전용으로 표시된 파일의 전체 경로.
//
// return : err_yes- 파일을 덮어 쓰거나 제거해야합니다.
// err_no- 파일을 수정해서는 안됩니다.
//
//////////////////////////////////////////////////////////////////////////////////4 ////////////////////////////
onfilereadonly (파일) 기능
시작하다
반환 sdexceptions (readonly, file);
끝;
//////////////////////////////////////////////////////////////////////////////////4 ///////////////////////////
//
// 기능 : onfilereadonly
//
// 이벤트 : 파일 전송 중에 filereadonly 이벤트가 전송됩니다.
// 파일은 덮어 쓰거나 제거해야합니다.
//
// 인수 : 파일 - 읽기 전용으로 표시된 파일의 전체 경로.
//
// return : err_yes- 파일을 덮어 쓰거나 제거해야합니다.
// err_no- 파일을 수정해서는 안됩니다.
//