########################### # autoregist_WM_ATOK.mscr # # author: tok # ########################### #################### # 変更する必要なし # #################### atok = "ATOK 辞書ユーティリティ" atokexe = "\Windows\ATOKPUT.exe" toroku = "単語登録" ######################## # 環境によって変更して # ######################## # 辞書に登録する内容が記載されたテキストファイルの場所 fname = "\dic.txt" # 全体的な動作速度(重くて正常に動作しないときは増やしてみる) wait = 100 # ATOKに存在する品詞の羅列 hinsi[1] = "一般名詞" hinsi[2] = "固有人名" hinsi[3] = "固有地名" hinsi[4] = "固有組織" hinsi[5] = "固有一般" hinsi[6] = "名詞サ変" hinsi[7] = "名詞ザ変" hinsi[8] = "名詞形動" hinsi[9] = "独立語" hinsi[10] = "単漢字" hinsi[11] = "連体詞" hinsi[12] = "接続詞" hinsi[13] = "感動詞" hinsi[14] = "接頭語" hinsi[15] = "接尾辞" hinsi[16] = "数詞" hinsi[17] = "カ行五段" hinsi[18] = "ガ行五段" hinsi[19] = "サ行五段" hinsi[20] = "タ行五段" hinsi[21] = "ナ行五段" hinsi[22] = "ハ行五段" hinsi[23] = "バ行五段" hinsi[24] = "マ行五段" hinsi[25] = "ラ行五段" hinsi[26] = "ワ行五段" hinsi[27] = "一般動詞" hinsi[28] = "カ変動詞" hinsi[29] = "サ変動詞" hinsi[30] = "ザ変動詞" hinsi[31] = "形容詞" hinsi[32] = "形容動詞" hinsi[33] = "副詞" # ATOKに存在する品詞の総数 hinsiMAX = 33 down[1] = 0 down[2] = 1 down[3] = 2 down[4] = 3 down[5] = 4 down[6] = 5 down[7] = 6 down[8] = 7 down[9] = 8 down[10] = 9 down[11] = 10 down[12] = 11 down[13] = 12 down[14] = 13 down[15] = 14 down[16] = 15 down[17] = 16 down[18] = 17 down[19] = 18 down[20] = 19 down[21] = 20 down[22] = 21 down[23] = 22 down[24] = 23 down[25] = 24 down[26] = 25 down[27] = 26 down[28] = 27 down[29] = 28 down[30] = 29 down[31] = 30 down[32] = 31 down[33] = 32 # ここから登録処理開始 Message("単語の登録を開始します") If(WndExists(toroku) = 1) Close(toroku) Sleep(3000) EndIf If(WndExists(atok) = 1) Close(atok) Sleep(3000) EndIf Run(atokexe); # 既に登録している単語が多くて正常に動作しないとき、 # ここのSleep値を10000〜に変更するとうまくいくかも Sleep(3000) f = ReadFile(fname) ForEach line in split (f, "^LF^", 1) Split (line, "^TAB^", 1, item) WaitForActive(atok, 3) If(WndActive(atok) = 0) Message("異常な動作を検出したので終了します") Exit EndIf SendLeftSoft(atok) Sleep(wait) SendCR(atok) WaitForActive(toroku, 3) If(WndActive(toroku) = 0) Message("異常な動作を検出したので終了します") Exit EndIf SetClipText(item[2]) SendCtrlKey(toroku, "v") Sleep(wait) SendTab(toroku) Sleep(wait) SetClipText(item[1]) SendCtrlKey(toroku, "v") Sleep(wait) SendTab(toroku) Sleep(wait) s = 1 While((item[3] ne hinsi[s])) s = s + 1 If(s >= hinsiMAX + 1) Message("未登録の品詞を検出したので終了します") Exit EndIf EndWhile If(down[s] > 0) SendCR(toroku) Sleep(wait) Repeat(down[s]) SendDown(toroku) Sleep(wait) EndRepeat EndIf SendTab(toroku) Sleep(wait) If(WndActive(toroku) = 0) Message("異常な動作を検出したので終了します") Exit EndIf SendCR(toroku) EndForEach Close(atok) Message("単語の登録が完了しました")