program bugseye; (* ※課題 ・情報表示のカスタマイズ。 ・メニューの追加、削除を(コード的に)やりやすくしたい。 ・APIテストの項目をdllで追加可能に。 ・↑の発展でプラグイン対応に。 ・メニューのキャプションやメッセージのカスタマイズ。 2017-02-02:Ver 2.8.2.200 ・「オプション」の「大きいフォント」を廃止。変わりに「フォント」選択を追加。 ・合わせて情報の項目名と情報を区切る縦線を摘んで動かせるようにした。 ・「情報欄に罫線を引く」オプション追加。 ・設定画面のUIを少々変更。少し統一感を出した。 2017-01-27:Ver 2.8.1.197 ・BitBlt APIのラスタオペレーションを選択できるようにした。 ・背景ブラシのスタイルと前景色、背景色を選択できるようにした。  上記二点は訳も分からずに操作すると訳が分からなくなるので設定値を設定ファイルに  持つことはせず次回起動時には元に戻るようにした。 ・新たに「テスト」メニュー項目を追加し、そこへ「エアロテーマのON/OFF」と「APIテスト」  を移動。  ラスタオペレーションと背景ブラシの設定もそこへ追加。 ・カーソルキーでマウスカーソルを移動する時に反応が悪くなっていた不具合を修正。  SetCursorPos APIではなくmouse_event APIを使用していたため反応が悪かったように  なっていた。  実際はmouse_eventの仕様で、システムで設定されている閾値を超えないと動かないこと  によるもののようだ。 2017-01-26:Ver 2.8.0.197 ・定点キャプチャで終了した次の起動の時に移動ボタンが表示されなかった不具合を修正。 ・グリッド色選択のツールボタンが押すたびにオン・オフの切り替わる表示になっていた  不具合を修正。  本来は押したらオンのままの状態が正しい。 ・グリッド及びサブグリッドの色を選択して終了すると範囲外のエラーがでることがあっ  た不具合を修正。  ColorToRGB関数を使わないといけなかった。 ・拡大画像の反転・回転表示に対応。  通常、左右反転、上下反転、右90度回転、左90度回転、180度回転。 マイナーバージョンアップ。 2017-01-12:Ver 2.7.9.193 ・高DPI環境への対応に伴うレイアウトの不具合を修正。 ・一覧設定のカラー情報、カーソル位置情報、ウィンドウ情報、オプションの設定画面を  グループボックスとチェックボックスを使用したものからチェックリストボックスへ変更。 ・大きいアイコンオプション追加。 ・動的呼び出しを行うすべてのAPIを効率化。 ・APIテストにGetDeviceCapsを追加。 2016-10-21:Ver 2.7.8.186 ・高DPI対応にしたはいいもののマウスカーソル下のウィンドウ情報が正しく取得できてい  なかった不具合を修正。 ・いくつかの動的呼び出しを行うAPIの効率化。 2016-10-08:Ver 2.7.7.182 メンテナンスフェーズ、リリース1。 ・高DPI環境への対応。 ・クリップボード監視の取りやめ。  合わせてテキスト書き換えメニューのキャプションをシンプルなものに戻した。 ・メニューの独自描画を取りやめ。  OS標準に戻した。 ・APIテストにGetPhysicalCursorPosを追加。 2016-08-25:Ver 2.7.6.178 ・倍率のツールボタンがチェック状態の時に押すとチェックが外れてしまう不具合を修正。 ・ツールボタンのドロップダウンボタンを廃止。 ・APIテストに項目をいくらか追加。 ・Ctrlキーを押しながらコピーでファイルに書き出して関連付けされたアプリケーション  を起動する機能を停止。 ・一覧設定でAPIを選択するとエラーが起きる不具合を修正。 2015-10-28:Ver 2.7.5.168 ・APIテストにChildWindowFromPoint等TPointを引数に取る3つのAPIを追加。 ・APIテストの実装をクラス化。  将来のdll化、プラグイン対応に向けて。 ・クライアント座標の計算を間違えていた不具合を修正。  ScreenToClient APIを使わず独自に実装していたのが間違っていた。 ・APIテストの表示する項目のカスタマイズに対応。 2015-10-01:Ver 2.7.4.166 ・EnabledがFalseのウィンドウを補足しなくなっていた不具合を修正。 2015-03-10:Ver 2.5.9.139で紛れたもの。 Resultのセットの位置を間違えていた単純なミス。 ・ウィンドウテキストが4000文字を超えたあたりでシステムエラーが起きる不具合を回避。  D6のWideFormat関数のバグ。 2015-08-31:Ver 2.7.3.162 ・カスタマイズウィンドウでタブを選択した時に各ウィンドウを作成するように変更。  カスタマイズウィンドウを最初に表示する時の高速化のため。 ・コピーメニューに中間ファイルをUTF-8で保存するオプションを追加。 ・APIテストにAPI追加。  トラックバーのメッセージも。 2015-07-23:Ver 2.7.2.158 ・「キャプチャ/更新」を行うとメモリーリークしていた不具合を修正。 ・タイトルバーのプログラムアイコンをクリックしてもメインメニューを表示しなくなっ  ていた不具合を修正。 ・モニター間移動が必ずプライマリーモニターの左上隅に来ていた不具合を修正。  またデフォルトでプライマリーモニターの左上隅に移動、Shiftキー併用でモニター間  移動に動作変更。 ・ツールバーの「実寸表示」ボタンを左マウスボタンの押下時のみにするように変更。 2015-07-18:Ver 2.7.1.158 ・メニューカスタマイズウィンドウと一覧設定のチェックボックスのキャプションの表示  を統一。  メニューで非表示にした場合グレーテキスト+アンダーラインで表示。 ・キャプチャメニュー実装。 2015-07-11:Ver 2.7.0.158 ・APIテストにAPIを追加。 ・メニューカスタマイズのUI変更。  フラットなチェックリストボックスからツリービューとチェックリストボックスの併用  に変更。  エクスプローラーのような感じ。 ・設定・カスタマイズウィンドウを起動時に作成しないように変更。  更なる起動速度改善のため。 マイナーバージョンアップ 2015-07-01:Ver 2.6.0.153 ・APIテストウィンドウ追加。 ・ウィンドウスタイル詳細ウィンドウをプログラム起動時に作成しないように変更。  起動速度改善のため。 2015-03-10:Ver 2.5.9.139 ・ウィンドウスタイルにWS_EX_TRANSPARENTとWS_EX_LAYEREDがセットされているマウスで  触れないウィンドウの情報が取得できなかった不具合を修正。 ・一部ライブラリの不具合を修正(動作に影響はなし)。 2015-03-06:Ver 2.5.8.139 ・Aero テーマが有効な場合トップレベルウィンドウ以外のコントロールのRectの取得に  失敗していた不具合を修正。  2013-11-21に紛れた不具合。 2013-12-21:Ver 2.5.7.139 ・「グリッド表示」のツールボタンをマウスで押したままマウスカーソルをツールボタン  外に移動させた時の挙動をチェックボタンと同じようにした。 ・倍率やグリッド選択のツールボタンで選択状態のボタンを押すと選択解除の状態になっ  てしまっていた不具合を修正。 2013-11-21:Ver 2.5.6.139 ・Aero テーマが有効な場合「ルーペモード」と「自身をキャプチャしない」機能を無効に  するようにした。 ・Rectの取得をAero テーマが有効な場合に対応。 ・Aero テーマの有効・無効を切り替える機能を実装。 2012-11-21:Ver 2.5.5.139 ・64bitOSで32bitプロセスから64bitプロセスの実行ファイル名を取得できなかった不具合  を修正。 2012-08-01:Ver 2.5.4.139 ・「テキスト書き換え」で一時停止時にキャッシュ情報を参照していなかった不具合を修  正。 2011-09-29:Ver 2.5.3.139 ・「コピー」メニューと「テキスト書き換え」メニューにコマンド追加。  カラーの値の各成分や座標のX,Y、サイズのLeft,Top,Width,Heightのそれぞれの値など。  ※これらのコピーカスタマイズは非対応。 2011-09-26:Ver 2.5.2.138 ・ウィンドウ情報の一部のツールバーアイコンがずれていた不具合を修正。 ・ウィンドウ情報の親ウィンドウにアイコンがなかったミスを修正。 ・ショートカットカスタマイズウィンドウのセットボタンのEnabledが常にFalseのままに  なっていた不具合を修正。 2011-09-23:Ver 2.5.1.138 ・メニューカスタマイズで「リセット」を行うとすべてのメニューが表示されるのを起動  時に表示・非表示の初期値を保持して適用するように変更。 ・メニューカスタマイズでで非表示のメニューはグレーアウトで表示するようにした。 2011-09-21:Ver 2.5.0.138 ・カーソル下のウィンドウのウィンドウテキストを書き換える機能を実装。  画面の色を拾ってウィンドウズのカラーダイアログにセットする時の手間が省けるよう  になった。 ・メニュー、ツールバー、ショートカットの各カスタマイズウィンドウにヒントを表示す  るボックスを配置。  今まではアクションのカテゴリ/キャプションであったので少し説明が丁寧になった。 マイナーバージョンアップ 2011-06-24:Ver 2.4.11.136 ・一時停止を2回以上行うと範囲エラーが起きてしまう不具合を修正。  恐らく2011-05-07:Ver 2.1.10.104の時に紛れたバグ。 ・[Ctrl]を押しながらコピーした時に実行プログラムが前面に表示されるようにした。 2011-05-28:Ver 2.4.10.136 ・メニューとツールバーのカスタマイズが反映されていなかった不具合を修正。 2011-05-10:Ver 2.4.9.136 ・起動中にディスプレイ情報が変わった後にツールバーのドロップダウンメニューを表示  させようとするとアクセス違反のエラーが出てしまっていた不具合を修正。  DelphiのTScreenクラスの不備を小技を使ってどうにかすり抜け。  ただし完璧ではないかも知れない。 ・マイナス座標にあるモニター上で終了した場合次の起動でそのモニター上ではなくメイ  ンモニターの左上隅で起動していた不具合を修正。  ↓のマルチモニターのライブラリの入れ替えで入り込んだ不具合。 2011-05-07:Ver 2.4.8.135 ・ユーザー指定座標を長さの表示に変更。  座標を表示するより長さの表示の方が使い勝手が良かったので。 ・一時停止の後モニター情報が変わり解像度が変わるとキャッシュ画像とモニターの解像  度が食い違うことから本来移動できるはずの位置に移動できなかったりその逆に移動で  きないはずの位置に移動できてしまっていた不具合を修正。 ・一時停止時と定点キャプチャ時にマイナスの位置のモニターの拡大画面上をダブルクリッ  クしてもその位置までいかなかった不具合を修正。 ・ルーペモード時カーソルや移動ボタンで移動させるとデスクトップ画面の外までも移動  できてしまった不具合を修正。 ・非力なCPUのPCでルーペモードの移動で固まってしまう不具合を途中のイベントをフラグ  を使ってスルーする処理を入れることで修正。 マルチモニターのライブラリをごっそり書き換えたので関連する箇所でのバグが入り込ん だかも知れないので要注意。 2011-04-08:Ver 2.4.7.133 ・「自身をキャプチャしない」設定の時のちらつきを軽減。 ・フォームのサイズ変更した後マウスを動かさずにいるとキャプチャが間引かれるためデ  スクトップ画面と拡大画面の違いが目立つことがあったのでサイズ変更後一度だけ更新  頻度を下げるようにして対処。 2011-04-07:Ver 2.4.6.133 ・マルチモニター環境でモニターがマイナスの位置にある時に一時停止でキャプチャでき  ていなかった不具合を修正。 ・同じく一時停止時と定点キャプチャモードの時にマイナス位置にあるモニターに掴んで  移動できなかった不具合を修正。 2011-03-03:Ver 2.4.5.133 ・キャプチャのルーペモード時に移動パネルを表示するようにした。 ・ウィンドウスタイルのUnicodeオプションのキャプションを「UTF-8で出力」に変更。 ・ウィンドウスタイルフォームのポップアップメニューの「UTF-8で出力」が表示されて  いなかった不具合を修正。 2011-03-03:Ver 2.4.4.133 ・自身のファイル名をUnicodeな文字を含んだものに変えた場合の一時ファイル名の主ファ  イル名にUnicodeを含まないものにするように修正。  関連付けされた実行ファイルがUnicede対応ではない場合への最低限の対処。  わざわざこのプログラムのファイル名をUnicodeな文字を含んだものに変えるという特別  な場合に対しての(あまり必要性もない)修正。  ただし自身をUnicodeな文字を含むフォルダに置かれた場合は関連付けされた実行ファイ  ル側で対処されていない限りどうにもならないことなので対処しきれない。 2011-02-12:Ver 2.4.3.128 ・コピー形式の変更を設定ファイルに保存していなかった不具合を修正。 ・[Ctrl]を押しながらコピーしたときプログラムのパスにUnicodeな文字があると一時ファ  イルを作成できず関連付けされたプログラムへ渡せなかった不具合を修正。 2011-02-10:Ver 2.4.2.127 ・起動中にシステムを終了させたりログオフさせたりした場合設定を保存できなくなって  いた不具合を修正。 2011-01-21:Ver 2.4.1.127 ・Dllプリロード攻撃対策。 2011-01-10:Ver 2.4.0.127 ・設定ファイルをバイナリで持つように変更。  起動が若干早くなった。 ・設定に「タイトルバー」を復活。  ツールバーに最小化と閉じるボタンを表示するのは暫定でなしに。  タイトルバーなしの時のフォームの枠は一本線ではなく盛り上がった枠のまま。 ・ルーペモードでウィンドウ情報の表示が間違っていた不具合を修正。  下のウィンドウではなく自身の情報になっていた。 設定ファイルをバイナリで持つようにしたのでマイナーバージョンアップ。 2011-01-08:Ver 2.3.16.121 ・ショートカットカスタマイズのキー設定の表示と設定値が食い違っていた不具合を修正。  区切りを削除していたのにその分を修正していなかったため。 2010-12-30:Ver 2.3.15.121 ・設定メニューから「タイトルバー」と「ツールバーを隠す」を削除。  シンプルに。  タイトルバーは将来チェックで線一本だけのシンプルな枠の外観として復活するかも知  れない。 ・キャプチャメニューの「スムーズキャプチャ」を設定メニューに移動。 ・「ルーペモード」を実装。  キャプチャメニューの固定キャプチャとの排他選択。  設定ウィンドウではラジオボタンではなくチェックボックスのままの方が簡単なのでそ  のまま。  本当ならカーソル追従モードも入れてラジオボタンにした方が分かりやすい。 ・「実寸表示」のツールボタンを実用的なものにした。  押した状態で等倍表示&そのままドラッグで等倍表示しながら移動、離して元の倍率に  戻る。 ・マルチモニタークラスを余計に作成していたミスを修正。 ・一時停止時の更新機能実装。 2010-12-19:Ver 2.3.14.116 ・9x系やNTの場合にAlphaBlendがTrueにならないように調整。 ・一時停止時に他のレイヤードウィンドウなトップべレベルに隠れているトップレベルウィ  ンドウの情報が取得できなかった不具合を修正。 ・レイヤードウィンドウで透過させるウィンドウの表示の仕方をキャプチャ時と一時停止  時で一緒にしていたのをキャプチャ時には透過領域の判定を生かすように変更。 ・キャプチャ画像のコピーでグリッドなしにチェックを入れているとレイヤードウィンド  ウがコピーできなかった不具合を修正。 2010-12-16:Ver 2.3.13.111 ・一時停止時「自身をキャプチャしない」設定にしていた場合表示していないレイヤード  ウィンドウの情報を表示していた不具合を修正。 2010-12-03:Ver 2.3.12.111 ・常に手前に表示の仕方を微調整。 2010-10-29:Ver 2.3.11.111 ・HTMLカラーの表示で頭の'#'を取り除いて数値のみの表示にした。  HTMLで16進表記の場合頭に付けるのは'#x'であったので、いっそ無くしてシンプルに。 ・ウィンドウ情報のウィンドウスタイルのメニューを他と分けて「メインフォームに追従」  を追加。 2010-10-11:Ver 2.3.10.110 ・サブグリッドをキャプチャポイントを中心に引くように変更。  キャプチャポイントを始点にして画面のピクセル数を数えやすくするため。 ・カスタマイズフォームで「コピー形式」と「バージョン情報」のタブの「閉じる」ボタ  ンを押してもタブ内の項目が消えてしまうだけでカスタマイズフォームは閉じなかった  不具合を修正。 ・[Ctrl]+[Shift]+起動でサブグリッドの二色目を使わない設定であるのに二色目が使われ  ていた不具合を修正。  ついでにその色が黒になっていた不具合も合わせて修正。 ・一覧設定で「リセット」ボタンを押したときにサブグリッドの二色目の設定が初期値に  戻っていなかった不具合を修正。 ・サブグリッドの二色目のデフォルト値を黄色から濃い緑色に変更。 ・初期値で「サブグリッドに二色使う」をチェックありに変更。 ・メニューのいくつかを初期値で非表示に変更。 2010-10-01:Ver 2.3.9.110 ・情報表示欄の高さの計算と情報表示とコピーの各ルーチンを共通化。  情報表示項目の増減に対処しやすいように。 ・初期設定のツールボタンのスタイルをドロップダウンに変更。  やはりドロップダウンでメニューが出るのが操作性が良い。 2010-09-24:Ver 2.3.8.107 ・「自身をキャプチャしない」オプションをオンにしたとき自身だけでなく他のレイヤー  ドウィンドウもスキップするように変更。  キャプチャできていないにも関わらず情報表示欄にはレイヤードウィンドウの情報が表  示されていたのでそれへの対処。 2010-09-23:Ver 2.3.7.106 ・ウィンドウスタイルの詳細表示を表示しているとキャプチャがカクカクしてしまう不具  合を修正。 ・「常に手前に表示」オプションをオンにしているとカスタマイズフォームが前面に出て  こなくなる不具合を修正。 ・「自身をキャプチャしない」オプションをオフにしたときにレイヤードウィンドウをキャ  プチャするように修正。 2010-09-21:Ver 2.3.6.105 ・ウィンドウスタイルの詳細表示にウィンドウハンドル、クラス名、ウィンドウテキスト  を表示するように変更。 ・ウィンドウスタイルの詳細表示のちらつきを無くした。 2010-08-11:Ver 2.3.5.105 ・ウィンドウスタイルの詳細表示のデータの間違いを修正。  WS_OVERLAPPEDWINDOWの値を間違えていた。 ・ウィンドウスタイルの詳細表示の判定の仕方の間違いを修正。  ウィンドウスタイルと各スタイルとのandを取って0でなければ表示させていたのを、and  を取った値が各スタイルと一致したら表示するように変更。 2010-08-06:Ver 2.3.4.105 ・サブグリッドの二色目を選択できるようにした。  今まではサブグリッドの反転色に固定だった。 2010-08-05:Ver 2.3.3.105 ・タイトルバー無し&常に前面に表示で起動するとTopMostが外れてしまっていた不具合を  修正。 2010-06-05:Ver 2.3.2.104 ・ツールバーのカスタマイズフォームで左右のリストの大きさが違っていたミスを修正。 ・その他カスタマイズライブラリの更新(機能面のアップデートはなし)。 2010-05-23:Ver 2.3.1.104 ・スタイル詳細ウィンドウにメインフォームの移動に追従を実装。 ・ショートカットのカスタマイズのショートカットキーとマウスジェスチャのポップアッ  プメニューにコマンドのリストを表示し選択できるようにした。 2010-05-21:Ver 2.3.0.104 ・ツールバーのカスタマイズに対応。 ・一覧設定、カスタマイズ機能、バージョン情報を独立のフォームに分割していたのを一  つのフォームに収めてタブで切り替える方式に戻した。 ・グリッドに「サブグリッドに二色使う」メニューを追加。 マイナーバージョン上げ。 2010-05-07:Ver 2.2.4.104 ・一覧設定、カスタマイズ機能、バージョン情報を一つのフォームに収めていたのを独立  のフォームに分割。  最初に設定フォームを開くときのちょっとひっかかる感じがなくなった。 ・ウィンドウ情報にウィンドウスタイルを追加。  合わせてウィンドウスタイルの詳細情報を別フォームで表示するオプション追加。 ・キャプチャ/実寸表示(1:1)を一時停止、定点キャプチャのとき以外にも動作するように  変更。 ・ショートカットキーをTActionのSecondaryShortCutsプロパティからフォームのOnKeyUp  イベントで処理するように変更。  複数フォームの場合でも問題なくキー入力ができるようになった。  ショートカットに割り当てられたキーを押しっぱなしにした場合でも不具合なくいける  ようになった。 ・メニュー表示のカスタマイズがツールボタンのメニューに反映していなかった不具合を  修正。 2010-04-28:Ver 2.2.3.103 ・マウスジェスチャのコマンド割り当てを削除したまま終了するとエラーが起きてしまう  不具合を修正。 ・ショートカットの割り当てを削除したときにバージョン情報のキーリスト一覧が正しく  更新されない不具合を修正。 2010-04-25:Ver 2.2.2.103 ・レスポンス改善のため設定フォームの作成をキャプチャの合間に行うように変更。  設定フォームの作成に時間がかかるため。 ・バージョン情報の現在のショートカットキーにコマンド一覧を追加。 ・ショートカットキーの設定にスプリッタを追加して任意の幅に調整できるようにした。 ・見た目を少しフラットっぽく。 ・キーボード操作の改善。 2010-04-15:Ver 2.2.1.97 ・ディスクが書き込み禁止のときの不具合に対処。 ・一時停止のときのキャプチャ画像の乱れを改善。 2010-04-06:Ver 2.2.0.97 ・マウスジェスチャのカスタマイズ対応。 ・Shift+Ctrlを押しながらの起動でキャプチャしなくなっていた不具合を修正。 ・DelphiのプログラムでbsNoneやbsDialogのときにウィンドウサイズのLeftとTopがモニタ  画面の中心からの値になっていた仕様をモニタの左上隅からの値に仕様を変更。 マイナーバージョンあげ。 2010-04-03:Ver 2.1.10.97 ・一覧設定フォームを表示させた後キャプチャがカクカクしてしまう不具合を修正。 2010-03-14:Ver 2.1.9.97 ・一覧設定のTabStopの調整。 2010-03-13:Ver 2.1.8.97 ・親ウィンドウのウィンドウハンドルの取得をGetParent APIからGetAncestor APIに変更。  それに伴いDelphi製のプログラムでタイトルバーがないものの親ウィンドウとして  TApplicationを返していたのがデスクトップを返すように仕様変更。  というかすべてのアプリケーションでトップレベルの親としてGetDesktopWindowのウィ  ンドウハンドルを返すように変更。 ・親ウィンドウの情報表示にウィンドウテキストを追加。 2010-02-16:Ver 2.1.7.96 ・キャプチャ/一時停止およびキャプチャ/定点キャプチャのときにマウスのクリックで移  動できるボタンを表示するようにした。 ・キャプチャするポイントの移動をモニターの範囲内に制限。 ・カーソル位置/ユーザー指定の原点をモニター外にもセットOKなように変更。 ・一覧設定/コピー形式にファイルバージョンの項目がなかったのを追加。 ・コピーのメニューにすべてのテキスト情報がなかったので追加。 ・すべてのテキスト情報のコピーで値だけでなくキャプションと値を書き出すように変更。 2010-02-13:Ver 2.1.6.95 ・一番手前のウィンドウが正しく取得できないことがあった不具合を修正。 ・一時停止時にクライアントの原点の座標が正しい値でなかった不具合を修正。 ・一時停止時にやや遅れて画面が描画される問題を、時間のかかる処理の前にとりあえず  画面更新をかけることで目立たなくした。 ・コピー形式を設定ファイルにすべて書き込んでいたものをデフォルトと違うもののみを  書き出すように変更。 ・一覧設定画面を1画面に整理。 2010-02-06:Ver 2.1.4.90 ・カスタムフォームのショートカットでコマンドリストからキーリストへのドロップだけ  でなくキーリストからコマンドリストへのドロップにも対応。 ・ショートカットのツールバーを根こそぎ削除。 ・カスタムフォームの「メニュー」と「ショートカット」にそれぞれカテゴリジャンプメ  ニューを追加。 ・メニューで非表示にしたメニュー項目は情報表示も行わないように変更。 2010-02-03:Ver 2.1.3.89 ・コピーのフォーマット形式でHTMLとCOLORREFの16進の桁数を指定するように変更。 ・「すべてのテキスト情報をコピー」機能復活。 ・OSがNT系ならばウィンドウ情報のテキストと実行ファイル名をUnicode版APIを使って表  示するように変更。  合わせてコピーもNT系OSならばUnicodeに対応。  ただし[Ctrl]+コピーで作られる一時ファイル名はUnicode非対応のままなのでUnicode  特有の文字がパス中に存在するフォルダに実行ファイルを置くとエラーになる。 2009-11-08:Ver 2.1.2.89 ・メニューから「一覧設定」を削除。  カスタマイズに一本化。 ・カスタマイズのコピー形式の不具合を修正。  画像のグリッド、情報欄のチェックボックスと実際の動作が逆になっていた不具合を修正。  ウィンドウ情報のクラス名とテキストに書式をセットしようとすると変換エラーが出る  不具合を修正。  ウィンドウ情報の実行ファイル名のファイル名のみのチェックボックスの状態が保存さ  れない不具合を修正。 2009-10-05:Ver 2.1.1.89 ・一覧設定フォームとカスタマイズフォームを統合。 ・一覧設定のアイコン表示を廃止。  シンプルに。 ・詳細設定タブのキャプチャポイントの表示がうまくいかなくなっていた不具合を修正。 2009-10-04:Ver 2.1.0.87 ・一時停止後のウィンドウ情報の取得に不具合があったのを修正。 ・メニューカスタマイズ、コピーのフォーマットのカスタマイズに対応。 ・一覧設定等にもアイコン表示。  にはしたものの、画面がゴチャゴチャするので無くす方向で検討。 マイナーバージョンアップ。 2009-09-10:Ver 2.0.0.83 ・カスタマイズの修正と調整をひとまず終了。 メジャーバージョンアップ。 2009-08-29: ・グリッドメニューの選択がうまくいかなくなっていた不具合を修正。  ラジオメニューやラジオボタンとのからみでActionのAutoCheckプロパティをFalseにし  たことでメニューのチェックが自動で行われなくなっていたため。 2009-08-20: ・一覧設定フォームのソースコードが9x対応でなかった見落としを修正。 ・キーボードショートカットのカスタマイズに対応。  ただし修正・調整の必要があるためメジャーバージョンアップは見送り。 2009-08-16:Ver 1.4.9.83 ・9xでも動くように見直し。  ついでにソースコードをまとめた。 2009-08-02:Ver 1.4.8.77 ・タイトルバーの表示/非表示オプション復活。 ・ツールバーに最小化ボタン、終了ボタン復活。 ・ツールバーのグリッドボタンを左クリックしたときの挙動をメニューのポップアップか  らグリッドの表示/非表示に戻す。 ・Ctrl併用のコピーでファイルへ保存し関連付けされたプログラムを起動する機能を復活。 2009-07-21:Ver 1.4.7.77 ・セカンダリモニターがあるとき起動時にプライマリーモニターの外に表示されてしまう  ことがあることへ対処。  フォームのOnCreateの最後にShowメソッドを呼ぶことで回避。原因はわからず。  デバッグコードを仕込むと正常に表示されるという不思議な現象。  VCLのマルチモニターの扱いに不具合がありそうな予感。 ・Shiftキーを押しながら起動した場合何も表示されなくなっていた不具合を修正。 2009-06-12:Ver 1.4.6.77 ・バージョン情報を汎用フォームで表示するように変更。 ・設定フォームのモーダル表示をやめ「常に前面に表示」のセットのときに本体だけでな  く設定フォームとバージョン情報の汎用フォームにもTopMostをかけるようにした。 ・フォームのBorderStyleをbsSizeTooWinからbsSizeableに変更。 2009-05-29:Ver 1.4.5.75 ・オプション設定フォームの表示をモーダルに変更。  「常に前面に表示」の場合設定画面が本体の後ろに表示されてしまうため。 ・ヘルプ画面が複数表示できてしまう不具合を修正。 2009-03-14:Ver 1.4.4.75 ・iniファイルの読み込みでShift-JISを指定していたのを廃止。  Shift-JISで読み込ませると、BOMつきのUnicodeで保存されていたものはBOMをBOMとして  ではなく文字列として認識してしまうため。 2009-01-25:Ver 1.4.3.72 ・iniファイルの後ろにゴミがついてしまう不具合を修正。 2009-01-09:Ver 1.4.2.71 ・一時停止の時の情報表示欄の色をclInfoBkとclInfoTextに変更。 ・一時停止・固定キャプチャ時にズーム画面をドラッグした場合フォームを移動させるの  ではなくズーム画像を移動させるように変更。 ・一時停止・固定キャプチャ時[W]キーまたは[Shift]キーを押している間は倍率を1倍にす  るようにした。 2008-12-10:Ver 1.4.1.70 ・ズーム画像のコピーでツールバーの大きさを調整していなかった不具合を(今頃)修正。 2008-12-09:Ver 1.4.0.70 ・一時停止時でもカーソル位置のウィンドウ情報を取得できるようにした。 このことによりマイナーバージョンあげ。 2008-12-05:Ver 1.3.0.70 ・大幅なソースコード見直し。 ・起動中にモニターが増えたり減ったりした場合にモニター座標の表示が正しくならない  不具合を修正。 ・モニターが減った場合、その減ったモニター上にこのプログラムがあったら別のモニター  に移動するようにした。 ・モニター間移動を[Ctrl]+[Q]から[Q]に変更。 ・マルチモニターでメイン以外のモニターでの起動に対応。 ・タスクバーのメニューから「設定」を削除。「モニター間移動」を追加。 ・オプション設定フォームの設定をリアルタイムに反映するように変更。 ・[Ctrl]キー併用のコピーでテンポラリファイルを作り対応するアプリケーションに渡し  ていたのを中止。  ズーム画像のテンポラリファイルで実行ファイル名にUnicode文字が使われると不具合が  発生する場合があり対応が面倒であるのとシンプルかつ無用な混乱をさけるため。 ・ウィンドウ情報の「ProcessID」を削除。"ウィンドウ"情報じゃないし…ということで。 ・一時停止時にフォームをつかんでキャプチャポイントを移動させるのにモニターの範囲  外にいかないようにしていたのをスムーズな動作に改良。またそのときの併用キーを  [Ctrl]から[Shift]に変更。 ・ホイールによるカーソル移動の併用キーを[Shift]から[Alt]へ変更。  これで[Shift]併用で10ピクセルの移動が可能となった。 ・設定で一度にOn/Offさせていた動作を全部チェックしていなければ全部チェックに変更。 2008-12-01:Ver 1.2.11.69 ・一時停止時に[Ctrl]+ドラッグで画面を移動させるのにフォーム外にマウスを持っていっ  ても移動を認識するように変更。 ・ウィンドウ情報表示のフォーマットを少し変更。  ウィンドウサイズの表示の並びを Width Height Left Top に戻す。  クラス名とテキストのダブルクォーテーションの囲みを無しに。 ・デスクトップの範囲外の色を黒に戻す。 2008-09-17:Ver 1.2.10.69 ・[Shift]を押しながら起動でスクリーンの左上にデフォルトの大きさで表示。 ・起動後に[Shift]+Qでスクリーンの左上に移動。 ・起動後に[Ctrl]+Qでモニター間移動。 以上三点の機能を追加。 2008-09-08:Ver 1.2.10.69→1.2.9.69 ・カラーに10進表示を追加。 が、すぐに必要とした表示が10進ではなくCOLORREFであることがわかり、削除の憂き目。 2008-07-08:Ver 1.2.9.69 ・モニター座標を実装。 ・ヘルプの表示位置をpoDesktopCenterからpoScreenCenterへ変更。 poDesktopCenterだと複数のモニターにまたがってしまうので。 ・一時停止時にモニターの範囲外にカーソルポジションがいかないように修正。 ・すべてのテキストをコピーで不用な項目が残っていたり必要な項目が入っていなかった りしていたミスを修正。 ・ウィンドウサイズの表示の並びをLeft Top Width Heightに変更。 2008-06-23:Ver 1.2.8.69 ・グリッドを表示しない時のマウスカーソルボックスのラインがずれてしまっていたバグ を修正。 ・ショートカットのキーアサインを少々変更。 ・ヘルプを少し充実。 2008-03-05:Ver 1.2.7.69 ・Ctrl+Shift+ホイール操作でフォームを拡大縮小するのを10ピクセル毎に変更。 ・オプション設定フォームに初期化ボタン設置。 少しデーターの持ち方を変えたのでそのせいでバグが紛れ込んでしまったかも…? 2008-02-19:Ver 1.2.6.69 ・常に前面に表示の見分け用の文字を「▲」から「↑」に変更。マウスジェスチャーと の関連もあってこっちの方がいいかなと思って。 ・スムーズキャプチャ時のタイトルバーの表記をメニューとの整合性も考えて「頻繁に」 から「スムーズ」に変更。 ・一時停止、スムーズキャプチャ、定点キャプチャ時に常に前面に表示の見分け用の文字 「↑」が表示されていなかったのを修正。 ・マウスジェスチャーの←をグリッドの、→をツールバーの表示・非表示に変更。気分的 なもので、、 2008-02-11:Ver 1.2.5.69 ・共有されていない場合のiniファイル書き込みのエラーに対処。 同時に[Ctrl]を押しながらクリップボードへコピーを行ったときに関連付けられたプログ ラムへ渡すファイルへの書き込みのエラーにも対処。 ・ウィンドウ情報のテキストの表示でウムラウトのようなUnicode文字に対応。 今までやっていなかったのかと… ・フォントをTerminalからMS ゴシックに変更。 ・「大きいフォント」オプション追加。 2008-01-29:Ver 1.2.4.69 ・メニュー整理。「タイトルバー」を削除「フルメニュー」を消去。「プロセスID」復活。 ・メニューカスタマイズの破棄。 ・ツールバーのグリッドサブメニューを取りやめ、表示・非表示に切り替え。 ・マウスジェスチャー導入  ↑ 常に前面に表示  ↓ 一覧設定フォーム表示  → グリッド表示・非表示  ← ツールバー表示・非表示 ・常に前面に表示させたとき見分けがつくようにタイトルバーに「▲ 」を表示するようにした。 2007-12-11:Ver 1.2.3.69 ・[Ctrl]+[Shift]+ホイール↑↓or[Ctrl]+[Shift]+方向キー↑↓でフォーム拡大・縮小を実装。 あんま必要ないような気もするんだけれど、dboxやmprとの整合性みたいな感じで。 2007-12-07:Ver 1.2.2.69 ・情報表示欄に罫線を表示 ・情報表示欄の項目タイトルを基本的にメニューに準拠 ・Window情報からPIDを廃止。ウィンドウ情報じゃないし、、 2007-11-17:Ver 1.2.1.69 ・内部の作りを将来のカスタマイズ化に備えてActionListを利用するものに変更。 ・ツールバーのメニューに「キャンセル」を追加。 ・フルメニューを当面の間非表示。 2007-11-13:Ver 1.2.0.62 ・ツールバーの実装。 ・「オプション」の「タイトルバー」と「ツールバー」をチェックで表示しないにしてい たのをチェックで表示するように変更。 マイナーバージョン一個上げ。 2007-11-12:Ver 1.1.1.61 ・「一覧設定」→「オプション」→「グリッド」でコンボボックスから「任意」を選んだ 後カラーダイアログで「キャンセル」を押したときに元の(任意を選ぶ前の)項目に戻す ようにした。 「任意」の色をキャンセルしたということは「任意色」をキャンセルしたものとみなすので。 2007-10-08:Ver 1.1.0.56 ・「オプション」に「一覧設定」を追加。 設定を右クリックからポップアップメニューを立ち上げてちまちまやらずに一括してやれ るようになった。一度にいくつかの設定を変更したいときに便利かと。 ・「フォント」メニュー削除。便利かもしれんがあまり必要なかろうと。 ・「設定を保存」メニューも削除。 ・「固定キャプチャ」を「定点キャプチャ」に名称変更 ・「頻繁にキャプチャ」を「スムーズキャプチャ」に名称変更 ・「一時停止」「定点キャプチャ」「スムーズキャプチャ」をトップメニューからオプション 下に移動。 ・タスクバーのメニューに「一覧設定」を追加。 「カスタマイズ」で一覧設定メニューの非表示にしていてもここから呼び出せるように。 2007-09-25:Ver 1.0.5.55 ・デスクトップの範囲外の色を$00100010に変更。 この色がどうやらaviなんかのオーバーレイのときの色に使われているようなので。まぁ、 たいした意味はないのだけれど。 2007-09-07:Ver 1.0.4.55 ・システムメニューをカスタマイズしていたのをやめた。シンプルに。 ・タイトルバー無しで最大化したあとタイトルバー無しを選択すると最大化が解除されて しまっているためその後元のサイズに戻すを選択しても最大化される前の大きさに戻らな い問題発覚。 解決策として最大化をやめた。システムメニューからも削除。 ・カーソル下のウィンドウを拾うのにWindowFromPoint関数を使っていたのだけれど、これ がグレイアウトしてたりモーダルダイアログの下にあるウィンドウのハンドルを返さない ことを発見。 EnumChildWindowを使って可視ウィンドウであれば返すような関数を書いて入れ替え。 ちなみにChildWindowFromPoint関数は不可視ウィンドウであっても返すので使えない。 2007-09-02:Ver 1.0.3.53 ・HeapChecker入れてみたら18個もエラーが出たので対処。 ・一括して情報表示のOn/Offのキー割り当てを[INS]/[BS]に変更。 一つのキーでトグルにした方がよいかも。 2007-08-27:Ver 1.0.3.51 ・[Ctrl]+Wheel、[Shift]+Wheelをグリッド選択、ルーラーOn/Offからカーソル移動に変更。 [Ctrl]+ホイールで上下移動、[Shift]+ホイールで横移動。 2007-08-19:Ver 1.0.2.51 ・カラー情報とウィンドウ情報の親メニューにチェックがついたりする妙な不具合を修正。 カラー情報・カーソル位置のショートカットを数字キー、ウィンドウ情報をCtrl+数字キー に割り当てし直し。 2007-08-08: ・F2の全部クリップボードへコピーでズーム画像もコピーするよう変更。 一眠りしたらやっぱりそれは不要だなと思い至り元に戻す。 [Ctrl]+[INS]/[Ctrl]+[BS]で一括して情報表示のOn/Off。 *) //{$DEFINE _DEBUG} {$IFNDEF _DEBUG} {$O+} {$Q-} {$R-} {$ENDIF} (* {$IFDEF _DEBUG} HeapChecker, {$ELSE} FastMM4, {$ENDIF} my_safedll, //safe dllルーチン Forms, main in 'main.pas' {App_BugsEye}, //メインルーチン custom_base in 'custom_base.pas' {App_BugsEyeCustom}, //カスタマイズのベースフォーム custom_setting in 'custom_setting.pas' {Form_Setting}, //一般設定フォーム custom_menu in 'custom_menu.pas' {Form_Custom_Menu}, //メニューカスタマイズフォーム custom_toolbar in 'custom_toolbar.pas' {Form_Custom_ToolBar}, //ツールバーカスタマイズフォーム custom_shortcut in 'custom_shortcut.pas' {Form_Custom_ShortCut}, //ショートカットカスタマイズフォーム custom_copy in 'custom_copy.pas' {Form_Custom_Copy}, //情報のコピー形式カスタマイズフォーム custom_help in 'custom_help.pas' {Form_VersionInfo}, //ヘルプフォーム windowstyle in 'windowstyle.pas' {App_BugsEyeWindowStyle}, //ウィンドウスタイル情報の詳細表示フォーム sub_api in 'sub_api.pas' {App_BugsEyeAPITest}, //APIテストフォーム my_settingfile in 'my_settingfile.pas', //設定ファイルルーチン lang in 'lang.pas', //将来の多言語化へ向けてメッセージ等の文字列を(とりあえず)分離 common in 'common.pas', //アプリケーション固有の汎用ルーチン my_apivalue in 'my_apivalue.pas', //APIテスト用ルーチン(汎用) winlist in 'winlist.pas', //見えているウィンドウをリストアップするルーチン(汎用) my_monitor in 'my_monitor.pas', //モニター関連の汎用ルーチン general in 'general.pas', //汎用ルーチン highDPIUnit in 'highDPIUnit.pas'; *) //{$R 'manifest.res' 'manifest.rc'} uses {$IFDEF _DEBUG} HeapChecker, {$ELSE} FastMM4, {$ENDIF} my_safedll, //safe dllルーチン Forms, main in 'main.pas' {App_BugsEye}, //メインルーチン custom_base in 'custom_base.pas' {App_BugsEyeCustom}, //カスタマイズのベースフォーム custom_setting in 'custom_setting.pas' {Form_Setting}, //一般設定フォーム custom_menu in 'custom_menu.pas' {Form_Custom_Menu}, //メニューカスタマイズフォーム custom_toolbar in 'custom_toolbar.pas' {Form_Custom_ToolBar}, //ツールバーカスタマイズフォーム custom_shortcut in 'custom_shortcut.pas' {Form_Custom_ShortCut}, //ショートカットカスタマイズフォーム custom_copy in 'custom_copy.pas' {Form_Custom_Copy}, //情報のコピー形式カスタマイズフォーム custom_help in 'custom_help.pas' {Form_VersionInfo}, //ヘルプフォーム windowstyle in 'windowstyle.pas' {App_BugsEyeWindowStyle}, //ウィンドウスタイル情報の詳細表示フォーム sub_api in 'sub_api.pas' {App_BugsEyeAPITest}, //APIテストフォーム my_settingfile in 'my_settingfile.pas', //設定ファイルルーチン lang in 'lang.pas', //将来の多言語化へ向けてメッセージ等の文字列を(とりあえず)分離 common in 'common.pas', //アプリケーション固有の汎用ルーチン my_apivalue in 'my_apivalue.pas', //APIテスト用ルーチン(汎用) winlist in 'winlist.pas', //見えているウィンドウをリストアップするルーチン(汎用) my_monitor in 'my_monitor.pas', //モニター関連の汎用ルーチン general in 'general.pas', //汎用ルーチン highDPIUnit in 'highDPIUnit.pas'; {$R *.res} //{$R my_menu.res} {$R manifest.res} begin {$IFDEF _DEBUG} HeapChecker.OutputClassName := True; HeapChecker.DumpLeakMemory := True; {$ENDIF} Application.Initialize; Application.Title := '虫の眼'; Application.CreateForm(TApp_BugsEye, App_BugsEye); Application.Run; end.