
Windows 7 でテキストをダブルクリックするとaaa.bbb
、aaa
または のbbb
いずれかが選択されますが、両方は選択されません。そのため、選択されるテキストはその部分のみであり、文字列全体ではありませんaaa.bbb
。
別の例として、フォーム内の任意の場所をダブルクリックするとaaa_bbb
、単語全体が選択されます。つまり、文字は_
区切り文字として機能しません。
Windows で単語区切り文字として扱われる区切り文字を変更または追加する方法はありますか?
答え1
Windows には、テキスト選択を処理するための統一されたメカニズムはありません。プログラムにダブルクリックを発行すると、プログラムはそのイベントを受け取り、独自のロジックとコードを使用して処理します。そのため、プログラムによって動作が異なります。たとえば、メモ帳、ワードパッド、Word などで結果が異なります。Office 内でも、Word と Excel などでは動作やオプションが異なります。
ダブルクリックをインターセプトして独自のトリックを実行するメカニズムを構築する必要があります。良いツールは オートホットキー これを使用すると、ダブルクリックをアクティブなプログラム上の一連の操作に変換するスクリプトを作成できます。
ユーザー インターフェイスに関して特定の仮定を行う必要がありますが、これはすべてのプログラムに当てはまるとは限りません。また、プログラムからデータを抽出するためのメカニズムも必要になります。私にとって、唯一の普遍的なメカニズムはクリップボードです。クリップボードの履歴を管理する製品と競合します。履歴リストが部分的なデータで埋められるためです。
ターゲット プログラムがカーソルの移動と文字の選択に関して通常の規則に従っていると想定する必要があります。
これから記述する AutoHotkey スクリプトは次のことを実行します。
- ターゲットウィンドウとクリックのXY座標を記憶しながらダブルクリックをインターセプトする
- クリックするだけでこれらの座標を送信できます
- Shift+を送信しHomeて左側の文字をすべて選択します
- Ctrl+を送信しCて文字をコピーし、左側で選択する文字数 L を確認します。
- もう一度クリックするだけでこれらの座標に送信されます
- Shift+を送信しEndて右側の文字をすべて選択します
- Ctrl+を送信しCて文字をコピーし、右側で選択する文字数 R を確認します。
- これらの座標にクリックするだけで再度送信できます
- Lを矢印で送信Leftする
- L+RをShift+回送信してRight選択する
- 終わり。
ターゲット プログラムがキーを処理する時間を確保するために、キーを発行した後、数ミリ秒の待機時間を追加することを忘れないでください。
答え2
ご質問の意味は理解しています。Word が単語単位として認識するものを変更することはできないと思います。ただし、より一貫した動作が必要な場合は、[オプション] -> [詳細設定] に移動して、2 番目の項目「選択時に単語全体を自動的に選択する」のチェックを外すことができます。