Jak automaticky spustit program?
Moderátoři: Alisczech, RadimSvidrnoch, emkei, MichalM.Mac, Streeter, Renik, zmiy, dandas
Jak automaticky spustit program?
Potřeboval bych, aby se mi po aktivaci spořiče obrazovky automaticky spustil program a aby to bylo takhle aktivní vždycky, i po restartu počítače, prostě abych to jednou nastavil a od té doby se to tak dělalo vždycky. Napadlo mě, že by se pro to asi měl použít Automator, ale já s ním ještě neměl tu čest. Poradíte, prosím, přesný postup, co a jak udělat? Děkuji.
- MichalM.Mac
- Příspěvky: 3342
- Registrován: 30 črc 2012 11:03
- Kontaktovat uživatele:
Re: Jak automaticky spustit program?
Tohle by bývalo bylo řešení http://www.themcdonalds.net/richard/ind ... StartSaver
Bohužel nefunguje na 10.8
Bohužel nefunguje na 10.8
Re: Jak automaticky spustit program?
Fňuk A nevíš o něčem, co na 10.8 funguje? Hrál jsem si totiž s Automatorem a buď jsem to nastavil špatně nebo to nejde tak, jak bych potřeboval...
- MichalM.Mac
- Příspěvky: 3342
- Registrován: 30 črc 2012 11:03
- Kontaktovat uživatele:
Re: Jak automaticky spustit program?
Screensaver lze pustil manuálně.
'/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app'
Bude třeba skriptovat. Nenapadá mě, jak to vše udělat v automatoru (např. akce open application neumožňuje spustit ScreenSaverEngine.app(je zašedlá))
------------------
#!/bin/zsh
open '/Applications/TVOJE_APLIKACE.app'
open '/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app'
-----------------
+ bude ho to chtít obohatit o konrolování idle time viz -> http://hintsforums.macworld.com/archive ... 85683.html
potom mu dej právo pro spuštění -> chmod +x "iScript.zsh"
Nakonec je potřeba naplánovat spouštění skriptu. Buď použiješ launchd nebo cron
Pokud se ti to dotho nechce, je tu cool GUI aplikace na MAS - lingon 3
'/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app'
Bude třeba skriptovat. Nenapadá mě, jak to vše udělat v automatoru (např. akce open application neumožňuje spustit ScreenSaverEngine.app(je zašedlá))
------------------
#!/bin/zsh
open '/Applications/TVOJE_APLIKACE.app'
open '/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app'
-----------------
+ bude ho to chtít obohatit o konrolování idle time viz -> http://hintsforums.macworld.com/archive ... 85683.html
potom mu dej právo pro spuštění -> chmod +x "iScript.zsh"
Nakonec je potřeba naplánovat spouštění skriptu. Buď použiješ launchd nebo cron
Pokud se ti to dotho nechce, je tu cool GUI aplikace na MAS - lingon 3
Re: Jak automaticky spustit program?
Že jde screensaver spustit manuálně vím, mám na něj zástupce v docku
Jestli jsem to pochopil správně, tak tento skript mi spustí screensaver a tu aplikaci, ano? To by ale znamenalo, že bych musel v nastavení vypnout spouštění screensaveru a nějak zařídit, aby se třeba po deseti minutách nečinnosti spustil tento skript. To zařídím jak? Nevím totiž, co je launchd nebo cron, nikdy jsem se s tím nesetkal.
Ten Lingon 3 vypadá podle popisu dobře, jsi si jistý, že by dělal to, co potřebuji? $2.99 USD není zase tak moc, ale přesto bych je nerad jen tak vyhodil. Navíc podle hodnocení nic moc. Škoda, že Apple neumožňuje časově omezenou trial verzi...
edit: Tak jsem trochu pátral a zjistil jsem, že mnohem lepší je Lingon 2.2.1, jenže stejně netuším, jak v něm nastavit, aby se ten program spustil po aktivaci screensaveru. V klikací nabídce to není, možná by to šlo přes expertní režim (tam se edituje jakýsi XML soubor nebo co), ale to neumím...
Jestli jsem to pochopil správně, tak tento skript mi spustí screensaver a tu aplikaci, ano? To by ale znamenalo, že bych musel v nastavení vypnout spouštění screensaveru a nějak zařídit, aby se třeba po deseti minutách nečinnosti spustil tento skript. To zařídím jak? Nevím totiž, co je launchd nebo cron, nikdy jsem se s tím nesetkal.
Ten Lingon 3 vypadá podle popisu dobře, jsi si jistý, že by dělal to, co potřebuji? $2.99 USD není zase tak moc, ale přesto bych je nerad jen tak vyhodil. Navíc podle hodnocení nic moc. Škoda, že Apple neumožňuje časově omezenou trial verzi...
edit: Tak jsem trochu pátral a zjistil jsem, že mnohem lepší je Lingon 2.2.1, jenže stejně netuším, jak v něm nastavit, aby se ten program spustil po aktivaci screensaveru. V klikací nabídce to není, možná by to šlo přes expertní režim (tam se edituje jakýsi XML soubor nebo co), ale to neumím...
- MichalM.Mac
- Příspěvky: 3342
- Registrován: 30 črc 2012 11:03
- Kontaktovat uživatele:
Re: Jak automaticky spustit program?
Pointa je, že nebudeš řešit jak spustit aplikaci po screensaveru, ale že screesaver a aplikaci spustí skript. V tom odkazu se řeší, jak zjistit idle time (čas bez interakce uživatele).
launchd slouží k automatickému spouštění démonů a jiných prográmků na pozadí. Můžeš nastudovat zde:
https://developer.apple.com/library/mac ... ction.html
https://developer.apple.com/library/mac ... dJobs.html
https://developer.apple.com/library/mac ... dJobs.html
Není to v zásadě nic extra komplikovaného. Není vyžadováno programování. Stačí vytvořit XML soubor, kde bude cesta ke skriptu a informace, jak často ho spouštět a to XML pak uložit do ~/Library/LaunchAgents nebo /Library/LaunchDeamons
Lingon je jen pěkná aplikace, která to umožňuje naklikat (ta verze 3 to nejspíš dělá jinak, protož MAS ale fuknce je stejná)
Každých X minut ti lingon nebo launch spustí tvůj script, který se podívá, jaký je idle time. Pokud bude idle time větší než Y, script spustí screensaver a požadovanou aplikaci.
launchd slouží k automatickému spouštění démonů a jiných prográmků na pozadí. Můžeš nastudovat zde:
https://developer.apple.com/library/mac ... ction.html
https://developer.apple.com/library/mac ... dJobs.html
https://developer.apple.com/library/mac ... dJobs.html
Není to v zásadě nic extra komplikovaného. Není vyžadováno programování. Stačí vytvořit XML soubor, kde bude cesta ke skriptu a informace, jak často ho spouštět a to XML pak uložit do ~/Library/LaunchAgents nebo /Library/LaunchDeamons
Lingon je jen pěkná aplikace, která to umožňuje naklikat (ta verze 3 to nejspíš dělá jinak, protož MAS ale fuknce je stejná)
Každých X minut ti lingon nebo launch spustí tvůj script, který se podívá, jaký je idle time. Pokud bude idle time větší než Y, script spustí screensaver a požadovanou aplikaci.
- MichalM.Mac
- Příspěvky: 3342
- Registrován: 30 črc 2012 11:03
- Kontaktovat uživatele:
Re: Jak automaticky spustit program?
Teď jsem si to cvičně vyzkoušel, protože se nudim, marodim a vůbec jsem hodný na Mac uživatele )
Script v bash např. iScript.bash
Poznámky:
idletime v sekundách udává čas bez interakce uživatele <- to budeš chtít upravit
do if bloku si můžeš dát libovolné příkazy. Třeba jen nahraď iPhoto.app za jinou libovolnou aplikaci
scriptu MUSÍŠ dát právo pro spuštění -> napíše do terminálu: chmod +x /KOMPLET/CESTA/KE/SCRIPTU/iScript.bash
Launchd položka /Library/LaunchAgents/com.screensaver.iscript.plist
Poznámky:
Nezapomeň upravit cestu ke scriptu
StartInterval říká, jak často spouštět skript (v sekundách). Též budeš chít změnit.
Script v bash např. iScript.bash
Kód: Vybrat vše
#!/bin/bash
idl=$"`ioreg -c IOHIDSystem | awk '/HIDIdleTime/ {print int($NF/1000000000); exit}'`"
let idletime="20"
if [ $idl -gt $idletime ]; then
open '/Applications/iPhoto.app'
open '/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app'
fi
idletime v sekundách udává čas bez interakce uživatele <- to budeš chtít upravit
do if bloku si můžeš dát libovolné příkazy. Třeba jen nahraď iPhoto.app za jinou libovolnou aplikaci
scriptu MUSÍŠ dát právo pro spuštění -> napíše do terminálu: chmod +x /KOMPLET/CESTA/KE/SCRIPTU/iScript.bash
Launchd položka /Library/LaunchAgents/com.screensaver.iscript.plist
Kód: Vybrat vše
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.screensaver.iscript</string>
<key>ProgramArguments</key>
<array>
<string>/KOMPLET/CESTA/KE/SCRIPTU/iScript.bash</string>
</array>
<key>StartInterval</key>
<integer>10</integer>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Nezapomeň upravit cestu ke scriptu
StartInterval říká, jak často spouštět skript (v sekundách). Též budeš chít změnit.