[BlueLeaf1336]> PROBLEMS> ClickThereItIs!>

ClickThereItIs! - adrenaline

historyTOP

2004/01/07:作成
2004/01/21:更新
2004/01/29:更新

adrenaline - 001TOP

2004/01/06にメールがきました。なんとドイツから。内容はこんな感じで。 勝手に掲載させてもらってますので、お名前は伏せてます。

From: "T***** W******"
To: fjtkt
Sent: Tuesday, January 06, 2004 11:56 PM
Subject: ClickHereItIs

Dear fjtkt,

I'm searching for a tool like your "ClickHereItIs" for a long time but I did not find anything - except your page. Now working on a PC, I'm missing this useful "Click There It Is" extension from the mac. I cannot understand that nobody in the world is programming that tool for Windows. What's about the current status of your development? Would you give me a note when you've fixed the problem?

Kind regards

T***** W******
Germany

おんなじこと考えてる人いました。Macintoshの場合でも機能拡張で実現してたし、Windowsの場合もおんなじような感じだし、かなり無理っぽいなあと思ってまして、今もそう思っていますが、アドレナってきました。 できる限り頑張ります。

adrenaline - 002TOP

2004/01/21にFODH - File Open (and SaveAs) Dialog Helperというページを見つけました。こんな説明がありました。

FODH は Windows 標準の「ファイルを開く」「名前をつけて保存」等のダイアログウィンドウを上図のように拡張するフリーソフトウェアです。

で、キャプチャした図があって見事にFileOpenDialogを操っています。ダウンロードしたんですが、えーと、そうですね。TDUMP.EXE使ってもいいんでしょうか。Helpファイルにはこんな感じに書いてあります。

著作権その他
FODHの各ファイル FODH.exe, FODH.dll, FODH.chm に関するすべての権利は、作者である Ab. (海老山天之介) が保有します。 FODH の各ファイルの逆アセンブル、逆コンパイル等のリバースエンジニアリングを行うことを禁じます。

うーん。TDUMPはええでしょうね。NTでいうところのクイックビューアですもんね。かどうかはあれですが自分ではその程度の情報しか読み取れないので。


豆知識:TDUMP.EXEの使い方

とりあえずダウンロードファイルを、自己解凍せずに解凍ソフト(Lhaca)で解凍します。で、コマンドプロンプトのショートカットを作って、プロパティの作業フォルダを空にします。また、\Delphi6\Bin\TDUMP.EXEを探し出します。で、「$fodh.dll」「コマンドプロンプトのショートカット」「TDUMP.EXE」を適当なフォルダの中に一緒くたに放り込みます。

で、ショートカットを叩くと、そのフォルダがカレントディレクトリになるので、めでたく次のように入力します。

TDUMP.EXE $fodh.dll > dll.txt

これで無事使用しているAPIとDLLが提供する関数を確認することができます。


一部です。...こんなことしちゃまずいんでしょうか?つまり「逆****ル」にあたる んでしょうか?悩ましいところですがとりあえずOKということにして。
ちょっとだけ並べ替えてます。

******************************************************************************
Section:             Import
...
Imports from KERNEL32.dll
    (hint = 01B2) OpenMutexA
    (hint = 0038) CreateMutexA
    (hint = 01DD) ReleaseMutex
    (hint = 0190) LoadLibraryA
    (hint = 0099) FreeLibraryAndExitThread
    (hint = 0043) CreateThread
    (hint = 00D6) GetCurrentThreadId
    (hint = 00FC) GetModuleFileNameA
    (hint = 00FE) GetModuleHandleA
    (hint = 0018) CloseHandle
    (hint = 01A4) MapViewOfFile
    (hint = 0253) UnmapViewOfFile
    (hint = 026A) WaitForSingleObject
    (hint = 00AA) GetCommandLineA
    (hint = 023F) Sleep
    (hint = 026E) WideCharToMultiByte

Imports from USER32.dll
    (hint = 01E2) SendMessageA
    (hint = 01E5) SendMessageTimeoutA
    (hint = 0150) InSendMessage
    (hint = 01B7) PostMessageA
    (hint = 01BA) PostThreadMessageA
    (hint = 01B5) PeekMessageA
    (hint = 022D) SetWindowsHookExA
    (hint = 0250) UnhookWindowsHookEx
    (hint = 0011) CallNextHookEx
    (hint = 013F) GetWindowTextA
    (hint = 0229) SetWindowTextA
    (hint = 013A) GetWindowLongA
    (hint = 0223) SetWindowLongA
    (hint = 0143) GetWindowThreadProcessId
    (hint = 0012) CallWindowProcA
    (hint = 0080) DefWindowProcA
    (hint = 013D) GetWindowRect
    (hint = 016D) IsWindow
    (hint = 0101) GetKeyState
    (hint = 011D) GetParent
    (hint = 0129) GetSysColor
    (hint = 012A) GetSysColorBrush
    (hint = 0247) TrackPopupMenu
    (hint = 0158) InvalidateRect
    (hint = 019B) MessageBoxA
...
******************************************************************************

この中にきっとヒントがあるはず。再び希望が見えてきました。

adrenaline - 003TOP

2004/01/29

ビンゴなページを発見しました。まさに逆転の発想。メールでのやりとりというかBBSみたいな形式ですが、感動の余りパクル事にします。

developer.com - Dialogのどこから辿り着いたのか分からないんですが、MFC Programmer's SourceBook : Commentsから始まるスレッドです。

要点説明箇所を引用させてもらうと次のようなものです。

I just put the path in the edit control and hit the "Open" button programatically.
ヘイボーイ。Editボックスに移動したいパスをプログラムでぶち込んでして、プログラムで"開く"ボタンブチ押せばイージャン。

なるほどーーーーー。

EOFTOP