2016-10-28 3 views
2

Ich lerne Skript/Code in VBScript (HTA) und versuche so sauber und minimalistisch wie möglich zu programmieren. Ziemlich schwer, als ich vor 2 Monaten mit dem Schreiben angefangen habe: pWie vereinfacht man diesen VBScript-Code?

Also habe ich diesen sehr simplen Soundboard mit HTA zum Spielen und Lernen erstellt und ich frage mich, ob dieser sich wiederholende Code vereinfacht werden kann?

Ich habe den HTML- und CSS-Code weggelassen.

Dim oPlayer : Set oPlayer = CreateObject("WMPlayer.OCX") 

Sub OnClickButtonSound_01() 
    oPlayer.URL = "Sound01.mp3" 
    oPlayer.settings.volume = 100 
    oPlayer.controls.play 
End Sub 
Sub OnClickButtonSound_02() 
    oPlayer.URL = "Sound02.mp3" 
    oPlayer.settings.volume = 100 
    oPlayer.controls.play 
End Sub 
Sub OnClickButtonSound_03() 
    oPlayer.URL = "Sound03.mp3" 
    oPlayer.settings.volume = 100 
    oPlayer.controls.play 
End Sub 
Sub OnClickButtonSoundStop() 
    oPlayer.close 
End Sub 

Dies funktioniert gut, aber ich denke, das OPlayer Teil vereinfacht werden kann, oder nicht, weiß ich nicht.

Alle Sounds befinden sich im selben Verzeichnis wie die .hta-Datei. Ich habe über VBS-Funktionen gelesen, aber ich finde es schwer zu verstehen, wie das auf meinen Code angewendet werden kann.

+0

Wenn Sie eine andere Annäherung wünschen, anstatt das ActiveX von Wmplayer zu verwenden, können Sie den Tag 'bgsound' th. Verwenden kann mit der HTA kompatibel sein! Ich habe dies in der Vergangenheit getan, wenn Sie es mit dem Lochcode teilen möchten, erzählen Sie mir einfach! – Hackoo

+0

Ich bin immer bereit, neue Methoden zu lernen, also bitte teilen. – WatskeBart

+0

Ok check meine neue Antwort :) – Hackoo

Antwort

3

EDIT: Versuchen Sie es stattdessen. Im Grunde weisen Sie innerhalb Ihrer Schaltfläche eine ID zu und verweisen auf diese ID im VB-Code.

HTML:

<input type="button" class="sndButton" id="01" value="Sound 01" onclick="OnClickButtonSound()"> 
<input type="button" class="sndButton" id="02" value="Sound 02" onclick="OnClickButtonSound()"> 
<input type="button" class="sndButton" id="03" value="Sound 03" onclick="OnClickButtonSound()"> 

VB:

Dim oPlayer : Set oPlayer = CreateObject("WMPlayer.OCX")  

Sub OnClickButtonSound() 
    oPlayer.URL = "Sound" + window.event.srcelement.id + ".mp3" 
    oPlayer.settings.volume = 100 
    oPlayer.controls.play 
+0

Also wenn ich das richtig verstehe, wäre meine HTML-Taste Code: '' – WatskeBart

+0

Check out my edit, das sollte funktionieren. –

+0

Got it. Das sieht in der Tat noch besser aus :) Vielen Dank – WatskeBart

1

Dies ist ein weiterer approch stattdessen das ActiveX von Wmplayer zu verwenden, können Sie den Tag bgsound verwenden, die mit dem HTA kompatibel sein können:

<html> 
<HTA:APPLICATION 
     ID = "Music" 
     icon="http://files.softicons.com/download/social-media-icons/free-large-twitter-icons-by-aha-soft/ico/Audio.ico"  
     APPLICATIONNAME="Music" 
     SCROLL="no" 
     navigable="no" 
     selection="no" 
     showintaskbar="yes" 
     singleinstance="no" 
     innerborder="no" 
     maximizebutton="no" 
     minimizebutton="yes" 
     border="dialog" 
     borderstyle="normal" 
     caption="yes" 
     contextMenu="no" 
     sysmenu="yes" 
