Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Books
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

タグ: 10.13savvy

テキストをTTSで読み上げて所要時間を算出 v2.1(CotEditor版)

Posted on 2月 6, 2018 by Takaaki Naganoya

指定のテキストをTTS(Text To Speech)音声で読み上げ、読み上げ所要時間を計算するAppleScriptです。

実時間をかけて読み上げるのではなく、ファイルに対して音声レンダリングしたデータを書き込む動作をsayコマンドで行うため、読み上げ実時間よりも短い時間で動作を完了します。

読み上げ速度を遅いパターンと速いパターンで個別に音声レンダリングして所要時間のシミュレーションを行ったり、Keynoteのプレゼン資料のすべてのテキスト要素を読み上げ所要時間のシミュレーションを行なって、資料の枚数が多すぎるとか少なすぎるといった判断を行なっています(与えられた時間よりも多い資料を発表することはできないので)。

とくに、プレゼン発表に不慣れな人は発表資料のページを多くしがち&1ページあたりの文字数を多くしがちなので、sayコマンドによる読み上げシミュレーションで「この発表時間に対して要素が多すぎるのでは?」といった話をします。

AppleScript名:テキストをTTSで読み上げて所要時間を算出 v2.1(CotEditor版)
— Created 2018-01-10 by Takaaki Naganoya
— 2018 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "AVFoundation"
use framework "AppKit"
–http://piyocast.com/as/archives/5113

property |NSURL| : a reference to current application’s |NSURL|
property NSDate : a reference to current application’s NSDate
property NSUUID : a reference to current application’s NSUUID
property NSFileManager : a reference to current application’s NSFileManager
property AVAudioPlayer : a reference to current application’s AVAudioPlayer
property NSDateFormatter : a reference to current application’s NSDateFormatter
property NSSpeechSynthesizer : a reference to current application’s NSSpeechSynthesizer

set str3 to getEditorText() of me
if str3 = false then return

set aVoice to "Kyoko"

–Check existence of TTS Voice name
set vList to retAvailableTTSnames() of me
if aVoice is not in vList then error "Wrong TTS Voice Name"

set d1 to readTextByTTSVoiceAndReturnDuration(str3, aVoice, 180) of me –aSpeedRate is "Words per minute. 180 to 220"
set d2 to readTextByTTSVoiceAndReturnDuration(str3, aVoice, 220) of me

set outStr to (formatHMS(d1) of me & "/180 words per minute") & return & (formatHMS(d2) of me & "/220 words per minute") & return
tell application "CotEditor"
  activate
  
write to console outStr
end tell

on readTextByTTSVoiceAndReturnDuration(aStr as string, aVoice as string, aSpeedRate as integer)
  set aUUID to NSUUID’s UUID()’s UUIDString() as string
  
–set aPath to (((path to temporary items from user domain) as string) & aUUID & ".aif")
  
set aPath to (((path to desktop) as string) & aUUID & ".aif")
  
set aPOSIX to POSIX path of aPath
  
  
tell current application
    say aStr using aVoice saving to (aPOSIX) speaking rate aSpeedRate without waiting until completion
  end tell
  
  
repeat 100000 times
    set aExt to NSFileManager’s defaultManager()’s fileExistsAtPath:aPOSIX
    
if aExt as boolean = true then exit repeat
    
delay "0.001" as real
  end repeat
  
  
if aExt = false then error "No Sound file"
  
  
set aDur to getDuration(aPath as alias) of me
  
try
    do shell script "rm -f " & quoted form of POSIX path of aPath
  end try
  
  
return aDur as real
end readTextByTTSVoiceAndReturnDuration

on getDuration(aFile)
  set aURL to |NSURL|’s fileURLWithPath:(POSIX path of aFile)
  
  
repeat 1000 times
    set aAudioPlayer to AVAudioPlayer’s alloc()’s initWithContentsOfURL:aURL |error|:(missing value)
    
set aRes to aAudioPlayer’s prepareToPlay()
    
if aRes as boolean = true then exit repeat
    
delay 0.5
  end repeat
  
if aRes = false then error "TTS sound output failed"
  
  
set channelCount to aAudioPlayer’s numberOfChannels()
  
set aDuration to aAudioPlayer’s duration()
  
return aDuration as real
end getDuration

on retAvailableTTSnames()
  set outList to {}
  
  
set aList to NSSpeechSynthesizer’s availableVoices()
  
set bList to aList as list
  
  
repeat with i in bList
    set j to contents of i
    
set aInfo to (NSSpeechSynthesizer’s attributesForVoice:j)
    
set aInfoRec to aInfo as record
    
set aName to VoiceName of aInfoRec
    
set the end of outList to aName
  end repeat
  
  
return outList
end retAvailableTTSnames

on formatHMS(aTime)
  set aDate to NSDate’s dateWithTimeIntervalSince1970:aTime
  
set aFormatter to NSDateFormatter’s alloc()’s init()
  
  
—This formatter text is localized in Japanese.
  
if aTime < hours then
    aFormatter’s setDateFormat:"mm分ss秒"
  else if aTime < days then
    aFormatter’s setDateFormat:"HH時間mm分ss秒"
  else
    aFormatter’s setDateFormat:"DD日HH時間mm分ss秒"
  end if
  
  
set timeStr to (aFormatter’s stringFromDate:aDate) as string
  
return timeStr
end formatHMS

on getEditorText()
  tell application "CotEditor"
    if (count every document) = 0 then return false
    
tell front document
      return contents
    end tell
  end tell
end getEditorText

★Click Here to Open This Script 

Posted in System Text to Speech | Tagged 10.11savvy 10.12savvy 10.13savvy CotEditor | Leave a comment

システムにインストールされているTTS VoiceのID一覧を取得する

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:システムにインストールされているTTS VoiceのID一覧を取得する
— Created 2017-03-28 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "AppKit"

