Как я могу убедиться, что окна приложений всегда находятся сверху? - PullRequest
3 голосов
/ 09 сентября 2010

У меня есть простой скрипт Python, который запускается в окнах консоли.

Как я могу убедиться, что окно консоли всегда находится сверху и, если возможно, изменить его размер?

Ответы [ 3 ]

6 голосов
/ 10 сентября 2010

Используя Ответ Марка Я пришел к этому:

import win32gui
import win32con

hwnd = win32gui.GetForegroundWindow()
win32gui.SetWindowPos(hwnd,win32con.HWND_TOPMOST,100,100,200,200,0)
1 голос
/ 09 сентября 2010

Чтобы сделать это с окном cmd, вам, вероятно, придется вызывать много вызовов win32.

  1. Перечислить все окна, используя win32gui.EnumWindows, чтобы получить дескрипторы окон
  2. Найдите «заголовок окна», соответствующий вашей программе. Например, если дважды щелкнуть по файлу .py в моей системе, заголовок окна будет «C: \ Python26 \ python.exe». При запуске в командной строке он называется c: \ Windows \ system32 \ cmd.exe - c: \ python26 \ python.exe test.py
  3. Используя соответствующий заголовок, получите дескриптор окна cmd.
  4. Использование win32gui.SetWindowPos делает ваше окно "самым верхним" окном и т. Д. *

mport win32gui, win32process, win32con
import os

windowList = []
win32gui.EnumWindows(lambda hwnd, windowList: windowList.append((win32gui.GetWindowText(hwnd),hwnd)), windowList)
cmdWindow = [i for i in windowList if "c:\python26\python.exe" in i[0].lower()]
win32gui.SetWindowPos(cmdWindow[0][1],win32con.HWND_TOPMOST,0,0,100,100,0) #100,100 is the size of the window
1 голос
/ 09 сентября 2010

Если вы создаете свое собственное окно, вы можете использовать Tkinter для создания окна «всегда сверху», например, так:

from Tkinter import *
root = Tk()
root.wm_attributes("-topmost", 1)
root.mainloop()

И затем поместить все, что вы хотите, в основной цикл.

Если вы говорите об окне командной строки, то вам придется использовать некоторые специфичные для Windows утилиты, чтобы держать это окно сверху.Вы можете попробовать этот скрипт для Autohotkey .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...