トップ 新規 一覧 検索 ヘルプ RSS ログイン

BBS-サポート掲示板/165の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!![[お知らせの音声の駆動時間の設定(繰り返し間隔)について|BBS-サポート掲示板/165]] - たか (2005年12月04日 00時08分30秒)
お忙しい中無理をお願いしてしまいすみません。
私なりに色々と調べてみた結果vbsのマクロをくんで指定時間にファイルを実行としてvbsのマクロを実行することでなんとか実現できるようになりました。
私のコードにセンスがないのが原因だと思うのですが指定時間に指定したファイルを実行する際に引数の指定をすると実行することが出来ずメッセージや繰りかえし回数を指定したvbsのマクロを個別に作成しなければならなくなってしまいました。
指定時間に指定したファイルを実行で実行ファイルに引数を含めたものを実行できるようにしていただけないでしょうか?また引数を含で実行する方法があれば教えていただけないでしょうか?
よろしくお願いいたします。
非常にセンスが無くつっこみ処満載だと思いますが以下にvbsのコードを記入致します。
−−−−−−−−−−−msg_snd.vbs−−−−−−−−−−
 'pc1: + 繰り返し中にメッセージ及び音を鳴らす回数(回)
 'pi1: + 繰り返し中のメッセージ及び音を鳴らす間隔(秒)
 'pc2: + 繰り返しの回数(回)
 'pi2: + 繰り返しの間隔(秒)
 'msg: + メッセージ内容
 'wav: + 音のファイルパス名
 Set WSHShell = WScript.CreateObject("WScript.Shell")
 strCommand = "msg_snd_a.vbs /wav:jikan.wav /pc1:2 /pi1:30 /pc2:2 /pi2:300 /msg:test"
 WSHShell.Run(strCommand)
−−−−−−−−−−−msg_snd.vbs−−−−−−−−−−

−−−−−−−−−−−msg_snd_a.vbs−−−−−−−−−−
 Dim WSHShell,intErrCode
 Set named = WScript.Arguments.Named
 
 pc1x = named("pc1")
 pi1x = named("pi1")
 pc2x = named("pc2")
 pi2x = named("pi2")
 msgx = named("msg")
 
 Do While pc2x > 0
 	temp = pc1x
 	Do While temp > 0
 		strSoundFile = named("wav")
 		Set objShell = CreateObject("Wscript.Shell")
 		strCommand = "sndrec32 /play /close " & chr(34) & strSoundFile & chr(34)
 		objShell.Run strCommand, 0, False
 		Wscript.Sleep 3000
 
		Set WSHShell = WScript.CreateObject("WScript.Shell")
		strCommand = "msg_snd_b.vbs" & " /pi1:" & pi1x & " /msg:" & msgx
		intErrCode = WSHShell.Run(strCommand,1,True)
 
		If intErrCode = 1 Then
			temp = 0
			pc2x = 0
			pi2x = 0
		End If
		temp = temp - 1 
	Loop
	pc2x = pc2x -1
	If pc2x > 0 Then Wscript.Sleep 1000 * pi2x
 Loop
 If intErrCode <> 1 then
	MsgBox ("予定のお時間です。" & chr(13) & named("msg") & chr(13) & "タイムアウトしました。")
 End if
−−−−−−−−−−−msg_snd_a.vbs−−−−−−−−−−

−−−−−−−−−−−msg_snd_b.vbs−−−−−−−−−−
 Set named = WScript.Arguments.Named
 
 pi1x = named("pi1")
 
 Dim WSHShell,intMsg
 msg = "予定のお時間です。" & chr(13) & named("msg")
 msgt = "予定のお時間です"
 Set WSHShell = WScript.CreateObject("WScript.Shell")
 intMsg = WSHShell.Popup(msg,pi1x,msgt,0)
 Wscript.Quit intMsg
−−−−−−−−−−−msg_snd_b.vbs−−−−−−−−−−

*いやーVBスクリプト使ったことあんまりないですなぁ。引数は普通に渡せると思ってましたが、渡せないですかね? うーん内部でダブルクォートでくくっちゃってるのかな。この辺かえると既存の人に影響があるので難しいです。引数付きでVBSを呼び出す簡単なとりあえずバッチファイルか(VBSでもいいですよ)なんかを繰り返す回数の数だけ用意すりゃ良いんじゃないですかね。根本的な解決になってませんが。ってか秘書君のソース送りましょか。私はいつできるか分からないので… - のなか (2005年12月05日 21時52分13秒)
*msg_snd.vbsが引数を渡すために使用するスクリプトなのですが実行するファイルで引数としてメッセージ内容等も渡せたら既存の機能のままで他のソフトを使用することなくできると思っただけです。引数を指定できないのであればmsg_snd.vbsをメッセージや繰り返し回数に応じて編集して別名で保存する方法しかないですね。ソースについてですが言語にもよると思いますが私で変更可能であればいただければ助かります。お忙しい中無理ばかりお願いしてしまいすみません。 - たか (2005年12月07日 12時11分02秒)
*こりゃ失礼しました、スクリプトの内容見ていないことがもろばれですな。ソースはVBですよ。欲しい場合はメールをnonaka@qu-bit.comまで下さいな。 - のなか (2005年12月07日 12時58分25秒)
{{comment}}
The paragon of unrnnstaedidg these issues is right here!