set vList to current application’s NSSpeechSynthesizer’s availableVoices() as list
–>  {​​​​​"com.apple.speech.synthesis.voice.Alex", ​​​​​"com.apple.speech.synthesis.voice.alice", ​​​​​"com.apple.speech.synthesis.voice.allison.premium", ​​​​​"com.apple.speech.synthesis.voice.alva", ​​​​​"com.apple.speech.synthesis.voice.amelie", ​​​​​"com.apple.speech.synthesis.voice.anna.premium", ​​​​​"com.apple.speech.synthesis.voice.audrey.premium", ​​​​​"com.apple.speech.synthesis.voice.ava.premium", ​​​​​"com.apple.speech.synthesis.voice.carmit", ​​​​​"com.apple.speech.synthesis.voice.damayanti", ​​​​​"com.apple.speech.synthesis.voice.daniel.premium", ​​​​​"com.apple.speech.synthesis.voice.diego", ​​​​​"com.apple.speech.synthesis.voice.ellen",……}

★Click Here to Open This Script 

Posted in System Text to Speech | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

OSにインストールされているTTS Voiceのうち指定言語をサポートするものを返す

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:OSにインストールされているTTS Voiceのうち指定言語をサポートするものを返す
— Created 2017-03-28 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "AppKit"

set aLoc to (current application’s NSLocale’s currentLocale()’s identifier()) as string
–>  "ja_JP"

set vList to getTTSVoiceNameWithLanguage(aLoc) of me
–>  {​​​​​"Kyoko", ​​​​​"Otoya"​​​}

set vIDs to getTTSVoiceIDWithLanguage(aLoc) of me
–>  {​​​​​"com.apple.speech.synthesis.voice.kyoko.premium", ​​​​​"com.apple.speech.synthesis.voice.otoya.premium"​​​}

set anID to getTTSVoiceIDWithName("Kyoko") of me
–>  {​​​​​"com.apple.speech.synthesis.voice.kyoko.premium"​​​}

set anAge to getTTSVoiceAgeWithName("Otoya") of me
–>  35

on getTTSVoiceNameWithLanguage(voiceLang)
  set outArray to current application’s NSMutableArray’s arrayWithObject:{}
  
  
–Make Installed Voice List
  
set aList to current application’s NSSpeechSynthesizer’s availableVoices()
  
set bList to aList as list
  
  
repeat with i in bList
    set j to contents of i
    
set aDIc to (current application’s NSSpeechSynthesizer’s attributesForVoice:j)
    (
outArray’s addObject:aDIc)
  end repeat
  
  
set aPredicate to current application’s NSPredicate’s predicateWithFormat_("VoiceLocaleIdentifier == %@", voiceLang)
  
set filteredArray to outArray’s filteredArrayUsingPredicate:aPredicate
  
set aResList to (filteredArray’s valueForKey:"VoiceName") as list
  
  
return aResList
end getTTSVoiceNameWithLanguage

on getTTSVoiceIDWithLanguage(voiceLang)
  set outArray to current application’s NSMutableArray’s arrayWithObject:{}
  
set aList to current application’s NSSpeechSynthesizer’s availableVoices()
  
set bList to aList as list
  
repeat with i in bList
    set j to contents of i
    
set aDIc to (current application’s NSSpeechSynthesizer’s attributesForVoice:j)
    (
outArray’s addObject:aDIc)
  end repeat
  
set aPredicate to current application’s NSPredicate’s predicateWithFormat_("VoiceLocaleIdentifier == %@", voiceLang)
  
set filteredArray to outArray’s filteredArrayUsingPredicate:aPredicate
  
set aResList to (filteredArray’s valueForKey:"VoiceIdentifier") as list
  
  
return aResList
end getTTSVoiceIDWithLanguage

on getTTSVoiceIDWithName(voiceName)
  set outArray to current application’s NSMutableArray’s arrayWithObject:{}
  
set aList to current application’s NSSpeechSynthesizer’s availableVoices()
  
set bList to aList as list
  
repeat with i in bList
    set j to contents of i
    
set aDIc to (current application’s NSSpeechSynthesizer’s attributesForVoice:j)
    (
outArray’s addObject:aDIc)
  end repeat
  
set aPredicate to current application’s NSPredicate’s predicateWithFormat_("VoiceName == %@", voiceName)
  
set filteredArray to outArray’s filteredArrayUsingPredicate:aPredicate
  
set aResList to (filteredArray’s valueForKey:"VoiceIdentifier") as list
  
  
return aResList
end getTTSVoiceIDWithName

on getTTSVoiceAgeWithName(voiceName)
  set outArray to current application’s NSMutableArray’s arrayWithObject:{}
  
set aList to current application’s NSSpeechSynthesizer’s availableVoices()
  
set bList to aList as list
  
repeat with i in bList
    set j to contents of i
    
set aDIc to (current application’s NSSpeechSynthesizer’s attributesForVoice:j)
    (
outArray’s addObject:aDIc)
  end repeat
  
set aPredicate to current application’s NSPredicate’s predicateWithFormat_("VoiceName == %@", voiceName)
  
set filteredArray to outArray’s filteredArrayUsingPredicate:aPredicate
  
set aResList to (filteredArray’s valueForKey:"VoiceAge") as list
  
set anItem to first item of aResList
  
if anItem = missing value then return 0
  
return anItem as integer
end getTTSVoiceAgeWithName

★Click Here to Open This Script 

Posted in System Text to Speech | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

TTS Voiceを言語と性別で抽出

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:TTS Voiceを言語と性別で抽出
— Created 2017-03-28 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "AppKit"

set aLoc to (current application’s NSLocale’s currentLocale()’s identifier()) as string
–>  "ja_JP"

