📄 tvsong.frm
字号:
'===遇到错误执行下一句===
On Error Resume Next
Dim ChannelNum '电话卡可用的通道数
Dim Start As String * 10000 '读取系统配置文件时的临时变量
'=============检测系统安全================================
Dim DrvName As String '盘符
Dim VolName As String '卷标
Dim FileSysName As String '文件系统名称
Dim SerialNo As Long '(数字)序列号
Dim txtSerialNo As String '(字符串)序列号
Dim CompressFlag As Long '压缩盘标记
Dim Maxlen As Long '文件名的最大长度
Dim SecPerClust As Long '每簇的扇区数
Dim BytePerSec As Long '每扇区的字节数
Dim TotalClust As Long '总簇数
Dim FreeClust As Long '可用的簇数
ChannelNum = 0
'---------------------------------------------------------
'---Command1.Caption = "修改" & UCase(DrvName) & "的卷标"
' SetVolumeLabel DrvName, Text8.Text
'---------------------------------------------------------
'初始化两个缓冲区
VolName = String(255, 0)
FileSysName = String(255, 0)
'DrvName = Left(Drive1.Drive, 2) & "\"
DrvName = "C:\"
'获取卷标,序列号,文件名长度,压缩盘和文件系统名称
GetVolumeInformation DrvName, VolName, 256, SerialNo, Maxlen, CompressFlag, FileSysName, 256
'获取盘的空间信息(包括总空间和可用空间)
'GetDiskFreeSpace DrvName, SecPerClust, BytePerSec, FreeClust, TotalClust
'Command1.Caption = "修改" & UCase(DrvName) & "的卷标"
'判断盘的类型,并显示
'Select Case GetDriveType(DrvName)
' Case 0
' txtDiskType = "不明"
' Case 2
' txtDiskType = "软盘"
' Case 3
' txtDiskType = "硬盘"
' Case 4
' txtDiskType = "网络盘"
' Case 5
' txtDiskType = "光盘"
' Case 6
' txtDiskType = "RamDisk"
'End Select
'判断并显示是否为压缩盘
'If (CompressFlag And IS_COMPRESSED) = 0 Then
' txtIsCompressDisk = "非压缩盘"
' Else
' txtIsCompressDisk = "是压缩盘"
'End If
'得到准确的卷标,并显示
'txtVolName = Left(VolName, InStr(1, VolName, Chr(0)) - 1)
'得到准确的文件系统名称,并显示
'txtFileSysName = Left(FileSysName, InStr(1, FileSysName, Chr(0)) - 1)
'得到16进制的序列号,并显示
txtSerialNo = Hex(SerialNo)
'If txtSerialNo <> "C45884F1" Then
' MsgBox "软件过期或非法安装!", 48
' End
'End If
'计算出总空间信息,并显示
'txtTotalSpace = Str(SecPerClust * BytePerSec * TotalClust) & "字节"
'计算出可用空间信息,并显示
'txtFreeSpace = Str(SecPerClust * BytePerSec * FreeClust) & "字节"
'---------------------------------------------------------------------
If App.PrevInstance Then
MsgBox "TV_Song 已经运行!"
End
End If
Flash.Movie = App.Path + "\PictureBj\Welcome.SWF"
TVsong.Show
ShowCursor 0
'======打开系统文件,检查Tv_Song.CFG中所有路径===============================
Set DB = OpenDatabase(App.Path, False, False, "FoxPro 3.0")
Open App.Path + "\SYSTEM.CFG" For Input As #1
'===当前使用MODEM的串口或电话语音卡的通道号===
Line Input #1, Start
sCOM = Val(ChkPath(Start))
'===背景音乐的总数====
Line Input #1, Start
mBjS = Val(ChkPath(Start))
'===限制操作的总计时间===
Line Input #1, Start
MaxTime = Val(ChkPath(Start))
'===每屏限制操作时间===
Line Input #1, Start
MpTime = Val(ChkPath(Start))
'===游飞字幕===
Line Input #1, Start
YfZm0 = ChkPath(Start)
Close #1
'===初始化电话语音卡===
TV_Disable
ChannelNum = TV_Installed()
TV_Initialize
TV_SetSignalLevel 3
'===启动背景音乐=============================================
frmXSCZ.MP1.FileName = App.Path + "\musicbj\" + Trim(CStr(Int(Rnd * mBjS))) + ".MP3"
frmXSCZ.MP1.Play
'===关闭限时操作的窗体===============
frmXSCZ.Visible = False
frmXSCZ.Timer1.Enabled = False
'==初始化MODEM======
Load sCOMx
'==启动欢迎界面的时间控件======
TVsongTimer.Enabled = True
TVsong.CshTimer.Enabled = False
TVsong.GqLbTimer.Enabled = False
TVsong.XzGsTimer.Enabled = False
TVsong.XzGqTimer.Enabled = False
TVsong.ZfyTimer.Enabled = False
'==设定摘机状态为挂机======
ZjBZ = 0
'==设定背景音乐的状态为播放======
BuSy = 1
End Sub
Private Sub GqMc_Click(Index As Integer)
'===遇到错误执行下一句===
On Error Resume Next
Dim i, j, IiIi
'==选定后的蓝白交替闪动提示========================
For i = 1 To 10
DoEvents
If Int(i / 2) = i / 2 Then
GqMc(Index).ForeColor = &HC00000
Else
GqMc(Index).ForeColor = &HFFFFFF
End If
GqMc(Index).Refresh
For j = 1 To 10000: DoEvents: Next j
Next i
GqMc(Index).ForeColor = &HFF00FF
GqMc(Index).Refresh
For j = 1 To 10000: DoEvents: Next j
'=====搜索按键内容=============================================================
Select Case UCase(sOption)
Case "GQLB" '--目前页面<歌曲类别>,下一页<选择歌手>---
'===读取选择的数值和内容============
GqLb = Mid(GqMc(Index).Caption, 3)
GqLb1 = left(GqMc(Index).Caption, 1)
'===检索数据库============
'If Index = 6 Then
' Set RmRsT = DB.OpenRecordset("select distinct rm from TV_Song.Dat where val(djs)>50 and gqlb1<>'1' order by rm ")
' Else
Set RmRsT = DB.OpenRecordset("select distinct rm from Tv_Song.Dat where gqlb1='" + GqLb1 + "' order by rm ")
'End If
'===读取数据库里的歌曲类别下的歌手总数============
If Not RmRsT.EOF Then
'===如果该类型的歌手有,记录总数============
RmUser = 0
RmZong = RmRsT.RecordCount
'===启动选择歌手的界面==========
sOption = "XzGs"
Call DH(Int(ZsDh * Rnd + 1), sOption, BJ)
Flag = 1
'===让选择歌曲类型的Timer控件禁用=========
GqLbTimer.Enabled = False
Call Load_XzGs
'===让显示标签可见=========
XS_Caption.Visible = True
Else
'===如果该类型的歌手没有,继续选择============
GqLbTimer.Enabled = True
End If
Case "XZGS" '--目前页面<选择歌手>,下一页<选择歌曲>---
'===读取歌手姓名============
GsXm = Trim(Mid(GqMc(Index).Caption, 3))
'===读取所选歌手的所有歌曲============
'If GqLb1 = "7" Then
' Set GmRsT = DB.OpenRecordset("select distinct gm,djs from TV_song.dat where rm='" + GsXm + "' and val(djs)>50 and gqlb1<>'1' order by djs desc,Gm")
' Else
Set GmRsT = DB.OpenRecordset("select distinct gm,djs from TV_song.dat where rm='" + GsXm + "' and gqlb1='" + GqLb1 + "' order by djs desc,gm ")
'End If
'===如果该歌手的歌曲,有============
If Not GmRsT.EOF Then
'===该歌手的歌曲总记录数============
GmUser = 0
GmZong = GmRsT.RecordCount
'===艺术清除选择该歌手的界面============
sOption = "XzGq"
Call DH(Int(ZsDh * Rnd + 1), sOption, BJ)
'===启动选择该歌手的歌曲的界面============
GqLbTimer.Enabled = False
Call Load_XzGq
Else
'===如果该歌手的歌曲,没有============
XzGsTimer.Enabled = True
End If
Case "XZGQ" '--目前页面<选择歌曲>,下一页<播放歌曲>---
'===读取歌曲的音像文件全路径============
Dim RsT As Recordset
'If GqLb1 = "7" Then
' Set RsT = DB.OpenRecordset("select * from TV_song.DAt where rm='" + GsXm + "' and gm='" + Mid(GqMc(Index), 3) + "'")
' Else
Set RsT = DB.OpenRecordset("select * from TV_song.DAt where rm='" + GsXm + "' and gm='" + Mid(GqMc(Index), 3) + "' and gqlb1='" + GqLb1 + "'")
'End If
'===如果歌曲不存在,读取======
If Not RsT.EOF Then
'===如果该歌曲的点击数>=1=================
If Val(RsT("djs")) >= 1 Then
FileName = RsT("gqlb2") + RsT("rm") + "." + RsT("gqlb1") + "\" + RsT("gm") + "." + RsT("djs")
Else
'===如果该歌曲的点击数>=1,否则============
FileName = RsT("gqlb2") + RsT("rm") + "." + RsT("gqlb1") + "\" + RsT("gm") + ".dat"
End If
'===卸载播放窗体=================
Unload frmPLay
'===暂停背景音乐的播放=================
frmXSCZ.MP1.Pause
'===播放"操作完毕请挂机"的语音=================
TV_StartPlayFile 0, App.Path + "\cut", 1, LONG_MAX
For IiIi = 0 To 10000: DoEvents: Next IiIi
TV_HangUpCtrl sCOM
For IiIi = 0 To 10000: DoEvents: Next IiIi
'===让限时操作窗体的倒计时Timer1控件禁用=================
frmXSCZ.Timer1.Enabled = False
'===让限时操作的窗体不可见=================
frmXSCZ.Visible = False
frmXSCZ.Label3.Caption = CStr(MaxTime)
TVsong.TVsongTimer.Enabled = False
TVsong.CshTimer.Enabled = False
TVsong.GqLbTimer.Enabled = False
TVsong.XzGsTimer.Enabled = False
TVsong.XzGqTimer.Enabled = False
TVsong.ZfyTimer.Enabled = False
'===启动播放音像文件的窗体=================
Load frmPLay
'Unload TVsong
'===向信息台发送"PAUSE"的指令=================
SendCMD "PAUSE"
Else
'===如果歌曲不存在,返回=================
XzGqTimer.Enabled = True
End If
'===释放歌曲记录集的变量===============
Set RsT = Nothing
End Select
End Sub
Private Sub TVsongTimer_Timer()
'===遇到错误执行下一句===
On Error Resume Next
Dim Jsq As Integer
'===播放封面的动画=============================
Flash.Visible = True
Flash.Play
'===设定窗体焦点=============================
If sCOMx.VoiceTimer.Enabled = False Then sCOMx.VoiceTimer.Enabled = True
TVsong.SetFocus
TVsong.BJ.SetFocus
'===播放背景音乐=============================
frmXSCZ.MP1.Play
'===用户是否拨入=============================
If Ajz = "C" Then
'===设置操作标志=======
BuSy = 1
'===设置摘机标志=======
ZjBZ = 1
'===时间控制无效=======
TVsongTimer.Enabled = False
'===动画停止===========
Flash.StopPlay
'===播放"欢迎进入MTV电视互动点播系统,您现在可以按照电视画面进行操作"的语音=======
'TV_StartPlayFile 0, App.Path + "\welcome", 1, LONG_MAX
Flag = 1
'===设置总的操作限时的秒数=======
Max = MaxTime
'===设置每屏的操作限时的秒数=======
Mp = MpTime
'===启动操作限时窗体的倒计时的控件=======
frmXSCZ.Timer1.Enabled = True
'===显示操作限时窗体=======
frmXSCZ.Visible = True
Load frmXSCZ
'===操作界面的设置=======
For Jsq = 0 To 8
'===设置选择内容的标签为空=======
GqMc(Jsq).Caption = ""
'===设置选择内容的标签为不可见=======
GqMc(Jsq).Visible = False
'===设置选择内容的标签的字体颜色为深蓝色=======
GqMc(Jsq).ForeColor = &HFF0000
Next Jsq
'===设置选择结果的标签为不可见=======
XS_Caption.Visible = False
'===设置页面比例的标签为不可见=======
BL.Visible = False
'===设置祝福语编号的标签为不可见=======
lZfy.Visible = False
'===设置FLASH动画的控件为不可见=======
Flash.Visible = False
'===启动选择点歌种类的画面==========================
Call Load_Csh
'===启动选择点歌种类的时间控件==========================
CshTimer.Enabled = True
End If
Ajz = " "
End Sub
'=========选择点歌种类==========================
Private Sub Load_Csh()
'===遇到错误执行下一句===
On Error Resume Next
Dim Jsq As Integer
'===让操作限时的窗体一直在最上面=======
SetWindowPos frmXSCZ.hwnd, -1, 15, 520, 272, 63, &H40
'====载入动画==========================
sOption = "Csh"
Call DH(Int(ZsDh * Rnd + 1), sOption, BJ)
'====显示选择结果的标签设为不可见=================
XS_Caption.Visible = False
'===显示选择比例的的标签不可见,并且清空=====
BL.Visible = False: BL.Caption = ""
'====祝福语编号的标签设为不可见====
lZfy.Visible = False
For Jsq = 0 To 8
DoEvents
'===设置选择内容的标签为空=======
GqMc(Jsq).Caption = ""
'===设置选择内容的标签为不可见=======
GqMc(Jsq).Visible = False
'===设置选择内容的标签的字体颜色为深蓝色=======
GqMc(Jsq).ForeColor = &HFF0000
Next Jsq
'===启动CSH的时间控件========
CshTimer.Enabled = True
'===每屏限时操作的秒数重计====
Mp = MpTime
End Sub
'===选择点歌种类的Timer=============
Private Sub CshTimer_Timer()
'===遇到错误执行下一句===
On Error Resume Next
'===设定清屏的图片========
sOption = "Csh"
'===用户是否挂机,判断总限时或每屏限时是否已到===
If Ajz = "S" Or Max <= 1 Or Mp <= 1 Then
TV_Exit
'===用户是否按键=========
ElseIf ZjBZ = 1 And Flag = 0 Then
'===如果用户按键"1,2"========
If InStr("12", Ajz) > 0 Then
Select Case Ajz
Case "1" '===如果选择了"1"-->普通点歌=======
'===游飞字幕内容用系统默认的文字========
YfZm = YfZm0
'===设定清屏的图片========
sOption = "GqLb"
'===启动清屏的动画========
Call DH(Int(ZsDh * Rnd + 1), sOption, BJ)
'===启动选择歌曲类别的界面=======
Call Load_GqLb
Case "2" '===如果选择了"2"-->祝福点歌=======
'===设定清屏的图片========
sOption = "Zfy"
'===启动清屏的动画========
Call DH(Int(ZsDh * Rnd + 1), sOption, BJ)
'===启动输入祝福语密码的界面=======
Call Load_Zfy
'===启动输入祝福语密码界面的时间控件====
ZfyTimer.Enabled = True
End Select
'===禁用选择点歌类别的时间控件=======
CshTimer.Enabled = False
End If
Else
Flag = 0
End If
'===清空按键值=======
Ajz = " "
End Sub
'===输入祝福语密码======
Private Sub Load_Zfy()
'===遇到错误执行下一句===
On Error Resume Next
Dim Jsq As Integer
'===把显示选择结果的标签设为不可见=============
XS_Caption.Visible = False
'===启用输入祝福语密码的Timer=============
ZfyTimer.Enabled = True
'===把输入祝福语密码的标签设为可见并清空=============
lZfy.Visible = True
lZfy.Caption = ""
lZfy.Refresh
For Jsq = 0 To 8
'===设置选择内容的标签为空=======
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -