Aide AppleScript

r e m y

Cas clinique
Club MacG
4 Novembre 2000
41 479
4 261
58
St Germain en Laye - FRANCE
J'ai écrit un petit script pour lancer un jeu.

Ce script consiste à monter l'image-disk du CD (en désactivant le controle de Cheksum), puis à monter le niveau sonore à 5, puis à lancer le jeu.

Est-il possible (et si oui comment?), de forcer le niveau sonore à revenir au niveau initial lorsque je quitte le jeu...
 

zacromatafalgar

Membre émérite
Oui oui, j'ai bien vu la date du post…

Tu récupère le volume avant de le modifier, tu le modifie puis tu le rétabli à la valeur initiale ce qui donne :

Bloc de code:
--récupérer le volume actuel
set volOut to output volume of (get volume settings)

--met le volume à fond
set volume output volume 100

--rétabli le volume initial
set volume output volume volOut
 

r e m y

Cas clinique
Club MacG
4 Novembre 2000
41 479
4 261
58
St Germain en Laye - FRANCE
Mais ça suppose que le script reste en tâche de fond durant tout le temps du jeu en surveillant si le jeu est toujours actif, puis quand on a quitté le jeu, le script doit détecter que le jeu n'est plus un process actif pour remettre le son au niveau mémorisé....

Allez, je te laisse à nouveau 7 ans pour trouver la solution

Rendez-vous en Octobre 2015 ;)

Bon, puisque ça n'a pas été fait en 2001, je profite que le topic remonte pendant que je suis "en activité" pour le déplacer dans le bon forum (qui n'existait peut-être pas à l'époque) !
 

zacromatafalgar

Membre émérite
Bon alors voilà, je l'ai fait avec iTunes, soit en utilisant "on idle" ou bien avec une boucle "repeat" (que j'ai désactivé dans le code). Je l'ai enregistré au format application en veillant à cocher la case "Rester en arrière plan… ;)
Bloc de code:
property volOut : missing value
property okToQuit : false

on run
	
	set volOut to output volume of (get volume settings)
	set volume output volume 100
	tell application "iTunes"
		play
	end tell
	delay 10
	(*
		repeat
			testApp()
			if not okToQuit then
				delay 3
			else
				set volume output volume volOut
				exit repeat
			end if
		end repeat
	quit *)
end run

on idle
	testApp()
	if not okToQuit then
		return 3
	else
		set volume output volume volOut
		quit
	end if
end idle

on testApp()
	tell application "System Events"
		set appliOuvertes to name of (every application process whose name contains "iTunes")
	end tell
	if "iTunes" is not in appliOuvertes then
		set okToQuit to true
	end if
end testApp
 

r e m y

Cas clinique
Club MacG
4 Novembre 2000
41 479
4 261
58
St Germain en Laye - FRANCE
Wahou.... trop fort! :up: :up:

Un très grand merci

Ca valait le coup d'attendre 7 ans