GetWinTx

最終更新日 2016 10/05
【概要】
他の Window の持っている通常はコピー出来ないテキストを取得してクリップボードに代入します。

【動作環境】
日本語 Win 2000 / XP / Vista / 7 / 8 / 10 ランタイムは特に必要有りません。

【インストール/アンインストール方法】
適当なところに置いて下さい。そこから ショートカットを張って使用して下さい。( 直でも良いですが ) アンインストールは単にファイルと 作成したショートカット等を削除して下さい。 他には何も残しません。

【使用方法】
立ち上げると何も出ませんが 欲しいテキストのあるWindow 上に マウスカーソルを合わせて Shift キー を押して下さい。押した時点でマウスカーソル 直下のWindow の持つテキストが 取得出来れば テキストクリップボードに代入します。
予め場所を指定して置きたい時には その場所をマウスカーソルで指定してCtrl を押しておいて下さい。 Shift キー を押した時の マウスカーソル とは関係なく予め指定した場所のテキストを取得します。 マウスカーソルの場所によってテキストが変わってしまう様なステータスバー等に使用して下さい。
取得できた時には 一般の Beep 音が鳴ります。取得出来ない時には警告音が 鳴ります。 ( UAC 関連で取得出来なかった時には システムの警告音になります。)
Shift キー が押されるまで 約 20 秒程待って押されなければ何もしないで終了します。
Escape キーを押すとその時点で何もしないで終わります。20 秒程も待てない時に押して下さい。 ( 忘れてしまっても 約 20 秒で消えるので特に問題は有りません。)
立ち上げる時に Shift キーを 押していると 最初に出た ツールチップを取得してクリップボードに 代入します。20 秒 ツールチップ が出なければ何もしないで終了します。
立ち上げる時に無変換キーを押していれば待たずに現在のカーソル位置のテキストを即取得します。

【コマンドライン】
コマンドラインに /12000 等と入れる事で12000/1000 = 12秒間待ちます。( 1/1000 秒単位 )この時は 12秒後に Shift を押さなくてもマウスカーソル下の文字を取得します。( 指定時間の最大は20秒です。 )
Shift を押せばその時点でのマウスカーソル下の文字を取得しますし Ctrl ESC キーの機能も同じです。 従って コマンドライン に /0 と入れた時には立ち上げた時のマウスカーソル下の文字を即取得します。
コマンドライン /NOW でも 立ち上げた時のマウスカーソル下の文字を即取得します。こちらは 立ち上げ時の 無変換キーを押している事と排他的な動作になります。ショートカットキーやマウスカーソルの位置とは無関係に 立ち上げが出来る時には使えるのではないかと思います。
立ち上げ時に 無変換キーを押していれば此の待ち指定のコマンドラインは無視します。 コマンドラインに /TIP と入れておくと 最初に出た ツールチップを取得します。立ち上げる時に Shift を 押しているのと同じです。コマンドラインの /TIP と 立ち上げる時の Shift キーは排他的なトグル動作に なっているので コマンドラインに /TIP と入れた時に Shift キーを押していると通常の動作になります。

【注意事項】
一部のセキュリティーソフトには GetWinTx は マルウェアー ( ビールス ) に見えてしまうかも知れません。 そんな時には GetWinTx を除外リストに入れて 使用して下さい。
此の辺りの事は 他のウィンドウのテキストの取得 に書いてありますから興味の有る方は読んでみて下さい。

【使用に関して】
此の プログラムは バグ 動作不良などが無い事を期待されて作られてはいますが 違う環境での 正常動作 又 誤動作から来る損害など についての 保証はいたしかねます。 ただし ご意見 提案 動作不具合報告等は歓迎いたします。

