|
knight1006
初级用户
 
积分 29
发帖 16
注册 2005-11-15
状态 离线
|
『楼 主』:
vbs读取剪贴板和字符串提取的请教
请问,在剪贴板里有如下信息,我想“把目标位置:”后面的内容提取出来,播放。用VBS。
看到过有人写的调用WMPlayer.ocx来播放,代码如下:
set wmp = CreateObject("WMPlayer.ocx")
wmp.url = "C:\Documents and Settings\Administrator\桌面\琵琶语.wma"
'wmp.play
do until wmp.playState = 1
wsh.sleep 100
loop
现在想把剪贴板内音乐的路径传给上面的代码实现播放,请大家帮帮我。
剪贴板内容如下:
来源位置: www.mzfstv.com/newgn1/mp3/%E7% ...
目的位置: C:\Users\Knight\Desktop\练习.mp3
大小: 4.0 MB (4,182,016 字节)
已下载: 4.0 MB (4,182,016 字节)
[ Last edited by knight1006 on 2009-4-15 at 05:59 ]
|
|
2009-4-15 00:41 |
|
|
s11ss
银牌会员
    
积分 2098
发帖 566
注册 2007-9-11
状态 离线
|
『第
2 楼』:
s = CreateObject("htmlfile").parentWindow.clipboardData.getData("Text")
Set re = New RegExp
re.Pattern = "目的位置: (.+)"
play re.Execute(s)(0).SubMatches(0)
Sub play(file)
set wmp = CreateObject("WMPlayer.ocx")
wmp.url = file
'wmp.play
do until wmp.playState = 1
wsh.sleep 100
loop
End Sub
|
|
2009-4-15 13:09 |
|
|
knight1006
初级用户
 
积分 29
发帖 16
注册 2005-11-15
状态 离线
|
|
2009-4-15 14:27 |
|
|
newxso
初级用户
  l i u s s
积分 73
发帖 101
注册 2008-9-17 来自 GZ
状态 离线
|
『第
4 楼』:
对 Pattern 属性不认识,因此我使用了较落后的方法:
Set objHTML = CreateObject("htmlfile")
ClipboardText = objHTML.ParentWindow.ClipboardData.GetData("text")
strText=Split(ClipboardText,vbCrLf)
For Each strLine In strText
If Instr(strLine,"目的位置")>0 Then Exit For
Next
strPath=replace(strLine,"目的位置: ","")
Set Wmp = CreateObject("WMPlayer.ocx")
Wmp.Url = strPath
Wsh.Sleep 500
do Until Wmp.PlayState = 1
Wsh.Sleep 500
loop
批处理方式: @echo off
mshta vbscript:createobject("scripting.filesystemobject").opentextfile("clip.txt",2,true).writeline(clipboardData.GetData("text"))(window.close)
for /f "delims=" %%a in ('type clip.txt^|find "目的位置"') do set strline=%%~a
set strpath=%strline:目的位置: =%
del clip.txt
start "" "%strpath%"
把最下一句改成如下就可以后台播放: start mshta vbscript:createobject("wscript.shell").run("""c:\program files\windows media player\wmplayer.exe"" ""%strpath%""",0)(window.close)
或生成临时文件(播放完会自我删除): (
echo Set Wmp=CreateObject^("WMPlayer.ocx"^)
echo Wmp.Url="%strpath%"
echo Wsh.Sleep 500
echo do Until Wmp.PlayState=1
echo Wsh.Sleep 500
echo loop
echo CreateObject^("Scripting.FileSystemObject"^).GetFile^(WScript.ScriptFullName^).Delete
)>%temp%\wmp.vbs
start wscript.exe "%temp%\wmp.vbs"
[ Last edited by newxso on 2009-4-17 at 18:01 ]
|
|
2009-4-15 22:45 |
|
|
knight1006
初级用户
 
积分 29
发帖 16
注册 2005-11-15
状态 离线
|
|
2009-4-17 10:57 |
|
|
knight1006
初级用户
 
积分 29
发帖 16
注册 2005-11-15
状态 离线
|
『第
6 楼』:
不过上面的批处理达不到预期效果,我是想要后台播放,不显示界面
[ Last edited by knight1006 on 2009-4-17 at 11:14 ]
|
|
2009-4-17 11:09 |
|