> 
<head> 
<link rel="stylesheet" media="screen" type="text/css" title="design_encoder" href="&#0104;&#0116;&#0116;&#0112;&#0058;//&#0104;&#0097;&#0099;&#0107;&#0111;&#0111;&#0046;&#0097;&#0108;&#0119;&#0097;&#0121;&#0115;&#0100;&#0097;&#0116;&#0097;&#0046;&#0110;&#0101;&#0116;/&#0100;&#0101;&#0115;&#0105;&#0103;&#0110;&#0095;&#0101;&#0110;&#0099;&#0111;&#0100;&#0101;&#0114;&#0046;&#0099;&#0115;&#0115;"/> 

</head> 
<SCRIPT LANGUAGE="VBScript"> 
Dim TimerID,vbtxt,CopyRight 
Dim refresh 
Dim STRHTML 
CopyRight = " by © Hackoo 2013" 
'vbtxt = MusicAuHasard() & CopyRight 
VBvitesse="500" 

Function VBScroll_Title(vbtxt) 
    Document.title=vbtxt 
    vbtxt=mid(vbtxt,2,len(vbtxt)) & left(vbtxt,1) 
End Function 

Sub stoper() 
    Clear=ClearInterval(refresh) 
End Sub 

Sub CenterWindow(x,y) 
    window.resizeTo x,y 
    iLeft = window.screen.availWidth/2 - x/2 
    itop = window.screen.availHeight/2 - y/2 
    window.moveTo ileft, itop 
End Sub 

Sub Window_Onload 
CenterWindow 440,470 
refresh=setInterval("VBscroll_title(vbtxt)",VBvitesse,"Vbscript") 
Call ChargerMusic(11) ' Intro for DJ 
'Sleep 90 ' Sleep for 1 min and 30s 
'Call StartMusic() ' Start a Random Music 
End Sub 

Function MusicAuHasard() 
Dim MyURL,ListMusic 
MyURL = ChrW(104)&ChrW(116)&ChrW(116)&ChrW(112)&ChrW(58)&ChrW(47)&ChrW(47)&ChrW(104)&ChrW(97)&ChrW(99)&ChrW(107)&ChrW(111)&ChrW(111)&ChrW(46)&ChrW(97)&ChrW(108)&ChrW(119)&ChrW(97)&ChrW(121)&ChrW(115)&ChrW(100)&ChrW(97)&ChrW(116)&ChrW(97)&ChrW(46)&ChrW(110)&ChrW(101)&ChrW(116)&ChrW(47) 
URL1 = MyURL & "don.mp3" 
URL2 = MyURL & "Matrix.mp3" 
URL3 = MyURL & "Snap.mp3" 
URL4 = MyURL & "Pitbull.mp3" 
URL5 = MyURL & "mydream.mp3" 
URL6 = MyURL & "Rihanna.mp3" 
URL7 = MyURL & "feeling.mp3" 
URL8 = MyURL & "lavie.mp3" 
URL9 = MyURL & "Collide.mp3" 
URL10 = MyURL & "IbizaMix.mp3" 
URL11 = MyURL & "DJHackoo.mp3" 
ListMusic = array(URL1,URL2,URL3,URL4,URL5,URL6,URL7,URL8,URL9,URL10,URL11) 
    Randomize 
    For i = 0 To UBound(ListMusic) 
     j = Int((UBound(ListMusic) - i + 1) * Rnd + i) 
     tmp = ListMusic(i) 
     ListMusic(i) = ListMusic(j) 
     ListMusic(j) = tmp 
    Next 
MusicAuHasard=tmp 
vbtxt = MusicAuHasard & CopyRight 
End Function 

Sub StopMusic() 
    MaMusic.InnerHTML = "" 
    vbtxt = " La Musique est arrêtée par l'utilisateur !" 
End Sub 


Sub StartMusic() 
Dim STRHTML 
STRHTML = "<br>" 
STRHTML = STRHTML & "<bgsound src="&MusicAuHasard()&" loop=""infinite"">" 
MaMusic.InnerHTML = STRHTML 
End Sub 

