virtualTyping.scpt
ObjC.import('Foundation')
ObjC.import('Carbon')
function virtualTyping(source) {
if (!source) {
throw new Error('Missing source')
}
if (typeof source !== 'string' || source.trim().length === 0) {
throw new Error('Invalid source')
}
const str = $.NSString.alloc.initWithString(source)
for (var i=0; i < str.length; i++) {
const event = $.CGEventCreateKeyboardEvent($(), 0, true)
const oneChar = Ref('unsigned short')
oneChar[0] = str.characterAtIndex(i)
$.CGEventKeyboardSetUnicodeString(event, 1, oneChar)
$.CGEventPost($.kCGSessionEventTap, event)
}
}
const source = `
祇園精舎の鐘の声、諸行無常の響きあり、沙羅双樹の花の色、盛者必衰の理をあらはす。驕れる者久しからず、ただ春の夜の夢の如し。猛き人もつひには滅びぬ、ひとへに風の前の塵に同じ。
遠く異朝をとぶらふに、秦の趙高、漢の王莽、梁の朱い、唐の禄山、これらは皆旧主先皇の政にも従はず、楽しみを極め、諌めをも思ひ入れず、天下の乱れん事をも悟らずして、民間の憂ふる所を知らざりしかば、久しからずして亡じにし者どもなり。
近く本朝を窺ふに、承平の将門、天慶の純友、康和の義親、平治の信頼、これらは驕れる事も猛き心も、皆とりどりなりしかども、間近くは、六波羅の入道前の太政大臣平の朝臣清盛公と申しし人の有様、伝へ承るこそ、心も言も及ばれぬ。その先祖を尋ぬれば、桓武天皇第五の皇子、一品式部卿葛原の親王九代の後胤、讃岐守正盛が孫、刑部卿忠盛の朝臣の嫡男なり。
かの親王の御子、高視の王無官無位にして失せ給ひぬ。その御子高望の王の時、初めて平の姓を賜はつて、上総介になり給ひしよりこのかた、忽ちに王氏を出でて人臣に連なる。その子鎮守府の将軍良望、後には国香と改む。国香より正盛に至るまで六代は、諸国の受領たりしかども、殿上の仙籍をば未だ許されず。
`
virtualTyping( source.trim() )
プレゼンやUIテスト等で利用すると便利かもしれません。