vbscript jouer un son wav sous vista
Le
Gilles RONSIN

Salut et Bonne Année,
pour limiter la durée d'utilisation de l'ordinateur pour les enfants
j'ai fait un petit vbscript qui verouille la session après une heure
d'utilisation.
J'aimerais bien ajouter des informations sonores pour les avertir du
temps restant.
2 problèmes :
- auparavant (anciens windows), j'utilisais sndrec32 /play /close
/embedding <fichier>.wav mais sous Vista ?
- la plupart du temps les enfants utilisent des jeux donc il faudrait
que ces sons soient joués même si la carte son est occupée par une
autre application.
Z'avez pas une idée ? Merci ;-)
pour limiter la durée d'utilisation de l'ordinateur pour les enfants
j'ai fait un petit vbscript qui verouille la session après une heure
d'utilisation.
J'aimerais bien ajouter des informations sonores pour les avertir du
temps restant.
2 problèmes :
- auparavant (anciens windows), j'utilisais sndrec32 /play /close
/embedding <fichier>.wav mais sous Vista ?
- la plupart du temps les enfants utilisent des jeux donc il faudrait
que ces sons soient joués même si la carte son est occupée par une
autre application.
Z'avez pas une idée ? Merci ;-)
Le nouvel enregistreur de sons livré avec Vista ne permet plus d'ouvrir un
fichier WAV existant... Il faut donc soit revenir à l'ancienne version, soit
installer un autre soft.
Si tu as accès à un poste sous XP, tu peux récupérer le programme
sndrec32.exe (dans %SystemRoot%System32) et le copier sur ton poste Vista.
La première fois que tu l'exécutes sur Vista, exécute-le en tant
qu'administrateur (clic-droit sur l'icône de l'application) pour qu'il
puisse écrire ses informations dans la base de registre. Ca ne devrait pas
être nécessaire pour les usages suivants.
Bonne année,
Jacques
Salut Jacques,
Sous la main j'avais la version de Windows 98 qui marche très bien...
pour ce que j'en fait ça ira très bien.
Merci pour ta réponse
écrivait ceci:
En fait j'était parti d'un simple vbscript
Set WshShell = WScript.CreateObject("WScript.Shell")
wscript.sleep(1000*60*60)
WshShell.Run "rundll32.exe user32.dll,LockWorkStation"
qui est lancé au démarrage de la session des gamins
puis j'ai trouvé dûr de couper la session sans laisser le temps de
faire les sauvegardes
Je suis donc allé me faire des fichiers audio avec tts
http://www.research.att.com/~ttsweb/tts/demo.php#top
puis j'ai ajouté des découpages horaires
j'en suis là... je me suis bien amusé :-)
-----------------
Set WshShell = WScript.CreateObject("WScript.Shell")
function play(son)
wshShell.run "sndrec32 /play /close /embedding " & """limiter" & son
& ".wav""",,true
'si on préfère le beep
'wscript.echo chr(7)
end function
Duree = 1000 * 60 * 60 + 60000
play("accueil")
heure = int(duree/3600000)
minutes = int((duree-heure*3600000)/60000)
seconde = int((duree-heure*3600000-minutes*60000)/1000)
if heure>0 then
play(cstr(heure))
play("heure")
end if
if minutes>0 then
play(cstr(minutes))
play("minute")
end if
if seconde>0 then
play(cstr(seconde))
play("seconde")
end if
if heure>0 then
'attente heure pleine si plus d'une heure'
if minutes*60+seconde>0 then
wscript.sleep((minutes*60+seconde)*1000)
end if
for i=heure to 1 step -1
play(i)
play("heure")
if i>1 then wscript.sleep(3600000)
next
minutes`
end if
if minutes>45 then
wscript.sleep((minutes-45)*60000)
play(45)
play("minute")
minutesE
end if
if minutes>30 then
wscript.sleep((minutes-30)*60000)
play(30)
play("minute")
minutes0
end if
if minutes>15 then
wscript.sleep((minutes-15)*60000)
play(15)
play("minute")
minutes
end if
if minutes>1 then
wscript.sleep((minutes-1)*60000)
end if
'if Duree>1000*60 then wscript.sleep(Duree-1000*60)
play("1")
play("minute")
wscript.sleep(15*1000)
play("45")
play("seconde")
wscript.sleep(15*1000)
play("30")
play("seconde")
wscript.sleep(15*1000)
play("15")
play("seconde")
wscript.sleep(5*1000)
for i to 1 step -1
play(cstr(i))
wscript.sleep(1000)
next
WshShell.Run "rundll32.exe user32.dll,LockWorkStation"
-----------------
Dans le genre trucs marrant, tu pourrais piloter l'agent Microsoft.
Avoir, par exemple, Merlin qui vient annoncer "disparition de windows
dans 15 secondes", accompagné des animations adéquates, ça a un charme
certain...
Sinon, le .HTA, c'était juste une idée comme une autre.
@-salutations
Michel Claveau
écrivait ceci:
J'y avais pas pensé ! Celà dit comme la plupart des jeux prennent le
contrôle de l'écran :-S sans parler de ceux qui ne réinitialisent pas
l'écran après un basculement...
En tout cas dès que j'ai du temps pour ça je vais sûrement jouer avec
les agents MS. Je les avais complêtement oubliés...
Si tu as installé PowerShell sur ton poste, tu peux également utiliser le
script out-voice que j'avais écrit il y a fort longtemps, toujours
disponible sur mon blog:
http://janel.spaces.live.com/blog/cns!9B5AA3F6FA0088C2!148.entry
Jacques
Salut Jacques,
Faudrait que j'y jete un oeil un jour à PowerShell depuis que j'en
entend parler... mais j'ai déjà tant de langages différents à
utiliser... Et puis, j'aime bien le concept de faire avec l'existant
commun à tous.
Question subsidiaire à mon script initial :
Le script se lance à l'ouverture de session (lien dans démarrage), donc
si déverouille la session (pour permettre la sauvegarde du jeu en
cours) le script n'est plus relancé.
Y a t'il un moyen pour le lancer à la validation du mot de passe ?
Il peut aussi utiliser sapi sous vbscript, jscript ou tout langage
donnant accès aux objets com.
Amicalement,
--
Jean - JMST
Belgium
On peut aussi utiliser l'ocx media player.
Amicalement,
--
Jean - JMST
Belgium
Il me semblait bien, mais j'ai eu la flemme de vérifier :-). Merci pour la
précision.
Jacques