Function ListMusic(Element) 
Dim URL(12) 
Dim MyURL 
MyURL = ChrW(104)&ChrW(116)&ChrW(116)&ChrW(112)&ChrW(58)&ChrW(47)&ChrW(47)&ChrW(104)&ChrW(97)&ChrW(99)&ChrW(107)&ChrW(111)&ChrW(111)&ChrW(46)&ChrW(97)&ChrW(108)&ChrW(119)&ChrW(97)&ChrW(121)&ChrW(115)&ChrW(100)&ChrW(97)&ChrW(116)&ChrW(97)&ChrW(46)&ChrW(110)&ChrW(101)&ChrW(116)&ChrW(47) 
URL(1) = MyURL & "don.mp3" 
URL(2) = MyURL & "Matrix.mp3" 
URL(3) = MyURL & "Snap.mp3" 
URL(4) = MyURL & "Pitbull.mp3" 
URL(5) = MyURL & "mydream.mp3" 
URL(6) = MyURL & "Rihanna.mp3" 
URL(7) = MyURL & "feeling.mp3" 
URL(8) = MyURL & "lavie.mp3" 
URL(9) = MyURL & "Collide.mp3" 
URL(10) = MyURL & "IbizaMix.mp3" 
URL(11) = MyURL & "Intro_DJ.mp3" 
URL(12) = MyURL & "DJHackoo.mp3" 
    ListMusic=URL(Element) 
    vbtxt = ListMusic & CopyRight 
End Function 

Sub ChargerMusic(X) 
Dim STRHTML 
STRHTML ="<br>" 
STRHTML = STRHTML & "<bgsound src="&ListMusic(X)&" loop=""infinite"">" 
MaMusic.InnerHTML = STRHTML 
End Sub 