【履歴】
2002/03/18 Ver 1.030
ClipSaver.dll からテキスト取得機能を抽出して公開しました。
2002/03/29 Ver 1.121
最新の ClipSaver.DLL のコードにして安全性の向上共通化コードを見直しサイズの減少 取得テキストのオーバーフローのチェックも厳しくしています。又Window を探す方式を変えてテキスト取得範囲 も広げています。
2002/07/20 Ver 1.122
テキスト取得のタイミングをShift キーが離されるまで待つ事にして余裕を持たせました。 又 最新の ClipSaver.DLL のコードにして僅かですがサイズの減少をしています。
2003/04/28 Ver 1.160
最新の Version のコードに会わせて無駄を無くし又 予め取得場所を指定出来る様にもしました。
2004/04/28 Ver 1.200
最新の Version のコードに会わせてステータスバーのテキストはカーソルの有る場所だけにしました。 又 無変換 キーで何もしないで即終了を付加しました。
2005/05/14 Ver 1.210
反応のない( ハングアップしている)プログラムを相手にして自分も固まってしまう可能性を排除しました。
2005/05/15 Ver 1.220
反応のない( ハングアップしている)プログラムでも取得出来る時は取得する様にしました。
2005/05/13 Ver 1.240
ListView のコラムの数が取得できない時に同じ物を沢山取ってしまう不都合を修正しました。 又この部分での余分なコードを除きサイズダウンをしています。サイズの計算違いで子ウィンドウが 重なっている時に此を正確に特定できない事の有るのを修正しました。
2005/09/05 Ver 1.250
メニューテキストの取得方法を変えてメニューの各アイテムを取得する様にしました。 複数取得時の区切りを Tab だけでなく ',' カンマも指定できる様にしました。 50%程度長いテキストでも取得できる様にしています。リストビューでの HitTest が行を決定できずに 取得できない事が有るのを修正しました。
2005/11/12 Ver 1.260
立ち上げ時の関数を一つ減らして多少なりとも速くサイズもかなり減少させました。
2006/07/31 Ver 1.270
バッファを Local に取ることにして少しでも効率を良くしました。配列変数の取得が危ないパスを 修正しました。又 今回から NT 2000 XP 専用の実行ファイルもアップしました。 ( サイズが小さく動作も無駄がなくなっています。)
2006/08/05 Ver 1.280
直下のコントロールの種類を識別する所を関数を呼ばずにその場で直に又識別するのを 外れるのを前提に プログラムする事で 効率スピード( 此の部分だけなら 3 倍以上速くなりました) サイズ共に 改善しました。
2007/06/28 Ver 1.290
子 Window のクラス ComboLBox を認識しない不具合を修正し 直下のコントロールの 種類を識別する所の 文字種の統一をループの外に出して効率を良くしスピードアップをしました。
2007/07/23 Ver 1.300
バッファは確保してあったのに此が反映されていなかったのを修正して一つのアイテムの 文字列取得数を 112 → 208 文字まで増やしました。
2007/08/10 Ver 1.302
あり得ない文字数を返された時のバッファオーバーのガードを固めて此から起こる異常終了を無くしました。 又 一部のアイテムについては文字取得数が増えています。
2007/09/01 Ver 1.304
内部バッファを 整合性が有りより無駄が無く 安全な数に調整しました。 此に伴い一回の 文字取得数も 208 → 216 に増えました。
2008/05/26 Ver 1.305
テキストを取得する以前に取得サイズとバッファサイズとの確認を堅くしてバッファフルで エラーにならない様に しました。
2008/07/13 Ver 1.310
タスクマネージャ の様なタブの有る物についても正確に内容を取得出来る様にしました。 又 内部的には親ウィンドウが候補でない子ウィンドウについてはウィンドウの候補としての確認を省き多数の 子ウィンドウを持つウィンドウの解析スピードをアップしました。
2008/08/01 Ver 1.312
直下の親ウィンドウを探すのも内部的なループにして子ウィンドウを探すコードと共通化を 計りスピードと コード効率を若干ですが改善しました。
2009/04/22 Ver 1.400
同梱する物を Windows NT 系対応の物にしました。この為Version はこれを解り易くしました。 Windows 98 用のメモリマネージャー用の読み込み時間短縮オプションをやめ あまり意味の無かった速度優先 オプションも戻してアプリケーションのサイズ (ディスク サイズ )を縮小しました。
2009/08/20 Ver 1.410
コマンドラインに実行待ち秒数指定用のSW を新設して色々な状況を想定しての使用が 出来る様にしました。後 内部的にはキー入力判断の確実性を上げました。
2009/09/15 Ver 1.420
共有メモリーがテキスト取得に必要な時だけ此を確保する事にして少しでも相手方に 与える影響を少なく且つスピードアップしました。
又 本バージョンから 何も待たずにその場で即取得するNo Wait ( NT 専用 ) を加えました。
2009/11/30 Ver 1.422
No Wait ( NT 専用 ) に先に位置指定の出来るオプションを付けました。
2010/02/10 Ver 1.430
IE8 では影響をしてしまう事が有ったので此に対処しIE7 IE8 のタブ型のStatusbarにも きちんと対応する様にしました。又 処の所の確認をしっかりとして動作を決めるコードにし 場合によっては 文字数の制限を無くし余分な作業をしない様にしました。
2010/05/26 Ver 1.432
Shift を押しながら立ち上げてもクリップボードにテキストデータがある時には クリアーしてから代入しないと入らない事が有るのでこの時はデータをクリアーしてから代入する事にしました。
2010/10/17 Ver 1.434
子ウィンドウのクラスを認識するコードを効率の良くサイズの小さな物に換えました。
2012/10/23 Ver 1.500
ウィンドウのテキストだけでなく 立ち上げ時の Shift キー 又は コマンドラインの /TIP で ツールチップテキストも取得出来る様にしました。又 クリップボードに代入するのもより確実に 代入出来る方に変えました。
Ver 1.500 から Windows NT 系 NT 4.0 / 2000 / XP / Vista / 7 / 8 だけのサポートとさせていただきます。 Win 95 98 Me 環境の方は Ver 1.434 をご使用になって下さい。
2013/03/12 Ver 1.510
文字列検索コードをより汎用性の高い関数に換えて対応性を高めました。
テキスト取得条件を一部満足しない時でも一応テキスト取得をトライする様にしました。
2013/06/10 Ver 1.520
汎用性の高い文字列検索コードは速度も遅いので自前のコードに変え 立ち上げ時に無変換キーを押していると カーソルキーのある場所のテキストを即取得するオプションを加えました。
2014/05/05 Ver 1.530
ツールチップ だと思われるクラスの定義をよりはっきりした物に変えて出現した物の取り違えを少なく かつツールチップの適用を広げて取得可能性を広げました。又 この時の ウィンドウの列挙を自前の物から ウィンドウの本来持つ推薦方式に変えて 効率アップをしました。内部記憶バッファがオーバーしない様に確認を 取りながら代入する様にしました。
内部的なキー動作待ちのコードを効率の良い物にしました。各 ウィンドウを認識するカーソルの範囲が1ドット ずれても取得してしまう事を修正しました。
2014/07/22 Ver 1.540
コマンドライン /NOW を新設してカーソルキーのある場所のテキストを即取得するオプションを加え No Wait Version との 共通化をすると同時に 立ち上げ時の無変換キーを押している事との 排他的トグル動作として 応用範囲を広げました。 此により No Wait Version は廃止しました。
2015/08/10 Ver 1.560
DPI 仮想化 スケーリング の為にマウスカーソル位置取得が実際とずれてしまい間違った位置の テキストにならない様に スケーリング対応を宣言し DPI の仮想化 による スケーリング の影響を受ける事の無い様に 又 此を コマンドライン /DPI 又は 無変換 キーで 切り替えられる様にしました。したがって今までの無変換キーの 機能の切替が Cntrl キーに換わりました。
2015/09/30 Ver 1.570
Internet Explorer Ver 9〜11 までと共用メモリーの相性が悪い様なので IE 9〜11 までは共用メモリー無しで 取得する様にしました。共用メモリーを取得してから一廻りさせる事で相手を安定させてから取得に入る事で 余分なウィンドウリフレッシュが出る事が無い様にしました。
2016/01/05 Ver 1.580
UAC の関連でテキストが取得出来なかった時には 警告音( ビープ )をシステムエラー音に変えました。 又 ローカル変数の初期化位置をより影響を受けない位置に変えて確実性を上げました。
2016/10/05 Ver 2.000
テキスト取得を UNICODE テキストを 直に取得する様にして Windows との親和性 効率を高め ANSI に無い文字でも 文字化をしない様にしました。
多数アイテム取得時の区切り記号を Tab から カンマに変える コマンドライン /CMM を加えました。
内部的なバッファが見込みでオーバーしないのではなく 実際にオーバーしない確実なコードに変えました。

最新版 10/05 2016 Ver 2.000 Size 10 kb GetWinTx のダウンロード ( 同梱の GetWinTx.exe は Win NT 専用 です。)
*Win 95 98 Me 環境の方は 全ての Windows 対応版が有ったのですが 不正なソフトと間違えられやすいので 現在は置いていません。( メールでのリクエストで対応したいと思います。)

−戻る−