如何用Python判断窗口是否处于最大化状态?
问题与脚本代码
遇到的问题
- 使用pyautogui编写依赖鼠标坐标的窗口操作脚本时,窗口处于最小化状态会导致脚本误操作后台应用;
- 添加
Alt+空格+X的窗口最大化代码后,若窗口原本已处于最大化状态,执行该操作反而会将窗口最小化,引发错误操作。
需求与现有代码
目标是编写一个可输入搜索词或日期,同时在Dropbox、OneDrive和Google Drive中执行搜索的脚本,当前实现代码如下:
import pyautogui as gui def getPos(): gui.sleep(3) print(gui.position()) def dropbox(term): gui.moveTo(25, 1050) gui.sleep(0.5) gui.click() gui.sleep(0.5) gui.typewrite("google chrome") gui.sleep(0.5) gui.press("enter") gui.sleep(0.5) gui.keyDown("alt") gui.press(" ") gui.press("x") gui.keyUp("alt") gui.sleep(0.5) gui.moveTo(960, 50) gui.sleep(0.5) gui.typewrite("dropbox.com") gui.sleep(0.5) gui.press("enter") if term != "i": gui.sleep(1) gui.moveTo(1400, 95) gui.sleep(1) gui.typewrite(term) gui.sleep(0.5) gui.press("enter") def drive(term): gui.moveTo(25, 1050) gui.sleep(0.5) gui.click() gui.sleep(0.5) gui.typewrite("google chrome") gui.sleep(0.5) gui.press("enter") gui.sleep(0.5) gui.keyDown("alt") gui.press(" ") gui.press("x") gui.keyUp("alt") gui.sleep(0.5) gui.moveTo(960, 50) gui.sleep(0.5) gui.typewrite("drive.google.com") gui.sleep(0.5) gui.press("enter") def onedrive(term): gui.moveTo(25, 1050) gui.sleep(0.5) gui.click() gui.sleep(0.5) gui.typewrite("google chrome") gui.sleep(0.5) gui.press("enter") gui.sleep(0.5) gui.keyDown("alt") gui.press(" ") gui.press("x") gui.keyUp("alt") gui.sleep(0.5) gui.moveTo(960, 50) gui.sleep(0.5) gui.typewrite("onedrive.com") gui.sleep(0.5) gui.press("enter") def openAll(term): drive(term) gui.sleep(0.5) gui.moveTo(268, 17) gui.click() gui.moveTo(960, 50) gui.sleep(0.5) gui.typewrite("onedrive.com") gui.sleep(0.5) gui.press("enter") gui.sleep(0.5) gui.moveTo(960, 50) gui.sleep(0.5) gui.moveTo(511, 14) gui.sleep(0.5) gui.click() gui.sleep(0.5) gui.moveTo(960, 50) gui.sleep(0.5) gui.typewrite("dropbox.com") gui.sleep(0.5) gui.press("enter") print("1 = Google Drive, 2 = OneDrive, 3 = Dropbox, 4 = All of the above") gui.sleep(0.5) service = input("Which Service? ") term = input("Enter a search term or enter 'i' for none ") if service == "1": print("Opening: Google Drive") gui.sleep(1) drive(term) elif service == "2": print("Opening: OneDrive") gui.sleep(1) onedrive(term) elif service == "3": print("Opening: Dropbox") gui.sleep(1) dropbox(term) elif service == "4": print("Opening: Google Drive, OneDrive and Dropbox") gui.sleep(1) openAll(term)
内容的提问来源于stack exchange,提问作者iamdeedz
相关产品推荐
相关产品推荐

