我正在嘗試爲Mac App Store創建一個應用程序,用於在用戶設置時間後關閉/休眠Mac。我曾嘗試使用AppleScript,但如果我要在沙盒模式中使用它,那麼這將不起作用,我曾嘗試向Google提供解決方案,但似乎無法解決此問題。以編程方式關閉或睡眠沙盒應用程序Mac
希望有人能給我一個提示或鏈接到相關文件。
編輯:使它更精確到我的願望。
我正在嘗試爲Mac App Store創建一個應用程序,用於在用戶設置時間後關閉/休眠Mac。我曾嘗試使用AppleScript,但如果我要在沙盒模式中使用它,那麼這將不起作用,我曾嘗試向Google提供解決方案,但似乎無法解決此問題。以編程方式關閉或睡眠沙盒應用程序Mac
希望有人能給我一個提示或鏈接到相關文件。
編輯:使它更精確到我的願望。
有沒有辦法做到這一點。你可能試圖獲得一個暫時的例外,通過BSD層運行「關機」或「暫停」,但我懷疑這樣的應用程序會通過App Store審查,因爲這些任務需要超級用戶/管理員權限。
我寫了一個腳本。但我不知道它是否仍然有效。也許它至少給了你一條線索。睡眠仍然有效 - 如果程序阻止關機,關機可能會導致問題。
(不是最漂亮的代碼,但它爲我工作。)
#/bin/sh
#v1.0.0
#by Sapphire
echo "-----------------------------------------------------"
echo "* Sleep Timer *"
echo "-----------------------------------------------------"
echo "Please enter option: Sleep '1' or shutdown '0'"
echo -n "Option: "
read option
while :
do
if [ $option -eq 1 -o $option -eq 0 ]
then
break
fi
echo "<<ERROR: Only number: 1 or 0 allowed...>>"
echo "Please rnter option: Sleep '1' or shutdown '0'"
echo -n "Option: "
read option
done
echo "Please enter countdown (min):"
echo -n "Minutes: "
read shutDown
while :
do
if [ $shutDown -gt 0 -a $var -eq $var 2> /dev/null ]
then
break
fi
echo "<<ERROR: Positive number expected...>>"
echo "Please enter countdown (min):"
echo -n "Minutes: "
read shutDown
done
echo "*****************************************************"
echo "Counter has been started"
echo "'/!\ Kill countdown with CTRL-C /!\'"
echo -n "Envoking command in: "
date +"%H:%M %Z"
echo "*****************************************************"
if [ $option -eq 0 ]
then
echo "Shutdown in: "
fi
if [ $option -eq 1 ]
then
echo "Sleep in: "
fi
echo -e "\n *------------------------------* "
barCounter=0;
counter=0
((timeBarSize=$shutDown * 2))
bar="||||||||||||||||||||||||||||||"
barEmpty=" "
((flag=0))
for ((i=shutDown*60;i>=0;i--));
do
if ((counter >= timeBarSize))
then
((counter=0))
((barCounter=$barCounter + 1))
fi
((counter=$counter + 1))
((timehh=$i/3600))
((timemm=$i/60 - timehh*60))
((timess=$i - timemm*60 - timehh*3600))
if ((flag == 1))
then
echo $(tput cuu1)$(tput el)$(tput cuu1)$(tput el)$(tput cuu1)$(tput el)$(tput cuu1)$(tput el)$(tput cuu1)
fi
((flag=1))
echo -e " | $timehh:$timemm:$timess |"
echo -e "\r *------------------------------* "
echo -e "\r *${bar:0:$barCounter}${barEmpty:$barCounter:30}* "
echo -e "\r *------------------------------* "
sleep 1;
done
if [ $option -eq 1 ]
then
echo "Going to sleep..."
sleep 1
osascript -e 'tell application "System Events" to sleep'
elif [ $option -eq 0 ];
then
echo "Shutting down..."
sleep 1
osascript -e 'tell application "System Events" to shut down'
else
echo "No valid command found... doing nothing!"
fi
我也不得不加入這在我「的/ etc/sudoers文件」文件(注意,如果你不知道如何處理這個文件! - >谷歌):
# Custom privilege
myUser ALL=NOPASSWD: /Users/myUser/Documents/sleepTimer.sh
你可以使用:abort(); – klcjr89
我不認爲abort()會關閉或從我的應用程序中休眠Mac,而這正是我試圖完成的任務。 – Malmo
你只提到關閉或睡覺的應用程序,而不是實際的計算機,所以我不知道。 – klcjr89