【问题标题】:Python - why its not able to find the window title?Python - 为什么它无法找到窗口标题?
【发布时间】:2017-02-02 02:48:35
【问题描述】:

我有以下代码,它无法激活窗口标题“堆栈溢出”并将 f11 发送到错误的 GUI。

这是一个 Python 错误吗?为什么它不起作用?

import subprocess
from subprocess import Popen
import win32com.client as comctl
import time

def chromes():
  url='https://stackoverflow.com'
  cmd='C:/Users/tpt/AppData/Local/Chromium/Application/chrome.exe'
  Popen([cmd, url, '--window-position=0,0', '--user-data-dir=C:\\iplay'])

chromes()
time.sleep(5)

wsh =comctl.Dispatch("WScript.Shell")
aa = wsh.AppActivate("Stack Overflow")
wsh.SendKeys("{F11}")

【问题讨论】:

  • 你收到错误了吗?
  • 没有错误。也试过了:from pywinauto.findwindows import find_window from pywinauto.win32functions import SetForegroundWindow SetForegroundWindow(find_window(title='Stack Overflow - Chromium'))
  • 您确定页面是在睡眠的 5 秒内加载的吗?
  • 是的——那 5 秒钟的睡眠是完美的。不工作的是这一行“aa = wsh.AppActivate("Stack Overflow")”和这一行“SetForegroundWindow(find_window(title='Stack Overflow - Chromium'))”你能继续测试并确保它有效吗?因为有很多答案,但是当您尝试它们时,它们在 Windows 8 和 Windows 10 中不再起作用
  • 有趣的tab namewindows name 吗?哪个选项卡放在前面,您的应用程序?

标签: python windows google-chrome chromium


【解决方案1】:

像这样:

import win32gui
import win32api
import win32con

def enumHandler(hwnd, lParam):
    if win32gui.IsWindowVisible(hwnd):
        if 'Stack Overflow' in win32gui.GetWindowText(hwnd):
            win32api.PostMessage(hwnd, win32con.WM_KEYDOWN, win32con.VK_F11, 0)


win32gui.EnumWindows(enumHandler, None)

但不知道哪个选项卡受到影响?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    相关资源
    最近更新 更多