netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2004-02-10 古い日記からの変換データ ▲
2006-02-10 ▲
_ [ツール] 複製ファイルの検出ツール ▲
DupCheckerという名前で(いちおう)公開してるものを更新してみた.表明とかを入れ込む実験用に手ごろなJavaプログラムがほしかったのと,最近,ファイル整理したくなったのとで,久々に整備してみた.
プログラム自体は,指定されたディレクトリ群の中から,サイズが等しく,かつMD5シグネチャが同じものを見つけ出して出力するというもの.
使い方: java -jar DupChecker.jar [-console [-r] (ディレクトリ名を並べる)] -console = コマンドライン出力.GUIで操作するときは引数不要. -r = ディレクトリを再帰的に探索.
コマンドラインから使うと,stdout に,MD5の値ごとにグルーピングしたファイル名のリストが出力される.[Add Target]でディレクトリを追加して,[start search]で検索して,見つかったファイルをツリービューから選択して[Delete Selected Files]で削除できる.
2007-02-10 ▲
_ [Delphi] ヘルプよりソースコード ▲
BDS 2006 付属のヘルプには,TApplication クラスの Handle プロパティは「アプリケーションのメインフォーム(ウィンドウ)のウィンドウハンドルへのアクセスを提供します。」と書いてあります.しかし,ウィンドウをアクティブにするSetForegroundWindow(Application.Handle)
を呼び出してみたら,なぜか一瞬フォーカスが外れてしまうという妙な問題に遭遇しました.
で,よく調べてみたら,TApplication にはヘルプには載ってない MainFormHandle プロパティというのがくっついていて(コード補完では出てくる),こちらがウィンドウハンドルを保持していました.元の Handle プロパティのほうは別ハンドルを指しているようです.
Delphi の場合,昔から VCL のソースが付いているからかもしれませんが,未だにヘルプは当てにならないようです.結局,ソースを読んで VCL の振る舞いを理解することで,(実装に近いという意味で)低水準のノウハウが蓄積されている気がします.
ネットで検索していても,Win32 APIの使い方に関する情報はかなり見つかるものの,それをコンポーネント化したものは少ないようです.API 1つか2つで終わる程度のことが多いというのもあるかもしれません.