,VB   工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛,VB
您的位置:软件 > 开发者网络 > 开发工具 > 开发专栏 > VB > 正文
VB设计有语音报时和报警功能的闹钟
[文章信息]
作者:潇潇
时间:2004-05-18
出处:Yesky开发者网络
责任编辑:方舟
[文章导读]
经常在论坛上看到很多刚刚想要步入编码领域的爱好者问道:我数学学的不好,能学好编程吗?
advertisement
热点推荐
· 深入探讨SQL Server 2000对XML的支持
· Swing(空)
· 3DS Stodio Max 宝典
· 中小企业服务器配置方案--前 言
· 中小企业服务器配置方案--代理接入服务器(3)
[正文]

上一页  1 2 3 4 5 6 7 8 9 10 11 12  下一页

  4、mciSendString()

  vb声明: Public Declare Function mciSendString Lib " winmm . dll " Alias " mciSendStringA " ( ByVal lpstrCommand As String , ByVal lpstrReturnString As String , ByVal uReturnLength As Long , ByVal hwndCallback As Long ) As Long

  说明: mciSendString()函数的功能与mciExecute()函数相似,也是发送一个命令字符串给MCI,但是mciSendString()函数再传送字符串的同时还可以接受反馈的信息。

  MciSendString()函数的返回值为Long型值,如果返回值为0,表示调用失败;如果返回值不为0,表示调用成功。

  MciSendString()的参数说明如下:

  (1)lpstrCommand : 传送给MCI的命令字符串;

  (2)lpstrReturnString : 指向一个预备接受信息的文本缓冲区;

  (3)uReturnLength : 所指定的文本缓冲区大小;

  (4)hwndCallback : 用来接受确认信息的LpstrCommand,代表传送给MCI的命令字符串。

  下面是lpstrCommand参数的取值:

  (1) open

  语法形式:open 设备名称 参数

  功能: 打开一个AVI动画播放设备。

  说明:open命令的参数有[ 1 ] Alias : 设备别名 ;[ 2 ] Parent :播放动画窗口的父窗口;[ 3 ] style_sype : 显示动画的窗口类型 ; [ 4 ] style child : 播放动画的为子窗口 ; [ 5 ] style overlapped : 播放动画的为重叠窗口 ; [ 6 ] style popup : 播放动画的为突显示窗口 ;

  [ 6 ] style device_type_AVI : 播放的设备.

  ( 2 ) play

  语法形式: play 设备名称 参数

  功能: 播放动画文件

  说明: play 命令的参数有 [ 1 ] From position1 to position2 : 指定的开始位置播放到指定的结束位置; [ 2 ] Fullscreen : 以全屏幕的方式播放动画文件; [ 3 ] Windows : 在默认的窗口中播放动画文件.

  (3) cue

  语法形式: cue 设备名称 参数

  功能: 准备实例供播放使用

  说明: cue命令参数有 [ 1 ] output : 准备一个实例供播放使用; [ 2 ] to position : 跳到指定位置,并且处于暂停状态.

  下面是修改后的源代码:

Public Type SYSTEMTIME

 wYear As Integer
 wMonth As Integer
 wDayOfWeek As Integer
 wDay As Integer
 wHour As Integer
 wMinute As Integer
 wSecond As Integer
 wMilliseconds As Integer

End Type

Public Declare Sub GetLocalTime Lib " kernel32 " Alias " GetLocalTime " ( lpSystemTime As SYSTEMTIME )

Public Declare Function mciSendCommand Lib " winmm.dll " Alias " mciSendCommandA " ( ByVal wDeviceID As Long , ByVal uMessage As Long , ByVal dwParam1 As Long , ByVal dwParam2 As Any ) As Long

Public Declare Function mciSendString Lib " winmm.dll " Alias " mciSendStringA " ( ByVal lpstrCommand As String , ByVal lpstrReturnString As String , ByVal uReturnLength As Long , ByVal hwndCallback As Long ) As Long

 Dim dangqianshijian AS SYSTEMTIME

 ‘ = = = = = = = = = = = = = = = = = = = = = = = =
 ‘ 每秒钟触发一次此事件,从而获取当时的时间,并调用相应的函数,画出三个针的位置
 ‘ = = = = = = = = = = = = = = = = = = = = = = = =