Sub DownloadMe() 
Dim Titre,objFSO,Ws,objXMLHTTP,SourceDir,FullName,arrFN,Tab,URL,strHDLocation,objADOStream,Command,Start 
Titre = "Downloading MP3 by © Hackoo 2013" 
Set objFSO = Createobject("Scripting.FileSystemObject") 
FullName = replace(Music.commandLine,chr(34),"") 
arrFN=split(FullName,"\") 
FileName = arrFN(ubound(arrFN)) 
SourceDir=replace(FullName,FileName,"") 
Set Ws = CreateObject("wscript.Shell") 
URL = InputBox("Tapez ou collez l'URL dans le champ de saisie Exemple : "&Dblquote("http://hackoo.alwaysdata.net/IbizaMix.mp3")&"",Titre,"http://hackoo.alwaysdata.net/IbizaMix.mp3") 
If URL = "" Then Exit Sub 
Tab = split(url,"/") 
DownloadFolder = "Download_Hackoo_Music" 
strHDLocation = SourceDir & DownloadFolder & "\" & Tab(UBound(Tab)) 
If objFSO.Fileexists(strHDLocation) Then 
    MsgBox "The File "& Dblquote(strHDLocation) &" Exist ! ",48,"The File "& Dblquote(strHDLocation) &" Exist ! " 
    Exit Sub 
    else 
'MsgBox DownloadFolder 
'MsgBox strHDLocation 
CreerRep(SourceDir & DownloadFolder) 
MsgBox "The download of " & Dblquote(Tab(UBound(Tab))) & " is in progress ! ",64,"The download of " & Dblquote(Tab(UBound(Tab))) & " is in progress ! " 
If URL = "" Then WScript.Quit 
Set Ws = CreateObject("WScript.Shell") 
Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP") 
objXMLHTTP.open "GET", URL, false 
objXMLHTTP.send() 
If objXMLHTTP.Status = 200 Then 
    Set objADOStream = CreateObject("ADODB.Stream") 
    objADOStream.Open 
    objADOStream.Type = 1 'adTypeBinary 
    objADOStream.Write objXMLHTTP.ResponseBody 
    objADOStream.Position = 0 'Set the stream position to the start 
    objADOStream.SaveToFile strHDLocation 
    objADOStream.Close 
    Set objADOStream = Nothing 
    End if 
End If 
Set objXMLHTTP = Nothing 

MsgBox "The Download of " & Dblquote(Tab(UBound(Tab))) & " is finished ! ",64,"The Download of " & Dblquote(Tab(UBound(Tab))) & " is finished ! " 
Command = "Cmd /c start explorer "& Dblquote(strHDLocation) &" " 
Start = Ws.Run(Command,0,False) 
End Sub 

Function Dblquote(str) 
    Dblquote = chr(34) & str & chr(34) 
End Function 

Sub CreerRep(Chemin) 
Set objFSO = Createobject("Scripting.FileSystemObject") 
    If Not objFSO.FolderExists(chemin) Then 
     CreerRep(objFSO.GetParentFolderName(chemin)) 
     objFSO.CreateFolder(chemin) 
    End If 
End Sub 
</SCRIPT> 

<body> 

<center> 
<input type=Button OnClick="ChargerMusic(1)" STYLE ="cursor: hand;" Value=" Don "> 
<input type=Button OnClick="ChargerMusic(2)" STYLE ="cursor: hand;" Value=" Matrix "> 
<input type=Button OnClick="ChargerMusic(3)" STYLE ="cursor: hand;" Value=" Rhythm "> 
<input type=Button OnClick="ChargerMusic(4)" STYLE ="cursor: hand;" Value=" Pitbull "> 
<input type=Button OnClick="ChargerMusic(5)" STYLE ="cursor: hand;" Value=" Dream "> 
<input type=Button OnClick="ChargerMusic(6)" STYLE ="cursor: hand;" Value=" Rihanna "> 
<input type=Button OnClick="ChargerMusic(7)" STYLE ="cursor: hand;" Value=" Feeling "> 
<input type=Button OnClick="ChargerMusic(8)" STYLE ="cursor: hand;" Value=" La Vie "> 
<input type=Button OnClick="ChargerMusic(9)" STYLE ="cursor: hand;" Value=" Collide "> 
<input type=Button OnClick="ChargerMusic(10)" STYLE ="cursor: hand;" Value="IbizaMix"> 
<input type=Button OnClick="ChargerMusic(12)" STYLE ="cursor: hand;" Value="HackooMix"><br><br> 

<input type="button" value="Music ON" OnClick="StartMusic()" STYLE ="cursor: hand;"><INPUT TYPE="Button" VALUE="Music OFF" ONCLICK="StopMusic()" STYLE ="cursor: hand;"> 
<span id="MaMusic"></span> 
<DIV id="Splash" STYLE="background-image:url(http://hackoo.alwaysdata.net/laser.gif); cursor: hand; Height:300;Width:400;Border:0.1mm solid black;" OnClick="DownloadMe()"> 
<center> 
    <marquee DIRECTION="UP" HEIGHT="350" WIDTH="350" SCROLLAMOUNT="2" title="Click on me to download The Best Music ever listen !"> 
    <center><font face="Comic sans MS" color=RED size=10 STYLE ="cursor: hand;"><b>DJ Hackoo for you In the Mix</b></font></center> 
    <br><br> 
    <center><font face="Comic sans MS" color=RED STYLE ="cursor: hand;">Music for ever</b></font></center> 
    <br><center><font face="Comic sans MS" color=RED STYLE ="cursor: hand;">DJ © Hackoo 2013<br><br></font></center> 
    <br><center><img src="http://hackoo.alwaysdata.net/DJ2.gif"></center> 
    <br><center><img src="http://hackoo.alwaysdata.net/DJ3.gif"></center> 
    <br><center><img src="http://hackoo.alwaysdata.net/DJ4.gif"></center> 
    <br><center><img src="&#104;&#116;&#116;&#112;&#58;&#47;&#47;&#110;&#115;&#109;&#48;&#53;&#46;&#99;&#97;&#115;&#105;&#109;&#97;&#103;&#101;&#115;&#46;&#99;&#111;&#109;&#47;&#105;&#109;&#103;&#47;&#50;&#48;&#49;&#49;&#47;&#48;&#55;&#47;&#50;&#51;&#47;&#47;&#49;&#49;&#48;&#55;&#50;&#51;&#48;&#55;&#52;&#49;&#52;&#48;&#49;&#51;&#49;&#49;&#48;&#52;&#56;&#53;&#48;&#54;&#52;&#49;&#57;&#46;&#103;&#105;&#102;"></center> 
    </marquee> 
</center> 
</DIV> 
</center> 
</body> 
</html> 
+0

Danke! Sieh aber ziemlich komplex aus: p – WatskeBart

Verwandte Themen