我怎样才能确保应用程序窗口始终在最前面?

我有一个简单的Python脚本,在控制台窗口中运行。

我怎样才能确保控制台窗口始终位于顶部,如果可能resize?

要使用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 

马克的答案我到达了这个:

 import win32gui import win32con hwnd = win32gui.GetForegroundWindow() win32gui.SetWindowPos(hwnd,win32con.HWND_TOPMOST,100,100,200,200,0) 

如果你正在创建你自己的窗口,你可以使用Tkinter来创建一个“永远在上面”的窗口,如下所示:

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

然后把你想要在主循环内发生的事情。

如果您正在讨论命令提示符窗口,那么您将不得不使用一些特定于Windows的实用程序来保持该窗口在最前面。 您可以尝试此脚本的Autohotkey 。