Pythonスクリプトは、Windowsで現在アクティブなGoogle ChromeタブのURLをどのように取得できますか?これはユーザーを中断することなく行う必要があるため、コピー/貼り付けにキーストロークを送信することは選択肢ではありません。WindowsのアクティブなGoogle ChromeタブのURLを取得するにはどうすればよいですか?
答えて
まず、あなたがダウンロードしてpywin32をインストールする必要があります。 Google Chromeは、現在アクティブなウィンドウである場合
import win32gui
import win32con
、最初でウィンドウハンドルを取得する:あなたのスクリプトでこれらのモジュールをインポートします(そうでない場合は、win32gui.FindWindow
を使用してGoogle Chromeのウィンドウハンドルを見つける
hwnd = win32gui.GetForegroundWindow()
。 Windows Detectiveは、ウィンドウのクラス名を見つけるときに便利です)
URLを取得する唯一の方法は、"omnibox" (address bar)のテキストを取得するようです。これは通常タブのURLですが、ユーザーが現在入力している部分URLまたは検索文字列でもかまいません。
また、オムニボックスのURLには、ユーザーが明示的に入力して入力していない限り、「http://」という接頭辞は含まれませんが、実際には「https://」それらのプロトコルが使用されている場合は「ftp://」となります。 Google Chromeのチームは彼らのウィンドウクラスの名前を変更することを決定した場合、もちろんブレークの
omniboxHwnd = win32gui.FindWindowEx(hwnd, 0, 'Chrome_OmniboxView', None)
この意志:
だから、我々は現在のクローム・ウィンドウ内のアドレスバー子ウィンドウを見つけます。
そして、我々は、私のためwin32gui.GetWindowText
で動作するようには思えないアドレスバーの「ウィンドウテキスト」を、取得します。良いこと仕事がない代替があります:
def getWindowText(hwnd):
buf_size = 1 + win32gui.SendMessage(hwnd, win32con.WM_GETTEXTLENGTH, 0, 0)
buf = win32gui.PyMakeBuffer(buf_size)
win32gui.SendMessage(hwnd, win32con.WM_GETTEXT, buf_size, buf)
return str(buf)
この小さな関数は、ウィンドウにWM_GETTEXTメッセージを送信し、ウィンドウテキストを返します(この場合は、アドレスバーのテキスト)。
よろしく!クロームの内部構造が完全に変更され、あなたが本当にもうwin32gui使用してクロムウィンドウの要素にアクセスすることはできませんよう
クリスチャンの答えは私のために動作しませんでした。
私は見つけることができた唯一の可能な方法は、使用のいくつかの例でthis python wrapper
実行これを持っているUIオートメーションAPIを通じてだったとあなたからアドレスを取得したいクロームウィンドウに切り替え:
from time import sleep
import uiautomation as automation
if __name__ == '__main__':
sleep(3)
control = automation.GetFocusedControl()
controlList = []
while control:
controlList.insert(0, control)
control = control.GetParentControl()
if len(controlList) == 1:
control = controlList[0]
else:
control = controlList[1]
address_control = automation.FindControl(control, lambda c, d: isinstance(c, automation.EditControl) and "Address and search bar" in c.Name)
print address_control.CurrentValue()
- 1. アクティブなタブの現在のURLを取得するchrome vb net?
- 2. Google ChromeからWindowsプロセスのリストを取得するにはどうすればよいですか?
- 3. Safari App Extensionでアクティブなタブを取得するにはどうすればよいですか?
- 4. Chromeブラウザウィンドウを閉じる前にタブを取得するにはどうすればよいですか?
- 5. アクティブな分を取得するにはどうすればよいですか?
- 6. Google Chromeで開いているタブのリストURLを取得するにはどうすればよいですか?
- 7. 現在のクロムタブの親タブURLを取得するにはどうすればよいですか?
- 8. Google Apps ScriptでGoogleスプレッドシートのセルからURLを取得するにはどうすればよいですか?
- 9. デベロッパーツールでGoogle Chromeのネットワークパネルの出力を取得するにはどうすればよいですか? VB
- 10. ブラウザから現在のタブURLを取得するにはどうすればよいですか?
- 11. スタックオーバーフローのようなきれいなURLを取得するにはどうすればよいですか?
- 12. アクティブなタブの色を変更するにはどうすればいいですか? (タブはカスタムです)
- 13. Google Chrome拡張機能でウェブクレジットの結果を取得するにはどうすればよいですか?
- 14. Chrome拡張機能:アクティブなタブのソースコードを取得する
- 15. Google Chrome拡張機能のタブの変更を確認するにはどうすればよいですか?
- 16. かなりのURLを使用するURLを取得するにはどうすればよいですか?
- 17. ツイートのURLを取得するにはどうすればよいですか?
- 18. Chrome拡張機能で閉鎖されたタブのURLを取得するにはどうすればよいですか?
- 19. URLに基づいて、アクティブなクラスをデフォルトのタブから別のタブに削除するにはどうすればよいですか?
- 20. ChromeでGoogleモバイルを取得するにはどうすればよいですか?
- 21. GTLDriveFileからgoogleドライブファイルへのURLを取得するにはどうすればよいですか?
- 22. C#すべてのタブからChrome URLを取得する
- 23. Chrome拡張機能の以前のタブまたは非アクティブなタブを検出するにはどうすればよいですか?
- 24. コールバックURLを取得するにはどうすればよいですか?
- 25. 開いているタブがJavaのアクティブなタブであるかどうかを確認するにはどうすればよいですか?
- 26. バッチスクリプトの実行時に現在アクティブなウィンドウを取得するにはどうすればよいですか?
- 27. iPhone SDK:TabBarControllerの最後のアクティブなタブを確認するにはどうすればよいですか?
- 28. アクティブなタブ内のアイコンフォントの色を変更するにはどうすればよいですか?
- 29. アクティブなタブを特定の色で表示するにはどうすればよいですか?
- 30. アクティブなタブにui-tabs-tabのホバースタイルを設定するにはどうすればよいですか?
"窓探偵"のための多くのありがとう! – akaRem
"villain-app"(pythonスクリプト、WindowDetective、..)が "victim-app"(Chrome)から任意のデータ(hwnd、class、text、smth。else)を読み込もうとすると、 、IE、 "SomeParanoidApp")は、 "被害者"が私がスキャンされたことを感じる/見る/確認することは可能でしょうか? – akaRem
これはWindowsプラットフォームでのみ適用できますか?またはこのライブラリはプラットフォーム間で動作しますか?そうでない場合は、Mac OS用の同等のライブラリがあります。 –