set vList to getTTSVoiceNameWithLanguageAndGender(aLoc, "Male") of me
–>  {​​​​​"Otoya"​​​}

set vList to getTTSVoiceNameWithLanguageAndGender(aLoc, "Female") of me
–>  {​​​​​"Kyoko"​​​}

set vList to getTTSVoiceNameWithLanguageAndGender("en_US", "Male") of me
–> {"Alex", "Bruce", "Fred", "Junior", "Ralph", "Tom"}

on getTTSVoiceNameWithLanguageAndGender(voiceLang, aGen)
  if aGen = "Male" then
    set aGender to "VoiceGenderMale"
  else if aGen = "Female" then
    set aGender to "VoiceGenderFemale"
  end if
  
  
set outArray to current application’s NSMutableArray’s new()
  
  
set aList to current application’s NSSpeechSynthesizer’s availableVoices()
  
set bList to aList as list
  
  
repeat with i in bList
    set j to contents of i
    
set aDIc to (current application’s NSSpeechSynthesizer’s attributesForVoice:j)
    (
outArray’s addObject:aDIc)
  end repeat
  
  
set aPredicate to current application’s NSPredicate’s predicateWithFormat_("VoiceLocaleIdentifier == %@ && VoiceGender== %@", voiceLang, aGender)
  
set filteredArray to outArray’s filteredArrayUsingPredicate:aPredicate
  
set aResList to (filteredArray’s valueForKey:"VoiceName") as list
  
  
return aResList
end getTTSVoiceNameWithLanguageAndGender

★Click Here to Open This Script 

Posted in System Text to Speech | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

すべてのTTS VoiceからLocale情報を抽出し、指定LocaleのTTS Voice名を取得

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:すべてのTTS VoiceからLocale情報を抽出し、指定LocaleのTTS Voice名を取得
— Created 2015-08-25 by Takaaki Naganoya
— Modified 2015-08-26 by Shane Stanley, Takaaki Naganoya
— 2015 Piyomaru Software
use AppleScript version "2.5"
use scripting additions
use framework "Foundation"
use framework "AppKit"

–すべてのTTS VoiceからIdentifier情報を抽出してユニーク化
set v1Res to getLocaleICodeFromTTSVoices()
set vRes to choose from list v1Res with prompt "Select Locale"
set v2Res to getTTSVoiceNameWithLanguage(first item of vRes) of me

on getLocaleICodeFromTTSVoices()
  set aResList to getAttributeFromTTSVoices("VoiceLocaleIdentifier") of me
  
return aResList as list
end getLocaleICodeFromTTSVoices

on getAttributeFromTTSVoices(anAttribute)
  set outArray to current application’s NSMutableArray’s new()
  
set aList to current application’s NSSpeechSynthesizer’s availableVoices()
  
set bList to aList as list
  
  
repeat with i in bList
    set j to contents of i
    
set aDict to (current application’s NSSpeechSynthesizer’s attributesForVoice:j)
    (
outArray’s addObject:aDict)
  end repeat
  
  
set aResArray to (outArray’s valueForKey:anAttribute)
  
  
set aSet to current application’s NSMutableSet’s setWithArray:aResArray
  
set aResList to aSet’s allObjects()
  
  
return aResList as list
end getAttributeFromTTSVoices

on getTTSVoiceNameWithLanguage(voiceLang)
  set outArray to current application’s NSMutableArray’s new()
  
set aList to current application’s NSSpeechSynthesizer’s availableVoices()
  
set bList to aList as list
  
  
repeat with i in bList
    set j to contents of i
    
set aDIc to (current application’s NSSpeechSynthesizer’s attributesForVoice:j)
    (
outArray’s addObject:aDIc)
  end repeat
  
  
set aPredicate to current application’s NSPredicate’s predicateWithFormat_("VoiceLocaleIdentifier == %@", voiceLang)
  
set filteredArray to outArray’s filteredArrayUsingPredicate:aPredicate
  
set aResList to (filteredArray’s valueForKey:"VoiceName") as list
  
  
return aResList
end getTTSVoiceNameWithLanguage

★Click Here to Open This Script 

Posted in System Text to Speech | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

すべてのTTS VoiceからLanguage情報を抽出してユニーク化

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:すべてのTTS VoiceからLanguage情報を抽出してユニーク化
— Created 2015-08-25 by Takaaki Naganoya
— Modified 2015-08-26 by Shane Stanley, Takaaki Naganoya
— 2015 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "AppKit"

set v1Res to getLocaleICodeFromTTSVoices()
–>  {​​​​​"fr_FR", ​​​​​"zh_TW", ​​​​​"it_IT", ​​​​​"en_ZA", ​​​​​"es_AR", ​​​​​"ko_KR", ​​​​​"ro_RO", ​​​​​"en_IN", ​​​​​"fr_CA", ​​​​​"hi_IN", ​​​​​"da_DK", ​​​​​"en-scotland", ​​​​​"pt_BR", ​​​​​"zh_CN", ​​​​​"sv_SE", ​​​​​"es_ES", ​​​​​"ar_SA", ​​​​​"hu_HU", ​​​​​"en_GB", ​​​​​"ja_JP", ​​​​​"fi_FI", ​​​​​"zh_HK", ​​​​​"tr_TR", ​​​​​"nb_NO", ​​​​​"pl_PL", ​​​​​"id_ID", ​​​​​"cs_CZ", ​​​​​"el_GR", ​​​​​"he_IL", ​​​​​"ru_RU", ​​​​​"de_DE", ​​​​​"en_AU", ​​​​​"nl_BE", ​​​​​"pt_PT", ​​​​​"th_TH", ​​​​​"sk_SK", ​​​​​"en_US", ​​​​​"en_IE", ​​​​​"nl_NL", ​​​​​"es_MX"​​​}

