◀マクロトップへ
  • 186 MS-IME単語登録 PerlScript
  • [186] MS-IME単語登録 PerlScript りーや 2005年07月01日 20:35

    私にそそのかされてK2Editorから乗り換え中の知り合いから、辞書登録だけはK2が便利といわれたので作っちゃいました。再変換?を利用して読みがなもセットするので、勝ちです?

    選択範囲またはカーソル位置の単語をユーザー辞書に登録するのを支援します。
    ActivePerlの他に拡張モジュールのWin32::GuiTestが必要です。インストール方法などは http://perldoc.jp/docs/modules/Win32-GuiTest-1.3/GuiTest.pod 参照。
    JScriptなどへの移植は苦しいので、使える方だけ・・・

    # AddWordIME.pls
    use Win32::GuiTest qw(FindWindowLike SetForegroundWindow SendKeys);
    use Win32::Clipboard;
    $CLIP = Win32::Clipboard();
    $Win32::GuiTest::debug = 0;
    $execComm = "C:\\WINDOWS\\ime\\IMJP8_1\\imjpdct.exe";
    @windows = FindWindowLike(0, "\x92\x50\x8c\xea\x2f");
    $kanji = GetSelectedString(0);
    unless($kanji){
    SelectWord();
    $kanji = GetSelectedString(0);
    }
    Copy();
    if (not @windows) {
    ExecCommand($execComm , 0 );
    while(not @windows){
    sleep 1;
    @windows = FindWindowLike(0, "\x92\x50\x8c\xea\x2f");
    }
    }
    $imeWin = shift(@windows);
    SetForegroundWindow($imeWin);
    SendKeys("{PAUSE 300}");
    SendKeys("%g");
    SendKeys("^v");
    $CLIP->Empty();
    SendKeys("+{HOME}");
    SendKeys("{F13}", 300);
    SendKeys("{ESCAPE}", 200);
    SendKeys("{ESCAPE}", 200);
    SendKeys("+{END}");
    SendKeys("^c");
    $kana = $CLIP->GetText();
    if($kana == $kanji){
    SendKeys("{F13}", 300);
    SendKeys("{ESCAPE}", 200);
    SendKeys("{ENTER}");
    }
    SendKeys("+{HOME}");
    SendKeys("^c");
    $kana = $CLIP->GetText();
    SendKeys("{F13}", 300);
    SendKeys("{ENTER}");
    SendKeys("%y");
    SendKeys("^v");