私はvbsの初心者で、exeまたはサービスを開始するスクリプトを作成しようとしていますが、それぞれの間に定義された遅延があり、htaファイルに混合しましたが、うまく機能します。しかし、多くのコンピューターで使用する必要があるため、このスクリプトを構成しやすくする必要があり、構成ファイル .csv を追加することを考えました。しかし、スクリプトが csv のすべての行を次々に読み取るようにすることはできません。
私のスクリプトの動作:
<!-- ----- ExeScript Options Begin ----- ScriptType: window,invoker DestDirectory: temp Icon:
C:\Users\stream\Desktop\startapp.bmp File:
C:\Users\stream\Desktop\startapp.bmp OutputFile:
C:\Users\stream\Desktop\test.exe ----- ExeScript Options End -----
-->
<head>
<title>Start App</title>
<HTA:APPLICATION
APPLICATIONNAME="Start App"
ID="startapp"
VERSION="1.3"
MAXIMIZEBUTTON="no"
ICON="startapp.ico"
SINGLEINSTANCE="yes"
SELECTION="no"/>
<SCRIPT TYPE="text/javascript">
window.resizeTo(350,275);
window.moveTo(2,720);
</SCRIPT>
<SCRIPT language="vbscript">
Dim WshShell
Sub Window_onLoad
StartTimer
End Sub
Sub StartTimer
MonTimer0 =window.setTimeOut ("welcome", 5000, "VBScript") 'Appel de MonScript
MonTimer1 = window.setTimeOut ("Start01", 35000, "VBScript") 'Appel de MonScript
MonTimer2 = window.setTimeOut ("Start02", 45000, "VBScript") 'Appel de MonScript
MonTimer8 = window.setTimeOut ("Startend", 55000, "VBScript") 'Appel de MonScript
MonTimer9 = window.setTimeOut ("Startclose", 65000, "VBScript") 'Appel de MonScript
End sub
Sub Welcome
S = SetTimeOut("MaSub (""Vos applications vont se lancer dans un instant... Veuillez patienter..."")", 100)
End Sub
Sub Start01
Set WshShell = CreateObject ("Wscript.Shell")
WshShell.Run """C:\Program Files\soft1\soft1.exe"""
S = SetTimeOut("MaSub (""soft1 a bien été lancé !"")", 100)
End Sub
Sub Start02
Set WshShell = CreateObject ("Wscript.Shell")
WshShell.Run """C:\Program Files\soft2\soft2.exe"""
S = SetTimeOut("MaSub (""Soft2 a bien été lancé !"")", 100)
End Sub
Sub Startend
S = SetTimeOut("MaSub (""Toutes les applications ont été correctement lancées ! StartApp va se fermer..."")", 100)
End Sub
Sub Startclose
window.close()
End Sub
Set WshShell = nothing
</SCRIPT>
</head>
<Body STYLE="font:10 pt arial; color:white;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr='#000033', EndColorStr='#0000FF')">
<p><center> <img src=".\startapp.bmp" /> </center></p>
<br/><br/><br/>
<p><center>
<span style="color:white">
<div id = D></div>
<script language = vbs>
Sub MaSub (E)
Document.All.D.innerHTML = E
ClearTimeOut S
End Sub
</script>
</center></p>
</span>
</body>
</html>
今私が作ろうとしているコード... csvファイル:
MonTimer0;Start01;5000;"C:\Program Files\soft1\soft1.exe";soft1 a bien été lancé !
MonTimer1;Start02;10000;"C:\Program Files\soft1\soft2.exe";soft2 a bien été lancé !;
hta ファイル:
<!-- ----- ExeScript Options Begin -----
ScriptType: window,invoker
DestDirectory: temp
Icon: D:\Bureau\startapp.bmp
File: D:\Bureau\startapp.bmp
OutputFile: D:\Bureau\test.exe
----- ExeScript Options End ----- -->
<head>
<title>Start App</title>
<HTA:APPLICATION
APPLICATIONNAME="Start App"
ID="startapp"
VERSION="1.2"
MAXIMIZEBUTTON="no"
ICON="startapp.ico"
SCROLL="no"
SINGLEINSTANCE="yes"
SELECTION="no"/>
<SCRIPT TYPE="text/javascript">
window.resizeTo(350,275);
window.moveTo(10,10);
</SCRIPT>
<SCRIPT language="vbscript">
Dim FSO, LeFichier
Dim CheminNomFichier, MeTbl, PourTbl, T
Set fso = CreateObject("Scripting.FileSystemObject")
CheminNomFichier = "D:\Mes documents\PROGRAMMATION\Startapp\StartApp.csv"
Set LeFichier = fso.OpenTextFile(CheminNomFichier,1)
PourTbl = LeFichier.ReadAll
LeFichier.Close
Dim Var0, Var1, Var2, Var3, Var4
' .......................
'PourTbl contient: "un;deux;trois;quatres;cinqiéme et dernier;"
MeTbl = split(PourTbl,";")
for T =0 to ubound(MeTbl)-1
next
var0 = MeTbl(0)
var1 = MeTbl(1)
var2 = MeTbl(2)
var3 = MeTbl(3)
var4 = MeTbl(4)
Dim WshShell
Sub Window_onLoad
StartTimer
End Sub
Sub StartTimer
var0 =window.setTimeOut ( var1 , var2, "VBScript") 'Appel de MonScript
End sub
Sub var1
Set WshShell = CreateObject ("Wscript.Shell")
WshShell.Run WshShell.ExpandEnvironmentStrings(var3)
S = SetTimeOut("MaSub (var4)", 100)
End Sub
Sub Startend
S = SetTimeOut("MaSub (""toutes les applications ont été correctement lancées !"")", 100)
End Sub
Sub Startend
window.close()
End Sub
Set WshShell = nothing
</SCRIPT>
</head>
<Body STYLE="font:10 pt arial; color:white;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr='#000033', EndColorStr='#0000FF')">
<p><center> <img src=".\startapp.bmp" /> </center></p>
<br/><br/><br/>
<p><center>
<span style="color:white">
<div id = D></div>
<script language = vbs>
Sub MaSub (E)
Document.All.D.innerHTML = E
ClearTimeOut S
End Sub
</script>
</center></p>
</span>
</body>
</html>
hta を実行すると、68 行目の構文エラー [ sub (var1) ] が表示され、何もしません...
あなたが私を助けることができれば、それはとても親切です!nb: 私の英語が少し下手で申し訳ありません。長い間この言語を使用していませんでした。