set v2Res to getLanguageCodeFromTTSVoices()
–> {"nl-NL", "id", "fr-FR", "it-IT", "es-419", "ko-KR", "ro-RO", "fr-CA", "hi-IN", "da-DK", "pt-BR", "sv-SE", "es-ES", "hu-HU", "en-GB", "ja-JP", "fi-FI", "tr-TR", "ar", "nb-NO", "pl-PL", "cs-CZ", "el-GR", "he-IL", "ru-RU", "zh-Hans", "de-DE", "en-AU", "zh-Hant", "nl-BE", "pt-PT", "th-TH", "sk-SK", "en-US", "en-IE"}

on getLanguageCodeFromTTSVoices()
  set aResList to getAttributeFromTTSVoices("VoiceLanguage") of me
  
return aResList as list
end getLanguageCodeFromTTSVoices

on getLocaleICodeFromTTSVoices()
  set aResList to getAttributeFromTTSVoices("VoiceLocaleIdentifier") of me
  
return aResList as list
end getLocaleICodeFromTTSVoices

on getAttributeFromTTSVoices(anAttribute)
  set outArray to current application’s NSMutableArray’s new()
  
set aList to current application’s NSSpeechSynthesizer’s availableVoices()
  
set bList to aList as list
  
  
repeat with i in bList
    set j to contents of i
    
set aDict to (current application’s NSSpeechSynthesizer’s attributesForVoice:j)
    (
outArray’s addObject:aDict)
  end repeat
  
  
set aResArray to (outArray’s valueForKey:anAttribute)
  
  
set aSet to current application’s NSMutableSet’s setWithArray:aResArray
  
set aResList to aSet’s allObjects()
  
  
return aResList as list
end getAttributeFromTTSVoices

★Click Here to Open This Script 

Posted in System Text to Speech | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

TTS Voice名一覧を取得

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:TTS Voice名一覧を取得
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "AppKit"

property NSSpeechSynthesizer : a reference to current application’s NSSpeechSynthesizer

set vList to retAvailableTTSnames() of me
–> {"Agnes", "Albert", "Alex", "Alice", "Allison", "Alva", "Amelie", "Anna", "Audrey", "Ava", "Bad News", "Bahh", "Bells", "Boing", "Bruce", "Bubbles", "Carmit", "Cellos", "Damayanti", "Daniel", "Deranged", "Diego", "Ellen", "Emily", "Fiona", "Fred", "Good News", "Hysterical", "Ioana", "Jill", "Joana", "Jorge", "Juan", "Junior", "Kanya", "Karen", "Kate", "Kathy", "Kyoko", "Laura", "Lee", "Lekha", "Luca", "Luciana", "Maged", "Mariska", "Mei-Jia", "Melina", "Milena", "Moira", "Monica", "Nora", "Otoya", "Paulina", "Pipe Organ", "Princess", "Ralph", "Samantha", "Sara", "Satu", "Serena", "Sin-ji", "Tessa", "Thomas", "Ting-Ting", "Tom", "Trinoids", "Veena", "Vicki", "Victoria", "Whisper", "Xander", "Yelda", "Yuna", "Yuri", "Zarvox", "Zosia", "Zuzana"}

on retAvailableTTSnames()
  set outList to {}
  
  
set aList to NSSpeechSynthesizer’s availableVoices()
  
set bList to aList as list
  
  
repeat with i in bList
    set j to contents of i
    
set aInfo to (NSSpeechSynthesizer’s attributesForVoice:j)
    
set aInfoRec to aInfo as record
    
set aName to VoiceName of aInfoRec
    
set the end of outList to aName
  end repeat
  
  
return outList
end retAvailableTTSnames

★Click Here to Open This Script 

Posted in System Text to Speech | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

InputManagerのじっけん

Posted on 2月 6, 2018 by Takaaki Naganoya

–> InputManager.framework (To ~/Library/Frameworks)

AppleScript名:InputManagerのじっけん
— Created 2017-01-22 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "InputManager"

set cList to current application’s CSInputSource’s all()
–>  (NSArray) {​​​​​(CSInputSource) <CSInputSource: 0x60000000d310>, ​​​​​(CSInputSource) <CSInputSource: 0x60000000f580>, ​​​​​(CSInputSource) <CSInputSource: 0x60000000bd30>, ​​​​​(CSInputSource) <CSInputSource: 0x600000216d20>, ​​​​​(CSInputSource) <CSInputSource: 0x6000002168d0>, ​​​​​(CSInputSource) <CSInputSource: 0x600000216c50>, ​​​​​(CSInputSource) <CSInputSource: 0x600000012620>, ​​​​​(CSInputSource) <CSInputSource: 0x60000000b010>, ​​​​​(CSInputSource) <CSInputSource: 0x600000217010>​​​}

set dList to (cList’s valueForKey:"localizedName") as list
–>  {​​​​​"ひらがな", ​​​​​"英字", ​​​​​"カタカナ", ​​​​​"日本語", ​​​​​"かなパレット", ​​​​​"com.apple.PressAndHold", ​​​​​"絵文字と記号", ​​​​​"キーボードビューア", ​​​​​"EmojiFunctionRowIM_Extension"​​​}

set c1 to (current application’s CSInputSource’s currentKeyboard()’s localizedName()) as string
–> "ひらがな"
–> "英字"

set c2 to (current application’s CSInputSource’s currentKeyboardLayout()’s localizedName()) as string
–> "U.S."

set err1 to (current application’s CSInputSource’s forLanguage:"ja")’s |select|()
log err1
set err2 to (current application’s CSInputSource’s forLanguage:"en_US")’s |select|()
log err2

★Click Here to Open This Script 

Posted in Input Method 未分類 | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

IMのメニュー表示名を取得する

Posted on 2月 6, 2018 by Takaaki Naganoya

–> InputManager.framework

