From 050ef7162ca4ce496a7d74bfc8008ac7b05b56fd Mon Sep 17 00:00:00 2001 From: march3 Date: Fri, 1 Sep 2023 11:25:25 +0800 Subject: [PATCH] =?UTF-8?q?Python=E8=B6=85=E4=BA=BA-=E5=AE=87=E5=AE=99?= =?UTF-8?q?=E6=A8=A1=E6=8B=9F=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/win_pos.py | 70 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 common/win_pos.py diff --git a/common/win_pos.py b/common/win_pos.py new file mode 100644 index 0000000..fe8a508 --- /dev/null +++ b/common/win_pos.py @@ -0,0 +1,70 @@ +# -*- coding:utf-8 -*- +# title : +# description : +# author :Python超人 +# date :2023-09-01 +# link :https://gitcode.net/pythoncr/ +# python_version :3.8 +# ============================================================================== +import win32con +import win32gui +import win32api + + +def get_hwnd(window_name="宇宙模拟器(universe sim)"): + if window_name is None: + hwnd = win32gui.GetForegroundWindow() + else: + hwnd = win32gui.FindWindow(None, window_name) + classname = win32gui.GetClassName(hwnd) + title = win32gui.GetWindowText(hwnd) + print(f" -> classname:{classname}, title:{title}, hwnd:{hwnd}") + return hwnd + + +def get_win_pos(window_name="宇宙模拟器(universe sim)"): + """ + 获取窗口位置 + @param window_name: + @return: + """ + hwnd = get_hwnd(window_name) + rect = win32gui.GetWindowRect(hwnd) + # (146, 56, 1375, 747) + return rect + + +def set_win_pos(window_name, pos): + """ + 设置窗口位置 + @param window_name: + @param pos: + @return: + """ + hwnd = get_hwnd(window_name) + win32gui.SetWindowPos(hwnd, win32con.HWND_NOTOPMOST, pos[0], pos[1], pos[2] - pos[0], pos[3] - pos[1], + win32con.SWP_SHOWWINDOW) + + +def set_pycharm_win_pos(): + """ + 设置 Pycharm 窗口的位置 + @return: + """ + border = {"t": 0, "r": 7, "b": 7, "l": 7} + # 获取宇宙模拟器窗口的位置 + rect = get_win_pos() + print("宇宙模拟器窗口", rect) + + rect = (rect[0] - border["l"], + rect[1] - border["t"], + rect[2] + border["r"], + rect[3] + border["b"]) + + # 依据 宇宙模拟器窗口 对 Pycharm 窗口的位置和大小进行调整 + set_win_pos(None, rect) + print("Pycharm 窗口", rect) + + +if __name__ == '__main__': + set_pycharm_win_pos() -- GitLab