当前位置: 首页 > 面试题库 >

如何获取Windows中活动的Google Chrome标签的网址?

尤博达
2023-03-14
问题内容

我的Python脚本如何获取Windows中当前活动的Google
Chrome标签的URL?必须在不打扰用户的情况下完成此操作,因此不能发送击键来复制/粘贴。


问题答案:

首先,您需要下载并安装pywin32。将这些模块导入脚本中:

import win32gui
import win32con

如果Google Chrome是当前活动的窗口,请首先通过以下方式获取窗口句柄:

hwnd = win32gui.GetForegroundWindow()

(否则,请使用win32gui.FindWindow。查找Google
Chrome窗口句柄。在查找Windows的类名时,Windows
Detective
很方便。)

似乎获取URL的唯一方法是在“多功能框”(地址栏)中获取文本。这通常是选项卡的URL,但也可以是用户当前键入的任何部分URL或搜索字符串。

此外,除非用户明确输入(并且尚未按Enter),否则多功能框中的URL不会包含“ http://”前缀,但实际上它将包含“ https://”或“ ftp:
//”(如果使用了这些协议)。

因此,我们在当前的Chrome窗口内找到多功能框子窗口:

omniboxHwnd = win32gui.FindWindowEx(hwnd, 0, 'Chrome_OmniboxView', None)

如果Google Chrome小组决定重命名其窗口类,那么这当然会中断。

然后我们得到多功能框的“窗口文本”,它似乎不适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消息发送到窗口,并返回窗口文本(在这种情况下,是多功能框中的文本)。

你去!



 类似资料:
  • 我在这里找到了一些关于使用Android阅读NFC标签的最近帖子。我得到的结论是,执行NFC读取动作会触发一个分离的意图。 那么第一个问题:在我的清单中列出意图过滤器是否必要? 我认为这是没有必要的,因为我不想推出我的应用程序通过NFC标签事件,对吗? 第二个问题:我如何保持我的NFC阅读逻辑/功能与我的app/活动相关? 例如,在iOS中,在VC中需要时有一个简单的NFC会话。

  • 我正在使用OneSignal向我的Android应用程序中的用户发送通知。目前,我可以使用idsAvailable()获取playerID/deviceID,并向该用户发送通知。

  • 问题内容: 我们正在编写包含4个标签的应用程序:地图,人物,地点,事件。应用程序中的人物,地点和事件在地图上显示为图标。默认情况下,“人员”,“位置”和“事件”选项卡分别显示一个自定义呈现的列表视图,分别显示所有“人员”,“位置”和“事件”。 替代文字http://web6.twitpic.com/img/37202700-f92052dc474b74e1760edda1c47f6940.4adc

  • 问题内容: 我们这里有一个遗留的远程系统,没有webapi,webservice等…, 那么我们需要通过Selenium进行集成。 我们需要从一个主选项卡中打开多个选项卡来进行提取,但是当更改为所需的选项卡并通过css选择器获取值时,它总是从fisrt选项卡中获得结果。 我们的系统无法在互联网上打开,然后我以Google为例进行了相同的操作,发生了相同的行为。是错误还是我的错?有人可以看到出什么问

  • 问题内容: 在我的控制器中,当我需要活动(登录)用户时,我正在执行以下操作以获取UserDetails实现: 它工作正常,但我认为Spring在这种情况下可以使生活更轻松。有没有办法将自动接线连接到控制器或方法中? 例如,类似: 但是我得到了,而不是得到了? 我正在寻找一种优雅的解决方案。有任何想法吗? 问题答案: 序言:从Spring-Security 3.2开始,此答案的末尾描述了一个不错的注

  • 问题内容: 我正在尝试获取活动窗口的标题。该应用程序是一个后台任务,因此如果用户打开Eclipse,该函数将返回“ Eclipse- blabla”,因此它不会获取我自己窗口的窗口标题。我正在使用PyQt4在Python 2.6中进行开发。 我当前的解决方案是从SO的旧答案中借用并稍作修改的,看起来像这样: 它适用于大多数窗口,但不是全部。例如,它找不到我的kopete聊天窗口,或者找不到我当前正