1、在“备份”图标按钮的Click事件中加入以下代码
if fileexists("c:\jybak.log") then
filedelete("c:\jybak.log")
end if
Run("exp73 userid=scnmis/scnmis@jydb file=c:\jybak.dmp full=y log=c:\jybak.log",Minimized!);
st_message.text='正在备份,请耐心等待。'
back_up = True
其中,back_up为全局变量,定义为:boolean back_up = false。
2、在窗口的Timer事件中加入以下代码
long file_handle
string read_line
If back_up Then
st_message.text='正在备份,请耐心等待。'
If L_quit Then
SetPointer(Hourglass!)
End If
file_handle = fileopen( 'c:\jybak.log',LineMode!)
do while fileread(file_handle,read_line) > -1
loop
If file_handle > 0 Then
fileclose(file_handle)
SetPointer( Arrow! )
if Left(read_line,30) <> "Export terminated successfully" then
st_message.text='数据备份失败!'
Messagebox("警告:", "数据备份失败!")
else
st_message.text='数据备份成功!'
Messagebox("恭喜!", "数据备份成功!")
end if
g_bfbz = True
back_up = False
If L_quit Then
close(w_main)
Exit_Windows( 5,0 )
End If
End If
End If
其中,Exit_Windows为Global External Function,定义为:FUNCTION long ExitWindowsEx(long a,long b) LIBRARY "user32.dll"。
3、至此,监控的数据备份的目的基本已经达到。为了实现在备份没有完成的情况下禁止退出,在“退出”图标按钮的Click事件中加入以下代码
long file_handle ,i
string read_line
long rc,allow
rc = MessageBox( "请您选择:", "是否退出系统?", Question!, YesNo! )
if rc = 1 then
If g_bfbz = False then
If back_up Then
MessageBox( "提示信息:","备份正在进行,完成后才能退出。按确定继续备份")
Goto Lab0
Else
allow = Messagebox("提示信息","退出前应当备份,现在开始吗?", Question!, YesNo!)
L_quit =true
If allow=1 Then
Triggerevent(Cb_backup,Clicked!)
Else
close(w_main)
ExitWindowsEx( 5,0 )
End If
End If
Else
close(w_main)
ExitWindowsEx( 5,0 )
End if
End if