清空idle进程
property ticsSinceActive : 0
property idleTime : 60 -- time to idle, in seconds
property timeLimit : 10 -- memory range, in minutes
property cpuUsage : {}
on idle
set maxTicCount to timeLimit * 60 / idleTime
tell application "System Events"
if exists (some process whose name contains "Illustrator") then
-- get reference to the app
set theIllustratorApp to some process whose name contains "Illustrator"
else
-- illustrator is not running
set ticsSinceActive to 0
set cpuUsage to {}
return
end if
set illustratorPID to unix id of theIllustratorApp
-- check if illustrator is inactive
if frontmost of theIllustratorApp is true then
set ticsSinceActive to 0
else
set ticsSinceActive to ticsSinceActive + 1
end if
-- take a running snapshot of cpu usage
set shellCmd to "ps -c -o %cpu='' -p " & illustratorPID
set end of cpuUsage to (do shell script shellCmd) as number
if (count of cpuUsage) is greater than maxTicCount then
-- trim off items more than 10 minutes old
set cpuUsage to items ((count of cpuUsage) - maxTicCount + 1) thru -1 of cpuUsage
end if
set maxCpu to 0
set aveCpu to 0
repeat with thisBit in cpuUsage
if thisBit > maxCpu then setmaxCpu to thisBit
set aveCpu to aveCpu + thisBit
end repeat
set aveCpu to aveCpu / (count of cpuUsage)
if ticsSinceActive > maxTicCount or maxCpu < 3 or aveCpu < 3 then
tell theIllustratorApp
activate
display alert "Shutting down Illustrator" message "Illustrator has been inactive for 10 minutes. Please verify that you are still using this application, or the system will shut it down." as critical buttons {"Close it", "Keep it running"} default button 1 giving up after 30
if button returned of the result is "Close it" or gave up of the result is true then
repeat 60 times
if exists document 1 then
close document 1 saving no
else
exit repeat
end if
end repeat
quit
else
set ticsSinceActive to 0
end if
end tell
end if
end tell
return idleTime
end idle
set backupFolder to (choose folder)
tell application "Finder" to set theseFolders to (get folders of backupFolder)
repeat with oneFolder in theseFolders
if (creation date of (info for oneFolder as alias) < (current date) - 30 * days) then
tell application "Finder" to delete oneFolder
end if
end repeat
检查程序是否运行
global wasLoaded
on run
set wasLoaded to isAppLoaded("Safari")
idle
end run
on idle
set x to isAppLoaded("Safari")
if x and not wasLoaded then
display dialog "Safari was loaded."
set wasLoaded to true
else if wasLoaded and not x then
display dialog "Safari was quit."
set wasLoaded to false
end if
return 1 --will wait 1 second before checking again
end idle
on isAppLoaded(app_name)
tell application "System Events"
set app_list to every application process whose name contains app_name
if the (count of app_list) > 0 then
return true
else
return false
end if
end tell
end isAppLoaded
自动把解压的文件放到Movie目录去
on adding folder items to this_folder after receiving added_items
delay 0.2
set this_folder to alias "Liz's MBP:Users:liz:Downloads:Extract:"
set target_folder to alias "Liz's MBP:Users:liz:Movies:"
set fileList to {}
set fileList to my recursiveSearch(fileList, this_folder)
tell application "Finder"
repeat with aItem in fileList
if name extension of aItem is in {"avi", "wmv", "srt", "idx", "sub", "mkv"} then
if aItem exists then
move aItem to target_folder
end if
end if
end repeat
end tell
end adding folder items to
on recursiveSearch(theList, currentFolder)
tell application "Finder"
set theList to theList & (every file of currentFolder)
set folderList to (every folder of currentFolder)
repeat with newFolder in folderList
set theList to my recursiveSearch(theList, newFolder)
end repeat
return theList
end tell
end recursiveSearch
删除空文件夹
--script to find empty folders and delete them
set pathoffolder to alias "Liz's MBP:Users:liz:Downloads:Extract:"
--change folder here
tell application "Finder"
repeat with oneFolder in (get folders of pathoffolder)
if (count items) of oneFolder is 0 or ((count items) of oneFolder is 1 and name of item 1 of oneFolder is ".DS_Store") then delete oneFolder
end repeat
end tell
分享到:
相关推荐
尽管在当前的IT行业中,AppleScript的应用范围相对有限,但在MacOS系统中,它仍然扮演着一个重要的角色,特别是在与苹果自家产品如Final Cut Pro和Logic Pro这类专业软件的集成使用中。 由于本部分内容受到OCR技术...
在JavaScript中,你将学到以下几个核心知识点: 1. **变量(Variables)**:变量是存储数据的地方,可以是数字、字符串或其他数据类型。在JavaScript中,声明变量使用`var`、`let`或`const`关键字,例如`var age = ...
正如标题《苹果脚本跟我学》所示,本文将提供一个AppleScript的入门教程,旨在让初学者快速上手并理解AppleScript的基本知识。 从描述中可以得知,这是一份专为AppleScript初学者准备的学习资料,其中不仅包含了...
我们将涵盖以下几个关键知识点: 1. **变量**:在Bash中,变量用于存储数据。声明变量时不需要指定类型,只需给变量赋值即可,例如:`name="John"`。要引用变量,需在其前加$符号,如:`echo $name`。 2. **命令行...
通过编写AppleScript脚本,你可以创建一个定时器来执行各种任务。以下是一个简单的例子,用于每隔5分钟显示一个警告消息: ```applescript set theTimer to current application's Timer tell theTimer set ...
在Mac OS X中,AppleScript可以用来模拟键盘和鼠标事件,而`pyobjc`库则为Python提供了与AppleScript的接口。另外,`pyautogui`同样支持Mac OS X平台。 除了编程语言的库之外,还有一些专门的工具,如AutoHotkey...
工作流应用是AppleScript或Automator的产物,它们允许用户组合不同的动作,如获取文件信息、运行脚本、拷贝文本等,创建出符合个人需求的定制化工具。"Get File Path into Clipboard.workflow"就是这样的一个例子,...
在Python开发中,这样的应用通常涉及到几个关键的知识点: 1. **API接口**:首先,你需要理解如何与iTunes和Spotify的API进行交互。这两个服务都提供了开发者API,允许外部程序获取播放状态、歌曲信息等。例如,...
在这个例子中,它实施了一种规约,那就是开始的引号必须和结束的引号相匹配.注意,如果反斜杠后跟随的数字比 代括号的子表达式数多,那么它就会被解析为一个十进制的转义序列,而不是一个引用.你可以坚持使用完整的三个...
关于字体设计,有几个重要的知识点: 1. 字形设计:每个字母、数字和符号都有其独特的形状,设计师需要考虑线条的流畅性、对比度、曲线和转角的处理,以创造独特的视觉效果。 2. 字体家族:一套完整的字体通常包括...
使用步骤通常包括以下几个部分: 1. 引入jQuery库和jQuery UI库,如`jquery-1.3.2.js`。这个版本的jQuery支持`ui.autocomplete`功能。 2. 在HTML中创建输入框元素,并为其指定一个唯一的ID,以便于在JavaScript中选...
它将连续的媒体内容分割成一系列的短小的数据块(通常为几秒或几十秒),并通过HTTP服务器分发,客户端可以按需请求这些数据块,实现流式播放。 **MediaElement.js框架** MediaElement.js是一个开源的HTML5和Flash...
Autocomplete插件提供了几个事件,允许开发者在特定时刻进行操作: - `search`: 当输入框的值变化并满足最小字符数时触发。 - `focus`: 用户在下拉列表中选择一个项时触发,但未点击确认。 - `select`: 用户选择了一...
- `minLength`: 设置用户输入至少几个字符后触发自动补全。 - `delay`: 控制在用户停止输入后多久触发自动补全请求。 - `select`: 用户选择一个建议项时触发的回调函数,可以在这里处理选定项的逻辑。 - `create`: ...
minLength: 2, // 用户输入至少几个字符后开始提示 delay: 300, // 延迟多久后发送请求 select: function(event, ui) { // 用户选择提示项后的回调函数 console.log(ui.item.value); } }); }); ``` 4. **数据...
HLS支持几种不同的加密标准,如AES-128(Advanced Encryption Standard)块级加密,其中每个TS片段都被一个密钥加密。HLS.js库本身并不直接处理加密,但可以配合服务器端的加密机制,通过获取加密密钥(通常存储在...
1. **事件监听**:Listnav 提供了几个内置的事件,如`beforeFilter`和`afterFilter`,可用于在筛选前后执行额外的操作。 2. **自定义模板**:如果需要更改默认的字母导航样式,可以通过CSS自定义,或者使用插件提供...
- `minLength`: 用户至少输入几个字符后触发补全功能,默认为 1。 - `delay`: 在用户停止输入后多长时间触发补全请求,默认为 300 毫秒。 - `appendTo`: 指定补全下拉框的位置,默认插入到输入框的父元素中。 - `...
m3u8文件将视频分为多个小段,每个段通常为几秒的时长。这种分段方式允许视频流根据用户的网络条件动态调整码率,提供更好的播放体验。这种技术被称为适应性流,可以确保视频在不同网络环境下流畅播放。 总结,m3u8...