IME Reconversion (K2Editor) · 再変換 H.24/08/11 Egtra...

12
再変換 H.24/08/11 Egtra 私立プログラミングキャンプ2012 東京大会 LT 発表資料

Transcript of IME Reconversion (K2Editor) · 再変換 H.24/08/11 Egtra...

Page 1: IME Reconversion (K2Editor) · 再変換 H.24/08/11 Egtra 私立プログラミングキャンプ2012 東京大会 LT発表資料

再変換

H.24/08/11

Egtra 私立プログラミングキャンプ2012 東京大会 LT発表資料

Page 2: IME Reconversion (K2Editor) · 再変換 H.24/08/11 Egtra 私立プログラミングキャンプ2012 東京大会 LT発表資料

前書き

•それはまだ私がVimもEmacも知らなかった頃の話

•私はK2Editorを使っていた

Page 3: IME Reconversion (K2Editor) · 再変換 H.24/08/11 Egtra 私立プログラミングキャンプ2012 東京大会 LT発表資料

再変換

•あっ、打ち間違えた

•→すかさず変換キー

Page 4: IME Reconversion (K2Editor) · 再変換 H.24/08/11 Egtra 私立プログラミングキャンプ2012 東京大会 LT発表資料

再変換 (2)

•再変換使えない

•→大幅減点 •(個人的感想です)

Page 5: IME Reconversion (K2Editor) · 再変換 H.24/08/11 Egtra 私立プログラミングキャンプ2012 東京大会 LT発表資料

だから

•自分の手でなんとかする

•ターゲット:

–K2Editor

Page 6: IME Reconversion (K2Editor) · 再変換 H.24/08/11 Egtra 私立プログラミングキャンプ2012 東京大会 LT発表資料

だから (2)

•ソースが公開されている

Page 7: IME Reconversion (K2Editor) · 再変換 H.24/08/11 Egtra 私立プログラミングキャンプ2012 東京大会 LT発表資料

だから (2)

•ソースが公開されている

_人人 人人_

> Delphi <

 ̄Y^Y^Y^Y ̄

Page 8: IME Reconversion (K2Editor) · 再変換 H.24/08/11 Egtra 私立プログラミングキャンプ2012 東京大会 LT発表資料

作戦変更

•ソースを書き換えないで

•DLLを乗っ取る

•K2Regexp.dll

Page 9: IME Reconversion (K2Editor) · 再変換 H.24/08/11 Egtra 私立プログラミングキャンプ2012 東京大会 LT発表資料

イージーモードDLL乗っ取り

•偽K2Regexp.dllを作る

–本物のDLLに処理を渡す

+

–自分のやりたいことをやる

Page 10: IME Reconversion (K2Editor) · 再変換 H.24/08/11 Egtra 私立プログラミングキャンプ2012 東京大会 LT発表資料

やりたいこと

•ウィンドウをサブクラス化

•再変換関係のウィンドウメッセージを処理

Page 11: IME Reconversion (K2Editor) · 再変換 H.24/08/11 Egtra 私立プログラミングキャンプ2012 東京大会 LT発表資料

内部データへのアクセス

•エディタ部分のテキスト (公開情報)

•公開APIで読み書きできた

–Windows互換

Page 12: IME Reconversion (K2Editor) · 再変換 H.24/08/11 Egtra 私立プログラミングキャンプ2012 東京大会 LT発表資料

ソースコード:

https://github.com/egtra/k2reconv

This work is licensed under a Creative Commons Attribution-ShareAlike 2.1 Japan License.