VB脚本怎么写啊?

VB脚本怎么写啊?,第1张

1、Private Sub Command1_Click()

Const msg1 As String="请在这里输入你想显示的一段话!"

Const msg2 As String="这里是对话框要显示的标题."

MsgBox msg1,vbOkOnly,msg2 '此处代码一定不能添加()

End Sub2、 form1按钮点击事件:

form2.show

form1.hide 3、

启动VB程序,在窗体上放置6个命令按钮,三个标签,一个公用对话框、一个进度条、一个状态栏和一个计时器,窗本的布置请参考附图按钮"Open MP3 File"是用来打开对话框选择MP3文件,其他5个按钮分别为Play(播放)、Pause(暂停)、Stopplay(停止播放)、Back(向后跳跃)、Prew(向前跳跃)。Label1用来表示歌曲当前时间;label2放在时度条的最左边,Caption属性为"00:00";lable3放在时度条的右边,用来表示歌曲总长。下面就可以编写代码了。首先在窗体的"通用声明"部分声明函数

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

Dim mfn As String

下面就是各个对象的代码了:

Private Sub Form_load()

mfn = ""

play.Enabled = False

pause.Enabled = False

stopplay.Enabled = False

back.Enabled = False

prew.Enabled = False

Timer1.Enabled = False

Timer1.Interval = 500

End Sub

Private Sub open_Click()

On Error GoTo err

With CommonDialog1

.CancelError = True

.Filter = "音乐文件|*.mp3*.wav*.mid"

.Flags = cdlOFNNoChangeDir And cdlOFNPathMustExist

.Action = 1

stopplay_Click '停止按钮同时可以设备初始化

mfn = .FileName '这个程序中文件名一定不能带空格

Form1.Caption = .FileName

play.Enabled = True

End With

play_Click

Exit Sub

err:

End Sub

Private Sub play_Click()

On Error Resume Next

Dim t As Long

t = mciSendString("open " + mfn, 0&, 0, 0) 'Open后边的空格一定不能丢

Dim ret As String * 128

t = mciSendString("status " + mfn + " length", ret, 128, 0)

'显示歌曲总长

ret = Left(ret, 8)

If ret <>"" Then

ProgressBar1.min = 0

ProgressBar1.Max = Val(ret)

Label3.Caption = Gettime(Val(ret))

End If

play.Enabled = False

pause.Enabled = True

stopplay.Enabled = True

back.Enabled = True

prew.Enabled = True

t = mciSendString("status " + mfn + " mode", ret, 128, 0)

'得到设备的当前状态,是播放还是暂停等等

ret = Left(ret, 8)

StatusBar1.Panels(1).Text = ret

'在状态栏显示播放状态

t = mciSendString("play " + mfn + " form " + Str(ProgressBar1.Value), 0&, 0, 0)

'开始播放

Timer1.Enabled = True

End Sub

Private Sub pause_Click()

t% = mciSendString("pause " + mfn, 0&, 0, 0)

'发出暂停的命令

play.Enable = True

pause.Enabled = False

stopplay.Enabled = True

back.Enabled = False

prew.Enabled = False

End Sub

Private Sub stopplay_Click()

t% = mciSendString("stop " + mfn, 0&, 0, 0)

t% = mciSendString("close " + mfn, 0&, 0, 0)

'停止播放

play.Enabled = True

pause.Enabled = False

stopplay.Enabled = False

back.Enabled = False

prew.Enabled = False

End Sub

Private Sub back_Click()

t% = mciSendString("play " + mfn + " from " + Str(ProgressBar1.Value - (ProgressBar1.Max \ 10)), 0&, 0, 0) '向后跳一小段再播放

End Sub

Private Sub prew_Click()

t% = mciSendString("play " + mfn + " from " + Stri(ProgressBar1.Value + (ProgressBar1.Max \ 10)), 0&, 0, 0) '向前跳一小段再播放

End Sub

Private Sub Timer1_Timer()

Dim t As Long

Dim ret As String * 128

t = mciSendString("status " + mfn + " position", ret, 0, 0)

'得到当前播放位置

ret = Left(ret, 8)

ProgressBar1.Value = Val(ret)

Label1.Caption = Gettime(Val(ret))

'显示歌曲当前时间

If ProgressBar1.Value = ProgressBar1.Max Then

stopplay_Click

End If

t = mciSendString("status " + mfn + " mode", ret, 128, 0)

ret = Left(ret, 8)

StatusBar1.Panels(1).Text = ret

End Sub

Private Sub Form_Unload(Cacel As Integer)

t% = mciSendString("stop " + mfn, 0&, 0, 0)

t% = mciSendString("close " + mfn, 0&, 0, 0)

End Sub

Private Function Gettime(position As Long) As String

'这个函数的功能是把以长整型表示的时间转换为电子钟式的"**:**"

Dim min, sec

min = position / 1000

min = min / 60

sec = min - Int(min)

min = Int(min)

sec = 60 * sec / 100

sec = Int(sec * 100)

Gettime = Str(min) + ":" + Str(sec)

End Function

试一下不就知道了,不能。逻辑上来说也不应能,vb脚本与vb根据用途有不同的市场定位,如果脚本可以调用api的话,那完全可以通过它实现建立窗口等等与vb一样的功能了,那不就与vb一样了吗。利用com组件可以间接实现,但从安全上来说也不应该能,比如网页上的vb脚本,本应该与本地资源隔离的,但可以通过组件间接访问本地硬盘,这挺不安全的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11342019.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存