AppleScript名:IMのメニュー表示名を取得する
— Created 2017-01-22 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "InputManager" –https://github.com/jensnockert/input-manager

set cList to (current application’s CSInputSource’s all()’s valueForKey:"localizedName") as list
–>  {​​​​​"ひらがな", ​​​​​"英字", ​​​​​"カタカナ", ​​​​​"日本語", ​​​​​"かなパレット", ​​​​​"com.apple.PressAndHold", ​​​​​"絵文字と記号", ​​​​​"キーボードビューア", ​​​​​"EmojiFunctionRowIM_Extension"​​​}

★Click Here to Open This Script 

Posted in Input Method System | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

InputMethodで現在選択中のIM名を文字列で取得する

Posted on 2月 6, 2018 by Takaaki Naganoya

–> InputManager.framework

AppleScript名:InputMethodで現在選択中のIM名を文字列で取得する
— Created 2017-01-22 22:11:33 +0900 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "InputManager"

set c2 to (current application’s CSInputSource’s mInputSource()) –>  "英字"
–>  "ひらがな"
–>  "カタカナ"

★Click Here to Open This Script 

Posted in Input Method System | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

全国地方公共団体コードのチェックサム算出 v2

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:全国地方公共団体コードのチェックサム算出 v2
set chkSum to chkModulas11("01100") of me

–全国地方公共団体コードのチェックサム算出
on chkModulas11(aCodeNumStr)
  
  
if length of (aCodeNumStr as string) is not equal to 5 then return false
  
set cList to characters of (aCodeNumStr as string)
  
set aMultNum to 6
  
set aRes to 0
  
  
–第1桁から第5桁までの数字に、それぞれ6.5.4.3.2を乗じて算出した積の和を求め
  
repeat with i in cList
    set j to i as number
    
set aRes to aRes + j * aMultNum
    
set aMultNum to aMultNum – 1
  end repeat
  
  
if aRes < 11 then
    –ただし、積の和が11より小なるときは、検査数字は、11から積の和を控除した数字とする
    
set eRes to 11 – aRes
  else
    –通常パターン
    
–その和を11で除し、商と剰余(以下「余り数字」という。)を求めて
    
set cRes to aRes mod 11 –余りだけでよいのでは? 商を求めなくても余りは計算可能
    
set dRes to 11 – cRes
    
set eRes to last character of (dRes as string) –下1桁の数字を検査数字とする    
  end if
  
  
return eRes as number
end chkModulas11

★Click Here to Open This Script 

Posted in 未分類 | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

JANコードのチェックデジットの計算

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:JANコードのチェックデジットの計算
set aData to "240469540245" –女性用カジュアルパンプス(黒)
set aSum to calcJANcodeChkSum(aData)
–> 9

set aData to "978479731648" –「Mac使いへの道」
set aSum to calcJANcodeChkSum(aData)
–> 3

–JANコードのチェックデジットの計算
–参照元:http://www.kabukoba.co.jp/info/barcode/check.htm
on calcJANcodeChkSum(aData)
  set aList to characters of aData
  
  
if length of aList is not equal to 12 then return false
  
  
set kiSnum to 0
  
set guNum to 0
  
  
repeat with i from 2 to length of aList
    
    
set kiSuF to ((i – 1) mod 2)
    
    
set j to (item i of aList) as number
    
    
if kiSuF = 1 then
      –奇数
      
set kiSnum to kiSnum + j
    else
      –偶数
      
set guNum to guNum + j
    end if
    
  end repeat
  
  
set kiSnum to kiSnum * 3
  
set guNum to guNum + (first item of aList) as number
  
  
set totalNum to kiSnum + guNum
  
  
set totalChar to totalNum as string
  
set lastDig to (last character of totalChar) as number
  
if lastDig is not equal to 0 then
    set sumNum to 10 – lastDig
  else
    set sumNum to 0
  end if
  
  
return sumNum
  
end calcJANcodeChkSum

★Click Here to Open This Script 

Posted in 未分類 | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

keychainLib

Posted on 2月 6, 2018 by Takaaki Naganoya

オープンソースのSAMKeychainを用いてキーチェーンにアクセスし、指定項目のパスワードの取得、新規項目の作成、キーチェーン項目の検索、アカウントの取得、項目の削除などを行うAppleScriptです。

# Apitoreは2019年5月31日をもってサービスを終了

オープンソースのSAMKeychainをCocoa Framework化したkeychainLib.frameworkをインストールを呼び出しています。

–> SSKeychain.framework

かつて、Mac OS X上にはKeychain ScriptingというAppleScriptから呼び出す専用の補助プログラムがOSに標準装備されていましたが、OS X 10.7で廃止になりました。以後、OS X 10.9までshell commandのsecurityコマンドを呼び出すことが必要となっていましたが、OS X 10.10でAppleScriptがCocoa呼び出しに対応したため、このような使い方ができるようになった次第です。

AppleScript名:keychainLib
— Created 2016-12-02 by Takaaki Naganoya
— 2016 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "SSKeychain" –https://github.com/soffes/sskeychain

property kSSKeychainServiceName : "SSToolkitTestService"
property kSSKeychainAccountName : "SSToolkitTestAccount"
property kSSKeychainPassword : "SSToolkitTestPassword"
property kSSKeychainLabel : "SSToolkitLabel"

set kRes to getPasswordForAccount("apitore API Key", "maro@piyocast.com") of me
–> "xxXXXxxX-XxXx-XXXX-xXXX-XXxXXxxXxxXx"

–Get Password
on getPasswordForAccount(aServiceName as string, anAccount as string)
  set bQuery to current application’s SSKeychainQuery’s alloc()’s init()
  
bQuery’s setService:aServiceName
  
bQuery’s setAccount:anAccount
  
bQuery’s setPassword:(missing value)
  
set bRes to (bQuery’s fetch:(missing value)) as boolean
  
