メモ帳から、他のエディタで読み直し


メモ帳で開いているファイルを、他エディタ(今回は秀丸)で読み込みなおしたい。
#そもそもは、Vertrigoで、外部エディタを設定できなかったから・・

  1. EnumWindows()
  2. callbackでプロセスID取得(GetWindowThreadProcessId(), OpenProcess())
  3. そのプロセスのコマンドライン引数を求める

 参考:http://d.hatena.ne.jp/espresso3389/20080723
という流れで作った。


ただこれだと、新規メモ帳起動して、[ファイル]メニューから開いているときには
起動引数じゃないから、ダメだ。


「メモ帳は、ファイルを表示したらすぐcloseしている」そう。
Edit部分のクラスをなんとか捕まえて??
Spyしてみるが、そこから先がわからない。


あー、[ファイル]-[開く]でカレントディレクトリわかるなあ!
それにタイトルを組み合わせればいいんじゃね?


・・・


その、カレントディレクトリがわからん・・
「PEB」を調べてみたが、ディレクトリ情報そのものズバリは無いようだ。
http://www.codeproject.com/KB/threads/GetNtProcessInfo.aspx
http://msdn.microsoft.com/en-us/library/aa813706(VS.85).aspx

↓を見たらあったのに・・OSが違う? 4/23修正:明日への〜で書いている通り、ユーザ定義だった
http://www.geocities.co.jp/egggarden/win32api/download/peek.cpp.txt

そもそもc:\windows\system32\から変わってるのかも謎だ。

ああ・・最悪、[開く]ダイアログを出してみるのかなあ・・
http://social.msdn.microsoft.com/Forums/ja-JP/vcgeneralja/thread/565bb7cc-1107-44c5-bd25-dc5ef2e45bc1/




明日へのメモ。
http://www.geocities.co.jp/egggarden/win32api/loveryPG.htm
「いずれの場合でもポイントは 」で検索、飛んだあたりに

いずれの場合でもポイントは

1. ntddk.hとwindows.hは共存できないため、 情報量の多いntddk.hどちらか一方を使い、ほかの情報は自分で定義する (今回はntddk.hを使いwindows.h のものは structures.h / functions.h で定義している)
2. 一部の構造体は、互換性の問題から定義が隠されているのでそれを自分で定義する(structures.h)
3. ntdll.libのリンクが必要 (ユーザーモードでGetProcAddressするなら[Tips 02]のようにntdll.dllから拾う)

とあるので、ヘッダをあれこれ入れ替えてみるかな?