1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JXAで日本語入力のエミュレーション

Posted at
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テスト等で利用すると便利かもしれません。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?