`
robinqu
  • 浏览: 90396 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

网上的几个applescript例子

    博客分类:
  • mac
阅读更多
清空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
分享到:
评论

相关推荐

    applescript简明基础教程

    尽管在当前的IT行业中,AppleScript的应用范围相对有限,但在MacOS系统中,它仍然扮演着一个重要的角色,特别是在与苹果自家产品如Final Cut Pro和Logic Pro这类专业软件的集成使用中。 由于本部分内容受到OCR技术...

    简单的JAVA SCRIPT 例子

    在JavaScript中,你将学到以下几个核心知识点: 1. **变量(Variables)**:变量是存储数据的地方,可以是数字、字符串或其他数据类型。在JavaScript中,声明变量使用`var`、`let`或`const`关键字,例如`var age = ...

    苹果脚本跟我学

    正如标题《苹果脚本跟我学》所示,本文将提供一个AppleScript的入门教程,旨在让初学者快速上手并理解AppleScript的基本知识。 从描述中可以得知,这是一份专为AppleScript初学者准备的学习资料,其中不仅包含了...

    shellbash script基础入门及例子(附代码)持续更新

    我们将涵盖以下几个关键知识点: 1. **变量**:在Bash中,变量用于存储数据。声明变量时不需要指定类型,只需给变量赋值即可,例如:`name="John"`。要引用变量,需在其前加$符号,如:`echo $name`。 2. **命令行...

    mac定时器的使用

    通过编写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...

    MAC Get File Path(mac拷贝文件路径)

    工作流应用是AppleScript或Automator的产物,它们允许用户组合不同的动作,如获取文件信息、运行脚本、拷贝文本等,创建出符合个人需求的定制化工具。"Get File Path into Clipboard.workflow"就是这样的一个例子,...

    Python-sendslackawaymusicnotificationsfromitunesorspotify

    在Python开发中,这样的应用通常涉及到几个关键的知识点: 1. **API接口**:首先,你需要理解如何与iTunes和Spotify的API进行交互。这两个服务都提供了开发者API,允许外部程序获取播放状态、歌曲信息等。例如,...

    正则表达式

    在这个例子中,它实施了一种规约,那就是开始的引号必须和结束的引号相匹配.注意,如果反斜杠后跟随的数字比 代括号的子表达式数多,那么它就会被解析为一个十进制的转义序列,而不是一个引用.你可以坚持使用完整的三个...

    KellyBrown

    关于字体设计,有几个重要的知识点: 1. 字形设计:每个字母、数字和符号都有其独特的形状,设计师需要考虑线条的流畅性、对比度、曲线和转角的处理,以创造独特的视觉效果。 2. 字体家族:一套完整的字体通常包括...

    jquery自动补全插件

    使用步骤通常包括以下几个部分: 1. 引入jQuery库和jQuery UI库,如`jquery-1.3.2.js`。这个版本的jQuery支持`ui.autocomplete`功能。 2. 在HTML中创建输入框元素,并为其指定一个唯一的ID,以便于在JavaScript中选...

    HLS-demo:一个简单的HLS视频播放例子

    它将连续的媒体内容分割成一系列的短小的数据块(通常为几秒或几十秒),并通过HTTP服务器分发,客户端可以按需请求这些数据块,实现流式播放。 **MediaElement.js框架** MediaElement.js是一个开源的HTML5和Flash...

    Jquery autocomplete插件使用

    Autocomplete插件提供了几个事件,允许开发者在特定时刻进行操作: - `search`: 当输入框的值变化并满足最小字符数时触发。 - `focus`: 用户在下拉列表中选择一个项时触发,但未点击确认。 - `select`: 用户选择了一...

    jquery 实现autocomplete效果

    - `minLength`: 设置用户输入至少几个字符后触发自动补全。 - `delay`: 控制在用户停止输入后多久触发自动补全请求。 - `select`: 用户选择一个建议项时触发的回调函数,可以在这里处理选定项的逻辑。 - `create`: ...

    Jquery-Ui自动提示

    minLength: 2, // 用户输入至少几个字符后开始提示 delay: 300, // 延迟多久后发送请求 select: function(event, ui) { // 用户选择提示项后的回调函数 console.log(ui.item.value); } }); }); ``` 4. **数据...

    HLS.js加密

    HLS支持几种不同的加密标准,如AES-128(Advanced Encryption Standard)块级加密,其中每个TS片段都被一个密钥加密。HLS.js库本身并不直接处理加密,但可以配合服务器端的加密机制,通过获取加密密钥(通常存储在...

    jquery listnav插件--按字母顺序过滤列表

    1. **事件监听**:Listnav 提供了几个内置的事件,如`beforeFilter`和`afterFilter`,可用于在筛选前后执行额外的操作。 2. **自定义模板**:如果需要更改默认的字母导航样式,可以通过CSS自定义,或者使用插件提供...

    jquery.autocomplete实例

    - `minLength`: 用户至少输入几个字符后触发补全功能,默认为 1。 - `delay`: 在用户停止输入后多长时间触发补全请求,默认为 300 毫秒。 - `appendTo`: 指定补全下拉框的位置,默认插入到输入框的父元素中。 - `...

    m3u8格式上视频在HTML网页的播放

    m3u8文件将视频分为多个小段,每个段通常为几秒的时长。这种分段方式允许视频流根据用户的网络条件动态调整码率,提供更好的播放体验。这种技术被称为适应性流,可以确保视频在不同网络环境下流畅播放。 总结,m3u8...

Global site tag (gtag.js) - Google Analytics