return (bQuery’s |password|()) as string
end getPasswordForAccount

— New item
on makeNewItem(aPassword as string, aServiceName as string, anAccount as string, aLabel as string)
  set aQuery to current application’s SSKeychainQuery’s alloc()’s init()
  
aQuery’s setPassword:aPassword
  
aQuery’s setService:aServiceName
  
aQuery’s setAccount:anAccount
  
aQuery’s setLabel:aLabel
  
return (aQuery’s |save|:(missing value)) as boolean
end makeNewItem

— Look up
on lookUpPassWord(aServiceName, anAccount)
  set bQuery to current application’s SSKeychainQuery’s alloc()’s init()
  
bQuery’s setService:aServiceName
  
bQuery’s setAccount:anAccount
  
bQuery’s setPassword:(missing value)
  
set bRes to (bQuery’s fetch:(missing value)) as boolean
  
return (bQuery’s |password|() ≠ missing value)
end lookUpPassWord

— Search for all accounts
on getAllAccounts()
  set cQuery to current application’s SSKeychainQuery’s alloc()’s init()
  
return (cQuery’s fetchAll:(missing value)) as list
  
–>  (NSArray) {​​​​​{​​​​​​​mdat:(NSDate) 2010-02-23 08:36:19 +0000, ​​​​​​​cdat:(NSDate) 2010-02-23 08:36:19 +0000, ​​​​​​​acct:"GoogleJapaneseInput", ​​​​​​​class:"genp", ​​​​​​​svce:"GoogleJapaneseInput", ​​​​​​​labl:"GoogleJapaneseInput", ​​​​​​​crtr:9999999999​​​​​}, ​​​​​……
end getAllAccounts

— Check accounts for service
on getAccount(aServiceName)
  set cQuery to current application’s SSKeychainQuery’s alloc()’s init()
  
cQuery’s setService:aServiceName
  
return (cQuery’s fetchAll:(missing value)) as list
  
–>  (NSArray) {​​​​​{​​​​​​​mdat:(NSDate) 2016-03-02 13:54:54 +0000, ​​​​​​​cdat:(NSDate) 2016-03-02 13:44:19 +0000, ​​​​​​​svce:"SSToolkitTestService", ​​​​​​​acct:"SSToolkitTestAccount", ​​​​​​​class:"genp", ​​​​​​​labl:"SSToolkitLabel"​​​​​}​​​}
end getAccount

— Delete
on deleteKeychain(aServiceName, anAccountName)
  set dQuery to current application’s SSKeychainQuery’s alloc()’s init()
  
dQuery’s setService:aServiceName
  
dQuery’s setAccount:anAccountName
  
return (dQuery’s deleteItem:(missing value)) as boolean
end deleteKeychain

–Test Password Object
on testPasswordObject()
  set eQuery to current application’s SSKeychainQuery’s alloc()’s init()
  
eQuery’s setService:kSSKeychainServiceName
  
eQuery’s setAccount:kSSKeychainAccountName
  
set eDic1 to current application’s NSDictionary’s dictionaryWithObjectsAndKeys_(42, "number", "Hello World", "string", missing value)
  
eQuery’s setPasswordObject:eDic1
  
set fRes to (eQuery’s |save|:(missing value)) as boolean
  
  
set fQuery to current application’s SSKeychainQuery’s alloc()’s init()
  
fQuery’s setService:kSSKeychainServiceName
  
fQuery’s setAccount:kSSKeychainAccountName
  
fQuery’s setPassword:(missing value)
  
fQuery’s fetch:(missing value)
  
return {fQuery’s passwordObject(), eDic1}
  
–>  {​​​​​(NSDictionary) {​​​​​​​number:42, ​​​​​​​string:"Hello World"​​​​​}, ​​​​​(NSDictionary) {​​​​​​​number:42, ​​​​​​​string:"Hello World"​​​​​}​​​}
end testPasswordObject

★Click Here to Open This Script 

Posted in Keychain | Tagged 10.11savvy 10.12savvy 10.13savvy | 1 Comment

アプリケーションのBundle IDからアプリのAppleScript対応度を取得する

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:アプリケーションのBundle IDからアプリのAppleScript対応度を取得する
— Created 2016-02-08 by Takaaki Naganoya
— 2016 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "AppKit"

set aBundleID to "com.apple.Safari"
set aPath to retAppScriptabilityFromBundleID(aBundleID) of me
–>  true

–Bundle IDからアプリケーションのScriptabilityをbooleanで返す
on retAppScriptabilityFromBundleID(aBundleID)
  set appPath to current application’s NSWorkspace’s sharedWorkspace()’s absolutePathForAppBundleWithIdentifier:aBundleID
  
if appPath = missing value then return false
  
set aDict to (current application’s NSBundle’s bundleWithPath:appPath)’s infoDictionary()
  
set aRes to aDict’s valueForKey:"NSAppleScriptEnabled"
  
if aRes = missing value then return false
  
return aRes as boolean
end retAppScriptabilityFromBundleID

★Click Here to Open This Script 

Posted in 未分類 | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

アプリケーションのBundle IDからアプリアイコンへのフルパスを取得する

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:アプリケーションのBundle IDからアプリアイコンへのフルパスを取得する
— Created 2016-02-08 by Takaaki Naganoya
— 2016 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "AppKit"

set aBundleID to "com.apple.Safari"
set aPath to retAppIconPathFromBundleID(aBundleID) of me
–>  "/Applications/Safari.app/Contents/Resources/compass.icns"

–Bundle IDからアプリケーションアイコンのフルパスをPOSIX pathで返す
on retAppIconPathFromBundleID(aBundleID)
  –Bundle IDからアプリケーションへのパスを取得する
  
set appPath to current application’s NSWorkspace’s sharedWorkspace()’s absolutePathForAppBundleWithIdentifier:aBundleID
  
if appPath = missing value then return false
  
  
–Info.plistを読み込んで、iconのファイル名を取得
  
set aDict to (current application’s NSBundle’s bundleWithPath:appPath)’s infoDictionary()
  
set iconFile to aDict’s valueForKey:"CFBundleIconFile"
  
if iconFile = missing value then return false
  
  
–パスからバンドルを取得して、バンドル内の指定ファイルタイプのファイル名のパスを取得する
  
set aBundle to current application’s NSBundle’s bundleWithPath:appPath
  
set iconFullPath to aBundle’s pathForResource:iconFile ofType:"icns"
  
if iconFullPath = missing value then return false
  
  
return iconFullPath as string
  
end retAppIconPathFromBundleID

★Click Here to Open This Script 

Posted in 未分類 | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

指定ファイルをオープンするデフォルト・アプリケーションのパスを求める

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:指定ファイルをオープンするデフォルト・アプリケーションのパスを求める
— Created 2017-11-07 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "AppKit"

set aFile to POSIX path of (choose file)
set bPath to getDefaultAppPathFromDocumentPath(aFile) of me
–>  "/Applications/Skim.app"

on getDefaultAppPathFromDocumentPath(aFile)
  set aURL to current application’s |NSURL|’s fileURLWithPath:aFile
  
set aWorkspace to current application’s NSWorkspace’s sharedWorkspace()
  
set anApp to aWorkspace’s URLForApplicationToOpenURL:aURL
  
if anApp = missing value then return false
  
return (anApp’s |path|()) as string
end getDefaultAppPathFromDocumentPath

★Click Here to Open This Script 

Posted in 未分類 | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

指定ファイルをオープンするデフォルト・アプリケーションのBundle IDを求める

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:指定ファイルをオープンするデフォルト・アプリケーションのBundle IDを求める
— Created 2017-11-07 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "AppKit"

set aFile to POSIX path of (choose file)
set anID to getDefaultAppIDFromDocumentPath(aFile) of me
–> "com.apple.Preview"

on getDefaultAppIDFromDocumentPath(aFile)
  set aURL to current application’s |NSURL|’s fileURLWithPath:aFile
  
set aWorkspace to current application’s NSWorkspace’s sharedWorkspace()
  
set appURL to aWorkspace’s URLForApplicationToOpenURL:aURL
  
set aBundle to current application’s NSBundle’s bundleWithURL:appURL
  
if aBundle = missing value then return false
  
set anID to aBundle’s bundleIdentifier()
  
return anID as string
end getDefaultAppIDFromDocumentPath

★Click Here to Open This Script 

Posted in 未分類 | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

指定のアプリケーションのURL Schemeを取得する

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:指定のアプリケーションのURL Schemeを取得する
— Created 2017-07-23 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use BridgePlus : script "BridgePlus"
–http://piyocast.com/as/archives/4759

load framework

set aP to choose file
set aURLrec to getAppURLSchemes(aP) of me
–> {appName:"Photos", appBundleID:"com.apple.Photos", urlScheme:{"photos"}}

on getAppURLSchemes(aP)
  set aURL to current application’s |NSURL|’s fileURLWithPath:(POSIX path of aP)
  
set aBundle to current application’s NSBundle’s bundleWithURL:aURL
  
set aDict to aBundle’s infoDictionary()
  
  
set appNameDat to (aDict’s valueForKey:"CFBundleName") as string
  
set bundleIDat to (aDict’s valueForKey:"CFBundleIdentifier") as string
  
  
set urlSchemes to (aDict’s valueForKey:"CFBundleURLTypes")
  
if urlSchemes is not equal to missing value then
    set urlList to urlSchemes’s valueForKey:"CFBundleURLSchemes"
    
set urlListFlat to (current application’s SMSForder’s arrayByFlattening:urlList) as list
  else
    set urlListFlat to {}
  end if
  
  
set aRec to {appName:appNameDat, appBundleID:bundleIDat, urlScheme:urlListFlat}
  
return aRec
end getAppURLSchemes

★Click Here to Open This Script 

Posted in System URL | Tagged 10.11savvy 10.12savvy 10.13savvy | 1 Comment

Bundle IDで指定したアプリケーションのURL Schemeを求める

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:Bundle IDで指定したアプリケーションのURL Schemeを求める
— Created 2017-07-23 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "AppKit"
use BridgePlus : script "BridgePlus" –https://www.macosxautomation.com/applescript/apps/BridgePlus.html

property |NSURL| : a reference to current application’s |NSURL|
property NSBundle : a reference to current application’s NSBundle
property SMSForder : a reference to current application’s SMSForder

load framework

set aRes to getURLSchemesFromBundleID("com.apple.Safari") of me
–>  {​​​​​appName:"Safari", ​​​​​appBundleID:"com.apple.Safari", ​​​​​urlScheme:{​​​​​​​"http", ​​​​​​​"https", ​​​​​​​"file"​​​​​}​​​}

on getURLSchemesFromBundleID(aBundleID)
  set aURL to current application’s NSWorkspace’s sharedWorkspace()’s URLForApplicationWithBundleIdentifier:aBundleID
  
if aURL = missing value then return false
  
  
set bPath to (aURL’s |path|()) as string
  
set aURLrec to getAppURLSchemes(bPath) of me
  
  
return aURLrec
end getURLSchemesFromBundleID

on getAppURLSchemes(aP)
  set aURL to |NSURL|’s fileURLWithPath:(POSIX path of aP)
  
set aBundle to NSBundle’s bundleWithURL:aURL
  
set aDict to aBundle’s infoDictionary()
  
  
set appNameDat to (aDict’s valueForKey:"CFBundleName") as string
  
set bundleIDat to (aDict’s valueForKey:"CFBundleIdentifier") as string
  
  
set urlSchemes to (aDict’s valueForKey:"CFBundleURLTypes")
  
if urlSchemes is not equal to missing value then
    set urlList to urlSchemes’s valueForKey:"CFBundleURLSchemes"
    
set urlListFlat to (SMSForder’s arrayByFlattening:urlList) as list
  else
    set urlListFlat to {}
  end if
  
  
set aRec to {appName:appNameDat, appBundleID:bundleIDat, urlScheme:urlListFlat}
  
return aRec
end getAppURLSchemes

★Click Here to Open This Script 

Posted in 未分類 | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

指定バンドルIDのアプリケーションのアイコンへのパスを求める

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:指定バンドルIDのアプリケーションのアイコンへのパスを求める
— Created 2017-02-14 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "AppKit"
–http://piyocast.com/as/archives/4460

set iconList to {"com.barebones.bbedit", "com.barebones.textwrangler", "com.apple.Finder"}
repeat with i in iconList
  set aPath to retIconPath(i) of me
  
if aPath is not equal to false then
    display dialog "ICNS test" with title i with icon ((POSIX file aPath) as alias) buttons {"OK"} default button 1
  end if
end repeat

–指定バンドルIDのアプリケーションのアイコンのフルパスを取得する
on retIconPath(anID)
  set aRes to chkAppIsInstalled(anID) of me
  
if aRes = false then return false
  
set appPathPOSIX to (current application’s NSWorkspace’s sharedWorkspace()’s absolutePathForAppBundleWithIdentifier:anID) as string
  
set anIconPath to getIconFilePath(appPathPOSIX) of me
  
return anIconPath
end retIconPath

–指定バンドルIDのアプリケーションが存在しているかチェック
on chkAppIsInstalled(aBundleID as string)
  set aRes to current application’s NSWorkspace’s sharedWorkspace()’s URLForApplicationWithBundleIdentifier:aBundleID
  
set bRes to (aRes is not equal to missing value)
  
return bRes
end chkAppIsInstalled

–指定ファイルのアイコンのファイルのパスを取得する
on getIconFilePath(aPOSIXPath)
  set anURL to current application’s |NSURL|’s fileURLWithPath:aPOSIXPath
  
set myBundle to current application’s NSBundle’s bundleWithURL:anURL
  
set aBundleID to myBundle’s bundleIdentifier() as text
  
set anIconFileName to (myBundle’s objectForInfoDictionaryKey:"CFBundleIconFile") as string
  
  
if anIconFileName does not end with ".icns" then
    set anIconFileName to anIconFileName & ".icns"
  end if
  
  
set ifonFileFullPath to aPOSIXPath & "/Contents/Resources/" & anIconFileName
  
return ifonFileFullPath
end getIconFilePath

★Click Here to Open This Script 

Posted in 未分類 | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

Post navigation

  • Older posts
  • Newer posts

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular posts

  • 開発機としてM2 Mac miniが来たのでガチレビュー
  • macOS 15, Sequoia
  • 指定のWordファイルをPDFに書き出す
  • Pages本執筆中に、2つの書類モード切り替えに気がついた
  • Numbersで選択範囲のセルの前後の空白を削除
  • メキシカンハットの描画
  • Pixelmator Pro v3.6.4でAppleScriptからの操作時の挙動に違和感が
  • AdobeがInDesign v19.4からPOSIX pathを採用
  • AppleScriptによる並列処理
  • Safariで「プロファイル」機能を使うとAppleScriptの処理に影響
  • Cocoa Scripting Course 続刊計画
  • macOS 14.xでScript Menuの実行速度が大幅に下がるバグ
  • AppleScript入門③AppleScriptを使った「自動化」とは?
  • macOS 15でも変化したText to Speech環境
  • Keynote/Pagesで選択中の表カラムの幅を均等割
  • デフォルトインストールされたフォント名を取得するAppleScript
  • macOS 15 リモートApple Eventsにバグ?
  • AppleScript入門① AppleScriptってなんだろう?
  • macOS 14で変更になったOSバージョン取得APIの返り値
  • Keynoteで2階層のスライドのタイトルをまとめてテキスト化

Tags

10.11savvy (1101) 10.12savvy (1242) 10.13savvy (1391) 10.14savvy (587) 10.15savvy (438) 11.0savvy (283) 12.0savvy (212) 13.0savvy (194) 14.0savvy (147) 15.0savvy (132) CotEditor (66) Finder (51) iTunes (19) Keynote (117) NSAlert (61) NSArray (51) NSBitmapImageRep (20) NSBundle (20) NSButton (34) NSColor (53) NSDictionary (28) NSFileManager (23) NSFont (21) NSImage (41) NSJSONSerialization (21) NSMutableArray (63) NSMutableDictionary (22) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (119) NSURL (98) NSURLRequest (23) NSUTF8StringEncoding (30) NSView (33) NSWorkspace (20) Numbers (76) Pages (55) Safari (44) Script Editor (27) WKUserContentController (21) WKUserScript (20) WKWebView (23) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • 3D
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • Beginner
  • Benchmark
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • check sum
  • Clipboard
  • Cocoa-AppleScript Applet
  • Code Sign
  • Color
  • Custom Class
  • date
  • dialog
  • diff
  • drive
  • Droplet
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • Hex
  • History
  • How To
  • iCloud
  • Icon
  • Image
  • Input Method
  • Internet
  • iOS App
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Keychain
  • Language
  • Library
  • list
  • Locale
  • Localize
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • parallel processing
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • rectangle
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • Review
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • selection
  • shell script
  • Shortcuts Workflow
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2025年5月
  • 2025年4月
  • 2025年3月
  • 2025年2月
  • 2025年1月
  • 2024年12月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2024年2月
  • 2024年1月
  • 2023年12月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Forum Posts

  • 人気のトピック
  • 返信がないトピック

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC