現在アクティブなウィンドウの選択されたテキストに対してユーザー定義のアクションを実行できるPythonを使用して、ウィンドウ用の単純なオープン ソース ユーティリティを作成しようとしています。ユーティリティは、事前定義されたキーボード ショートカットを使用してアクティブにする必要があります。
使用法は、次の例で部分的に概説されています。
- ユーザーがマウスまたはキーボードを使用して (任意のアプリケーション ウィンドウで) テキストを選択します。
- ユーザーが事前定義されたキーボード ショートカットを押したとき
- 選択したテキストは、ユーティリティによって取得されるか、クリップボードにコピーされます (どちらの方法でも問題ありません)。
- 選択したテキストに対して、キーボード ショートカットに依存するアクションが実行されます。
私を困惑させるのはステップ 3です。アクティブなウィンドウから選択したテキストを取得する方法。これは、すべてのアプリケーションで機能するはずです。
pywin32モジュールを使用しています。
回答とヒントをお寄せいただきありがとうございます。
更新#1:
このタスクを達成するには、次の 2 つの方法があることがわかりました。
- アクティブなウィンドウを見つけて、メッセージ/キーストローク (Ctrl-C) をウィンドウに送信して、選択したテキストをクリップボードにコピーします。次に、ユーティリティは、クリップボード関連の関数を使用してテキストにアクセスすることで、テキストを操作できます。
- アクティブなウィンドウを見つけて、選択したテキストを (クリップボードにコピーせずに) 直接取得します。これは、最初のアプローチよりも難しいようです。
出発点として:
Anurag Unyal が返信で指摘したように、アクティブなウィンドウ ID を取得します。
または、次のコードでウィンドウ オブジェクトを取得します。
import win32ui
wnd = win32ui.GetForegroundWindow()
print wnd.GetWindowText()