/////////////////////////////////////////////// /////////////////////////
//
// Función: OnMaintuiaFter
//
// Evento: el evento Mantaniafter se envía después de la transferencia de archivos, cuando el usuario final se ejecuta
// Instalación que ya se ha instalado en la máquina. Generalmente
// Esto sucede a través de ADD/RETRARSE APPLET.
// en la instalación del controlador generalmente muestra una interfaz de usuario que informará
// Usuario final que el mantenimiento/desinstalación se ha completado con éxito.
//
/////////////////////////////////////////////// /////////////////////////
función onMaintUiaFter ()
String Sztitle, Szmsg1, Szmsg2, SzOption1, SzOption2;
Número BOPT1, BOPT2;
comenzar
Deshabilitar (statusex);
bopt1 = falso;
bopt2 = falso;
szmsg1 = sdloadString (ifx_sdfinish_maint_msg1);
szmsg2 = "";
szOption1 = "";
szOption2 = "";
sztitle = sdloadString (ifx_sdfinish_maint_title);
Sdfinishex (Sztitle, SZMSG1, SZMSG2, SzOption1, SzOption2, BOPT1, BOPT2);
regresar 0;
fin;
/////////////////////////////////////////////// /////////////////////////
//
// Función: en movimiento
//
// Evento: el evento móvil se envía cuando la transferencia de archivos se inicia como resultado de
// Llamada de ComponentTransferdata, antes de cualquier operación de transferencia de archivos
// se realizan.
//
/////////////////////////////////////////////// /////////////////////////
function onmoving ()
Cadena szapppath;
comenzar
// Establecer la ruta de aplicación de cumplimiento del logo
// para hacer: si su aplicación .exe está en una subcarpeta de TargetDir, entonces agregue la subcarpeta
szapppath = TargetDir;
RegDbsetitem (regdb_apppath, szapppath);
RegDbsetitem (regdb_apppath_default, szapppath ^ @product_key);
fin;
// --- Incluya la sección del archivo de script ---
FUNCIÓN LOGINSQL (SZTITLE, SZSQLSVNAME, SZSQLUSER, SZSQLPASSWORD)
Cadena szdlg, sztemp;
Número bdone, nid, nmessage, ntemp;
Int hwnddlg;
Hwnd hwndcontrol;
comenzar
szdlg = "dlg_loginsqlsv";
// registro de datos producidos por este diálogo
if (mode = SilentMode) entonces
Sdmakename (szappkey, szdlg, sztitle, nloginsql);
SilentReadData (szappkey, "resultado", data_number, sztemp, nid);
if ((nid! = back) && (nid! = cancelar)) entonces
SilentReadData (szappkey, "szsqlsvname", data_string, szsqlsvname, ntemp);
SilentReadData (szappkey, "szsqluser", data_string, szsqluser, ntemp);
SilentReadData (szappkey, "szsqlpassword", data_string, szsqlpassword, ntemp);
endif;
regresar nid;
endif;
// Asegúrese de que se complete la inicialización general
if (! bsdinit) entonces
Sdinit ();
endif;
if (eZDefinedialog (szdlg, "", "", dlg_loginsqlsv) = dlg_err) entonces
regreso -1;
endif;
// 在用户选择标准按钮前进行循环
bdone = falso;
Mientras (! Bdone)
nid = waitondialog (szdlg); // 显示对话框
hwndControl = getDlgitem (hwnddlg, sd_edit_sqlsv_name);
SetFocus (hwndcontrol);
Switch (NID)
Caso 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);
// Esta función establece el título de diálogo de estilo antiguo o
// Establece el texto en el área de banner superior de los diálogos de estilo Win2k
Sdsetdlgtitle (szdlg, hwnddlg, sztitle);
Caso SD_EDIT_SQLSV_NAME:
nmessage = ctrlgetSubCommand (szdlg);
if (nmessage = editbox_change) entonces
Ctrlgettext (szdlg, sd_edit_sqlsv_name, szsqlsvname);
endif;
Caso SD_EDIT_SQLSV_USER:
nmessage = ctrlgetSubCommand (szdlg);
if (nmessage = editbox_change) entonces
Ctrlgettext (szdlg, sd_edit_sqlsv_user, szsqluser);
endif;
Caso SD_EDIT_SQLSV_PASSWORD:
nmessage = ctrlgetSubCommand (szdlg);
if (nmessage = editbox_change) entonces
Ctrlgettext (szdlg, sd_edit_sqlsv_password, szsqlpassword);
endif;
Caso OK:
nid = siguiente;
bdone = verdadero;
Caso de regreso:
nid = back;
bdone = verdadero;
Caso dlg_err:
SDERROR (-1, "SDWEVELOME");
nid = -1;
bdone = verdadero;
Caso dlg_close:
SdClosedlg (hwnddlg, nid, bdone);
por defecto:
// Verifique el manejo estándar
if (sdisstdbutton (nid) && sddostdbutton (nid)) entonces
bdone = verdadero;
endif;
Switch;
End While;
Enddialog (szdlg);
LiberialaLog (szdlg);
Sduninit ();
// registro de datos producidos por este diálogo
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, "resultado", data_number, "", nid);
regresar nid;
fin;
función exesqlfile (szsqlfileName)
String szcmdline;
Número ntemp;
comenzar
szcmdline = soportDir ^"osql.exe";
if (LaunchAppandWait (SupportDir ^"Osql.exe", szsqlfileName, espera) <0) entonces
MessageBox ("不能运行 SQL 安装文件.", Severo);
endif;
fin;
función modifdbdir ()
Cadena szinstallfile;
Número nvresult, nvlinEnumber;
Cadena szwindir, svreturnline;
Número SN, NSTARTPOS;
String SZ1, SZ2, SzNewdir;
Número ntemp;
comenzar
szinstallFile = TargetDir ^"install // createb.sql";
// 替换 db 文件的建立路径
while (nvResult! = end_of_file)
nvResult = fileGrep (szinstallfile, "d: // cycdata //", svreturnline, nvlinEnumber, reiniciar);
// FilElteline (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, reemplazar);
sz1 = "";
sz2 = "";
szNewDir = "";
End While;
fin;
/////////////////////////////////////////////// ////////////////////////
//
// Función: Onfilreadonly
//
// Evento: FileReadonly El evento se envía durante la transferencia de archivos cuando solo una lectura
// El archivo debe sobrescribirse o eliminarse.
//
// Argumentos: archivo: ruta completa del archivo que está marcada como de solo lectura.
//
// return: err_yes: el archivo debe sobrescribirse o eliminarse.
// err_no: el archivo no debe modificarse.
//
/////////////////////////////////////////////// /////////////////////////
función onFilreadonly (archivo)
comenzar
devolver sdexcepciones (readonly, archivo);
fin;
/////////////////////////////////////////////// ////////////////////////
//
// Función: Onfilreadonly
//
// Evento: FileReadonly El evento se envía durante la transferencia de archivos cuando solo una lectura
// El archivo debe sobrescribirse o eliminarse.
//
// Argumentos: archivo: ruta completa del archivo que está marcada como de solo lectura.
//
// return: err_yes: el archivo debe sobrescribirse o eliminarse.
// err_no: el archivo no debe modificarse.
//