AppleScript et alimentation

  • Créateur du sujet Créateur du sujet Membre supprimé 2
  • Date de début Date de début
M

Membre supprimé 2

Invité
Est-ce que AppleScript sait reconnaitre d'une manière ou d'une autre si l'alimentation de mon iBook est connectée ou pas ?


J'aimerais ajouter une fonction a mon script qui régisse selon si le mac est sous batteries ou sur alimentation,...

Est-ce possible ????
Merci d'avance !
 
Est-ce que AppleScript sait reconnaitre d'une manière ou d'une autre si l'alimentation de mon iBook est connectée ou pas ?


J'aimerais ajouter une fonction a mon script qui régisse selon si le mac est sous batteries ou sur alimentation,...

Est-ce possible ????
Merci d'avance !
up s'il vous plais.

Bien que ce message date de quatre ans, je suis aujourd'hui avec un MacBook Alu et le même problème ; quelqu'un aurait une réponse?
 
Malheureusment ton script indique une erreur à son lancement.
N'en existe-t-il pas un beaucoup, beaucoup, beaucoup (beaucoup) plus simple tel que :

if power_mode is current_power then
tell application iTunes (exemple) to play (exemple)
end if

?
 
Malheureusment ton script indique une erreur à son lancement.
N'en existe-t-il pas un beaucoup, beaucoup, beaucoup (beaucoup) plus simple tel que :

if power_mode is current_power then
tell application iTunes (exemple) to play (exemple)
end if

?

non mais je pourrais t'ecrire un simple prog/lib/plugin iokit based et si tu veux bind un applescript dict dessus?

si t'es partant j'ouvre un petit projet sur google code
je fais le C tu fais le dict applescript?
 
Cher(e) Tatouille,
Voici en trois point ma réponse à ce dans quoi tu veux m'embarquer:

1. je n'y connais rien en Prog/Java things ;
2. j'ai une folle envie de m'y lancer ;
3. il me faudrait malheureusement beaucoup de temps pour pouvoir faire quelque chose de ce que tu me propose.

En conclusion "Oui" je suis très partant pour ton I/O Kit, mais je ne sais pas dans combien de temps je cesserai d'êrte perdu avec ce que tu m'auras offert. Donc : Merci d'avance!
 
ca tombe bien je fais pas de java et la dessus cela serait du C obj-c :D
apres definir la grammaire applescript ce n'est pas vraiment de la prog
mais surtout de la logique :)
 
A première vue le script mis en lien par tatouille ne marche pas sous léopard...
la commande qui semble ne rien donner est la suivante
Bloc de code:
set the_vals to (do shell script "ioreg -p IODeviceTree -n battery -w 0| grep IOBatteryInfo |cut -d'{' -f2 | cut -d'}' -f1 | tr -d '\"' | tr , '\\n'")'s paragraphs
 
A première vue le script mis en lien par tatouille ne marche pas sous léopard...
la commande qui semble ne rien donner est la suivante
Bloc de code:
set the_vals to (do shell script "ioreg -p IODeviceTree -n battery -w 0| grep IOBatteryInfo |cut -d'{' -f2 | cut -d'}' -f1 | tr -d '\"' | tr , '\\n'")'s paragraphs

c'est normal ppc api
 
malheureusement non faudrait trouver le shell script équivalent sous intel/UB (ne suis pas encore à ce niveau là) et voir s'il ne faut pas adapter le reste de l'applescript en fonction des résultats.
 
malheureusement non faudrait trouver le shell script équivalent sous intel/UB (ne suis pas encore à ce niveau là) et voir s'il ne faut pas adapter le reste de l'applescript en fonction des résultats.

tu as un besoin d'ecrire un bridge comme je l'ai propose pour lire la table SMC pour acceder
aux Intel CPU sensors,

IOServiceMatching("AppleSMC")

les clefs interessantes etant from Tp1P to Tp5P ce qui renseignera si tu es sur battery ou bien power adaptater (et accessoirement temperature) ensuite recuperer le % de charge c'est easy

tu ne pourras pas y acceder depuis la table ioreg elle te montre uniquement l'arbre d'entre pour SMC
 
Bien, voici ce que j'ai trouvé dans une application datant de 2006 :


tell application "Finder"
set yourDisk to (name of startup disk)
end tell

repeat
--Get current power source
set origSettings to do shell script "pmset -g"
set settingsList to the paragraphs of origSettings
set powerType to ""
--Go through each line looking which power source is being used
repeat with settingLine in settingsList
if settingLine ends with "*" then
if settingLine begins with "AC Power" then
set this_time to "AC Power"
else
set this_time to "Battery"
end if
end if
end repeat

--If the power source has changed, call up a subroutine based on the new power source
if this_time ≠ last_time then
if this_time = "AC Power" then AC()
if this_time = "Battery" then Battery()
end if
set last_time to this_time
delay 1
end repeat

--Subroutine for AC power
on AC()
try
tell application "exemple" to start
on error the error_message number the error_number
beep
end try

end AC

--Subroutine for battery power
on Battery()
try
tell application "exemple" to quit
end tell
on error the error_message number the error_number
beep
end try
end Battery



cela marche parfaitement, j'éspère que d'autres seront intéressés.
 
Bloc de code:
pmset -g batt 

-InternalBattery-0    97%; charging; (no estimate)

-InternalBattery-0    97%; AC attached; not charging

 -InternalBattery-0    98%; charging; 0:22 remaining

i guess tu nes pas branche dans ce cas

-InternalBattery-0    97%; discharging; (no estimate)

pas teste tout les messages possibles
Bloc de code:
pmset -g | grep "Battery Power" | awk '{print $3}'
Bloc de code:
pmset -g | grep "AC Power" | awk '{print $3}'