Start/Stop 嵌入式 Windows Media Player 通过 VBScript 的方法
Start/Stop methods for embedded Windows Media Player via VBScript
我有以下代码工作正常。
<object classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" id="WindowsMediaPlayer"
width="242" height="202" style="position:absolute; left:1;top:1;">
<param name="URL" value="C:\HTML\Sounds\oos.wav">
<param name="autoStart" value="0">
</object>
我想在 VBScript 中为此对象创建 Start/Stop 方法。
所以我正在做
Sub Start
Dim oElm
Set oElm = document.getElementById("WindowsMediaPlayer")
if oElm Is Nothing then
MsgBox("element does not exist")
else
' MsgBox("element exists")
oElm.controls.play();
end if
End sub
但是不行。
如何解决?
应该这样做
<object classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" id="WindowsMediaPlayer" width="0" height="0">
</object>
Sub Start
Dim oElm
Set oElm = document.getElementById("WindowsMediaPlayer")
if oElm Is Nothing then
MsgBox("element does not exist")
else
oElm.controls.stop()
oElm.URL = "C:\HTML\Sounds\oos.wav"
end if
End sub
我已经为此奋斗了一个月。我知道这不会无处不在,但我想分享一些背景故事。
我一直在为阳光下的一切创造无人值守的装置,它一直非常顺利,除了它......好吧,无人值守并且大部分是隐藏的,所以我不知道它的进展情况或其他任何事情。然后我决定使用 HTA 文件而不是单独使用 Powershell 或 VBScript。我想在这一切发生的时候,它会让我看到一些东西。很酷,对吧?我花了将近一年的时间来研究它,并尝试了我能找到的每一种不同的下放代码。今天得到了回报。
我找到了与 OBJECT 一起使用的相同代码,而不是常见的 VIDEO 标签。它很笨重,我想写更多的代码,但它确实有效……主要是。我无法向它发送 CSS 引用(即 OPACITY:.5),甚至无法定位该死的东西。我发现我可以使用 IE=7 或 8 引用进行细微的更改,但是编写脚本 (VBScript) 几乎是不可能的。无法找到始终有效的参考资料。或者,切换到 IE9 - IE11 破坏了我的其余代码。 None 的调用或参考是有意义的。
最终,它比我发现的任何东西都容易得多!回到最开始浪费了太多时间……C'est la vie!这是我的代码,尽管为了隐私我已经删除了我的个人域并将所有内容都放在本地。它可以工作,但不如使用流有效。希望这可以帮助。分享给大家!
注意:为了好玩,我选择展示我的自定义 Office 365 安装。显然我可以完全无人看管,但我只是使用文件而不是允许下载功能!
<meta http-equiv="X-UA-Compatible" content="IE=8;IE=9" />
^^^ 这是关键! ^^^
<html>
<head>
<TITLE>Office 365 Installer</TITLE>
<hta:application id="O365TK"
applicationname="O365TK"
border="none"
caption="no"
icon=".\MEDIA\myico.ico"
showintaskbar="no"
singleinstance="yes"
sysmenu="no"
windowstate="maximize"
>
<style>
body{overflow:hidden;background:black;}
#proc{position:absolute;top:400px;left:20px;color:red;background:black;opacity:.3;}
#BG{position:absolute;top:0;left:0;z-index:-1;}
#myhead{position: absolute; top:0;left:0;z-index:0;}
#myvideo{position:absolute;top:0;left:0;height:100%;z-index:1; opacity:.5;}
</style>
</head>
<body>
<img id="BG">
<video id=myvideo type="video/mp4" autoplay src=".\MEDIA\cot.mp4"></video>
<div id="proc">Click Here to Start!</div>
<img id="myhead" src=".\MEDIA\label.png">
<script language="vbscript">
x = 5
Set ws = createobject("wscript.shell")
set fs = createobject("scripting.filesystemobject")
set sa = createobject("shell.application")
Sub window_onload
sa.MinimizeAll
pc=setInterval("pic_changer()",3000)
setTimeout "clicker()",4000
setTimeout "musicbox()", 3200
settimeout "pic_changer()",10
End Sub
Sub window_onbeforeunload()
'Set cd=location.pathname
Unloader()
End Sub
Function wait()
ws.Run "wait.vbs",0,1
'Lots of ways to go about putting a pause in the transmission.
'I use an external vbs file with one line: wscript.sleep 1000 That's all!
window.focus
End Function
Function document_onclick()
myvideo.stop
musicbox()
End Function
Sub document_onkeypress()
If window.event.keyCode=27 Then
Unloader
End if
End sub
Function proc_onclick()
'proc.innerhtml = "Download Office...<br>Please wait."
'wait:wait
'ws.run ".\Setup /configure .\TKO365.xml",0,1
proc.innerhtml = "Packaging Office...<br>Please wait."
wait:wait
ws.run ".\Setup /packager .\TKO365.xml .\Office",0,1
wait:wait
proc.innerhtml = "Install Office...<br>Please wait."
wait:wait
ws.run ".\Setup /configure .\TKO365.xml",0,1
proc.innerhtml = "Customize Office!<br>Please wait."
wait:wait
ws.run ".\Setup /customize .\TKO365.xml",0,1
wait:wait
proc.innerhtml = "Mission Complete!<br>We're done here!"
wait:wait
proc.innerhtml = "Goodbye!"
wait
Unloader()
End Function
Function Unloader()
clearInterval(pc)
sa.UndoMinimizeALL
ws.run "taskkill /f /im wscript.exe",0
ws.run "taskkill /f /im mshta.exe",0
End Function
Function clicker()
do while x => 0
proc.innerhtml="Autostart in " & x & " seconds"
wait
x = x-1
Loop
proc.click()
end Function
Function musicbox()
max=230
min=1
Randomize
d = Int((max-min+1)*Rnd+min)
t = ".\MEDIA\" & d & ".mp4"
'I renamed 230 tracks 1-230 for ease of calling them
myvideo.filename=t
myvideo.play
End Function
Function pic_changer()
Randomize
'Set ddd = document.getelementbyid("BG")
' I've left the above line for a sign of how horribly convoluted
'things got when using IE8 and below. BG already exists.
'I did not need to create another variable for it,
'though this is what I had been forced to do with those other iterations of IE
dd = Int(Rnd*230)+1
bg.src=".\MEDIA\"& dd &".jpg"
With bg.style
.display="block"
.width="100%"
.position="absolute"
.top="0px"
.left="0px"
.backgroundRepeat="no-repeat"
End With
window.focus
End Function
</script>
我有以下代码工作正常。
<object classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" id="WindowsMediaPlayer"
width="242" height="202" style="position:absolute; left:1;top:1;">
<param name="URL" value="C:\HTML\Sounds\oos.wav">
<param name="autoStart" value="0">
</object>
我想在 VBScript 中为此对象创建 Start/Stop 方法。
所以我正在做
Sub Start
Dim oElm
Set oElm = document.getElementById("WindowsMediaPlayer")
if oElm Is Nothing then
MsgBox("element does not exist")
else
' MsgBox("element exists")
oElm.controls.play();
end if
End sub
但是不行。
如何解决?
应该这样做
<object classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" id="WindowsMediaPlayer" width="0" height="0">
</object>
Sub Start
Dim oElm
Set oElm = document.getElementById("WindowsMediaPlayer")
if oElm Is Nothing then
MsgBox("element does not exist")
else
oElm.controls.stop()
oElm.URL = "C:\HTML\Sounds\oos.wav"
end if
End sub
我已经为此奋斗了一个月。我知道这不会无处不在,但我想分享一些背景故事。 我一直在为阳光下的一切创造无人值守的装置,它一直非常顺利,除了它......好吧,无人值守并且大部分是隐藏的,所以我不知道它的进展情况或其他任何事情。然后我决定使用 HTA 文件而不是单独使用 Powershell 或 VBScript。我想在这一切发生的时候,它会让我看到一些东西。很酷,对吧?我花了将近一年的时间来研究它,并尝试了我能找到的每一种不同的下放代码。今天得到了回报。 我找到了与 OBJECT 一起使用的相同代码,而不是常见的 VIDEO 标签。它很笨重,我想写更多的代码,但它确实有效……主要是。我无法向它发送 CSS 引用(即 OPACITY:.5),甚至无法定位该死的东西。我发现我可以使用 IE=7 或 8 引用进行细微的更改,但是编写脚本 (VBScript) 几乎是不可能的。无法找到始终有效的参考资料。或者,切换到 IE9 - IE11 破坏了我的其余代码。 None 的调用或参考是有意义的。 最终,它比我发现的任何东西都容易得多!回到最开始浪费了太多时间……C'est la vie!这是我的代码,尽管为了隐私我已经删除了我的个人域并将所有内容都放在本地。它可以工作,但不如使用流有效。希望这可以帮助。分享给大家!
注意:为了好玩,我选择展示我的自定义 Office 365 安装。显然我可以完全无人看管,但我只是使用文件而不是允许下载功能!
<meta http-equiv="X-UA-Compatible" content="IE=8;IE=9" />
^^^ 这是关键! ^^^
<html>
<head>
<TITLE>Office 365 Installer</TITLE>
<hta:application id="O365TK"
applicationname="O365TK"
border="none"
caption="no"
icon=".\MEDIA\myico.ico"
showintaskbar="no"
singleinstance="yes"
sysmenu="no"
windowstate="maximize"
>
<style>
body{overflow:hidden;background:black;}
#proc{position:absolute;top:400px;left:20px;color:red;background:black;opacity:.3;}
#BG{position:absolute;top:0;left:0;z-index:-1;}
#myhead{position: absolute; top:0;left:0;z-index:0;}
#myvideo{position:absolute;top:0;left:0;height:100%;z-index:1; opacity:.5;}
</style>
</head>
<body>
<img id="BG">
<video id=myvideo type="video/mp4" autoplay src=".\MEDIA\cot.mp4"></video>
<div id="proc">Click Here to Start!</div>
<img id="myhead" src=".\MEDIA\label.png">
<script language="vbscript">
x = 5
Set ws = createobject("wscript.shell")
set fs = createobject("scripting.filesystemobject")
set sa = createobject("shell.application")
Sub window_onload
sa.MinimizeAll
pc=setInterval("pic_changer()",3000)
setTimeout "clicker()",4000
setTimeout "musicbox()", 3200
settimeout "pic_changer()",10
End Sub
Sub window_onbeforeunload()
'Set cd=location.pathname
Unloader()
End Sub
Function wait()
ws.Run "wait.vbs",0,1
'Lots of ways to go about putting a pause in the transmission.
'I use an external vbs file with one line: wscript.sleep 1000 That's all!
window.focus
End Function
Function document_onclick()
myvideo.stop
musicbox()
End Function
Sub document_onkeypress()
If window.event.keyCode=27 Then
Unloader
End if
End sub
Function proc_onclick()
'proc.innerhtml = "Download Office...<br>Please wait."
'wait:wait
'ws.run ".\Setup /configure .\TKO365.xml",0,1
proc.innerhtml = "Packaging Office...<br>Please wait."
wait:wait
ws.run ".\Setup /packager .\TKO365.xml .\Office",0,1
wait:wait
proc.innerhtml = "Install Office...<br>Please wait."
wait:wait
ws.run ".\Setup /configure .\TKO365.xml",0,1
proc.innerhtml = "Customize Office!<br>Please wait."
wait:wait
ws.run ".\Setup /customize .\TKO365.xml",0,1
wait:wait
proc.innerhtml = "Mission Complete!<br>We're done here!"
wait:wait
proc.innerhtml = "Goodbye!"
wait
Unloader()
End Function
Function Unloader()
clearInterval(pc)
sa.UndoMinimizeALL
ws.run "taskkill /f /im wscript.exe",0
ws.run "taskkill /f /im mshta.exe",0
End Function
Function clicker()
do while x => 0
proc.innerhtml="Autostart in " & x & " seconds"
wait
x = x-1
Loop
proc.click()
end Function
Function musicbox()
max=230
min=1
Randomize
d = Int((max-min+1)*Rnd+min)
t = ".\MEDIA\" & d & ".mp4"
'I renamed 230 tracks 1-230 for ease of calling them
myvideo.filename=t
myvideo.play
End Function
Function pic_changer()
Randomize
'Set ddd = document.getelementbyid("BG")
' I've left the above line for a sign of how horribly convoluted
'things got when using IE8 and below. BG already exists.
'I did not need to create another variable for it,
'though this is what I had been forced to do with those other iterations of IE
dd = Int(Rnd*230)+1
bg.src=".\MEDIA\"& dd &".jpg"
With bg.style
.display="block"
.width="100%"
.position="absolute"
.top="0px"
.left="0px"
.backgroundRepeat="no-repeat"
End With
window.focus
End Function
</script>