Private Sub Timer1 _ Timer ( )

 Call GetLocalTime( dangqianshijian )
 miao = dangqianshijain . wSecond
 miao = 60 – miao
 fen = dangqianshijian . wMinute
 fen = 60 - fen
 shi = dangqianshijian . wHour

 If shi >= 12 Then ‘因为一天之内时针要走二十四个钟头,也就是要走两圈,所以将下午和晚上的时间减去十二,就可以确定时针准确的位置
  shi = shi - 12
 End If

 shi = 12 - shi
 miao = xianshimiao ( maio )
 fen = xianshifen ( fen )
 shi = xianshishi ( shi )
 If fen = 0 and miao = 0 then ‘如果分针和秒针都为零,这位整点,根据时针的数报时

  Select case shi
   Case 0 ‘零点,0.wav报时零点
    MMControl1.FileName = App . Path & “ 0.wav ” ‘选择要打开的文件
    ErrorCode = mciSendString ( “ Open ” & App . Path & “ 0.wav ” & “ type WaveAudio alias wave ” , ReturnString , 256, 0 )

    ‘打开所选择的文件

    ErrorCode = mciSendString ( “ Play wave ”, ReturnStr , 256 , 0 )

    ‘播放所选择的文件

   Case 1 ‘ 一点,1.wav报时一点,以下依次类推
    MMControl1.FileName = App . Path & “ 1.wav ” ‘选择要打开的文件
    ErrorCode = mciSendString (“Open” & App.Path & “0.wav” & “type WaveAudio alias wave ” , ReturnString , 256 , 0 )

    ‘打开所选择的文件

    ErrorCode = mciSendString (“ Play wave” , ReturnStr , 256 , 0 )

    ‘播放所选择的文件

   Case 2
    MMControl1.FileName = App . Path & “ 2.wav ”
    ErrorCode = mciSendString ( “Open” & App.Path & “0.wav” & “type WaveAudio alias wave ” , ReturnString , 256 , 0 )

   ‘打开所选择的文件

    ErrorCode = mciSendString ( “ Play wave ” , ReturnSt r , 256 , 0)

   ‘播放所选择的文件

   Case 3
    MMControl1.FileName = App . Path & “ 3.wav ”
    ErrorCode = mciSendString ( “ Open ” & App . Path & “ 0.wav ” & “ type WaveAudio alias wave ” , ReturnString , 256 , 0 )

    ‘打开所选择的文件

    ErrorCode = mciSendString ( “ Play wave ” , ReturnStr , 256 , 0 )

    ‘播放所选择的文件

   Case 4

    MMControl1.FileName = App . Path & “ 4.wav ”

    ErrorCode = mciSendString ( “ Open ” & App . Path & “ 0.wav ” & “ type WaveAudio alias wave ” , ReturnString , 256 , 0 )

    ‘打开所选择的文件

    ErrorCode = mciSendString ( “ Play wave ” , ReturnStr , 256 , 0 )

    ‘播放所选择的文件

   Case 5

    MMControl1.FileName = App . Path & “ 5.wav ”

    ErrorCode = mciSendString ( “ Open ” & App.Path & “ 0.wav ” & “ type WaveAudio alias wave ” , ReturnString , 256 , 0 )

    ‘打开所选择的文件

    ErrorCode = mciSendString ( “ Play wave ” , ReturnStr , 256 , 0 )

    ‘播放所选择的文件

   Case 6

    MMControl1.FileName = App . Path & “ 6.wav ”

    ErrorCode = mciSendString ( “ Open ” & App . Path & “ 0.wav ” & “ type WaveAudio alias wave ” , ReturnString , 256 , 0 )

    ‘打开所选择的文件

    ErrorCode = mciSendString ( “ Play wave ” , ReturnStr , 256 , 0 )

    ‘播放所选择的文件

   Case 7

    MMControl1.FileName = App . Path & “ 7.wav ”

    ErrorCode = mciSendString ( “ Open ” & App . Path & “ 0 . wav ” & “ type WaveAudio alias wave ” , ReturnString , 256 , 0 )

    ‘打开所选择的文件

    ErrorCode = mciSendString ( “ Play wave ” , ReturnStr , 256 , 0 )

    ‘播放所选择的文件

   Case 8

    MMControl1.FileName = App . Path & “ 8.wav ”

    ErrorCode = mciSendString ( “ Open ” & App . Path & “ 0.wav ” & “ type WaveAudio alias wave ” , ReturnString , 256 , 0 )

    ‘打开所选择的文件

    ErrorCode = mciSendString ( “ Play wave ” , ReturnStr , 256 , 0 )

    ‘播放所选择的文件

   Case 9

    MMControl1.FileName = App . Path & “ 9.wav ”

    ErrorCode = mciSendString ( “ Open ” & App . Path & “ 0.wav ” & “ type WaveAudio alias wave ” , ReturnString , 256 , 0 )

    ‘打开所选择的文件

    ErrorCode = mciSendString ( “ Play wave ” , ReturnStr , 256 , 0 )

    ‘播放所选择的文件

   Case 10

    MMControl1.FileName = App . Path & “ 10.wav ”

    ErrorCode = mciSendString ( “ Open ” & App . Path & “ 0.wav ” & “ type WaveAudio alias wave ” , ReturnString , 256 , 0)

    ‘打开所选择的文件

    ErrorCode = mciSendString ( “ Play wave ” , ReturnSt r , 256 , 0)

    ‘播放所选择的文件

   Case 11

    MMControl1.FileName = App . Path & “ 11.wav ”

    ErrorCode = mciSendString ( “ Open ” & App . Path & “ 0.wav ” & “ type WaveAudio alias wave ” , ReturnString , 256 , 0 )

    ‘打开所选择的文件

    ErrorCode = mciSendString ( “ Play wave ” , ReturnStr , 256 , 0 )

    ‘播放所选择的文件

  End Select

  ErrorCode = mciSendString ( “ Close wave ” , ReturnStr , 256 , 0 )

End Sub

  以上修改,因为结构上没有本质变化,都要临时载入wave文件,所以速度上没有质的改变,但我们应该知道因为vb中的函数也都是对windows提供的API的封装,所以,直接调用API效率要高于使用vb所提供的语句和函数。


上一页  1 2 3 4 5 6 7 8 9 10 11 12  下一页

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 
,VB相关内容,VB焦点新闻
  • 用VB6.0编程禁止网上下载文件
  • VB6.0应用程序界面设计探讨
  • VB中控件大小随窗体大小变化而变化
  • Visual Basic实现对I/O端口操作
  • 利用API函数实现图像淡入淡出
  • FVD刺激高清碟机加速商业化 抢占商机最重要
  • 3家搜索引擎集体诉讼8848 吕春维未敢出席
  • 杨元庆:没有准备不会获批的备用方案
  • 军队信息化诞生新领域 电子军务呼之欲出
  • 世界经济论坛公布信息化程度全球最新排名
  • 2004政务绩效评估:政府门户尚处于发展阶段
  • 甲骨文出资5.15亿美元 意图收购RetekInc
  • 技术并购:帮你突破传统增长的“天花板”
  • ,VBAdvertisement