Pythonを使って、現在アクティブなウィンドウの選択されたテキストに対してユーザー定義のアクションを実行できる単純なオープンソースユーティリティを作成しようとしています。このユーティリティは、あらかじめ定義されたキーボードショートカットを使用してアクティブにする必要があります。アクティブなウィンドウから選択したテキストを取り出す方法
使用は、部分的に以下の実施例に概説する:
- ユーザが
- (任意のアプリケーションウィンドウで)マウスまたはキーボードを使用してテキストを選択し、ユーザーが事前に定義されたキーボードショートカット を押下します
- 選択したテキストが当社のユーティリティで取り出されるか、クリップボードにコピーされます(どちらの方法も問題ありません)
- キーボードショートカットに依存する操作が選択されたテキストに対して実行されます
私が困惑しているのは、ステップ3です。 選択したテキストをアクティブなウィンドウから取得する方法。これはすべてのアプリケーションで有効です。
pywin32モジュールを使用します。
ご回答いただきありがとうございます。
更新#1:それへのメッセージ/キーストローク(Ctrl + Cキー)を送信し、アクティブなウィンドウを探す
- :
は、タスクを達成するために2つのアプローチがあることが判明選択したテキストをクリップボードにコピーします。次に、ユーティリティは、クリップボード関連の関数を使用してテキストにアクセスすることにより、テキストに対して作業を行うことができます。
- アクティブなウィンドウを見つけて、選択したテキストを直接(クリップボードにコピーせずに)取得します。これは第1のアプローチよりも難しいようです。出発点として
:
アヌラーグUniyalが彼のreplyで指摘したように、アクティブなウィンドウのIDを取得します。
または、次のコードでウィンドウオブジェクトを取得します:
import win32ui
wnd = win32ui.GetForegroundWindow()
print wnd.GetWindowText()
上でテストされましたを明確にすることができこのユーティリティが実際にアクティブなウィンドウを作成しているかどうか、あるいは別のアプリケーションからこのアクティブなウィンドウですか? –
「アクティブなウィンドウ」は、別のアプリケーションのウィンドウです。このユーティリティは、バックグラウンド(またはシステムトレイ)で実行する必要があり、あらかじめ定義されたキーストロークでアクティブ化する必要があります。 –
選択したテキストの取得方法を理解しましたか? – iMath