⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tvsong.frm

📁 广播级有线电视台MTV互动点播系统
💻 FRM
📖 第 1 页 / 共 3 页
字号:
'===遇到错误执行下一句===
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 + -