当前位置: 首页 > 面试题库 >

如何确保应用程序窗口始终位于顶部?

巫马翰翮
2023-03-14
问题内容

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

如何确保控制台窗口始终位于顶部,并在可能时调整其大小?


问题答案:

要在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使您的窗口成为“最顶层”窗口,等等。
import 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


 类似资料:
  • 问题内容: 我正在python中运行一个小程序,该程序会启动一个小窗口,该窗口需要保持在所有其他窗口的顶部。我相信这是特定于OS的,如何在带有GNOME的GNU- Linux中完成? [ 更新-Windows解决方案 ] 可爱,我想我可以使用。我在Vista 64位版本的Eclipse中将Python 2.5.4与Pygame 1.9.1结合使用。因此,这适用于Windows系统。该功能在此处记录

  • 问题内容: 在Objective-C for Cocoa Apps中,可以使用这种方式使窗口始终位于顶部吗? 如何用Swift实现相同的目标? 导致构建错误 问题答案: 要更改窗口级别,您不能在viewDidload中执行此操作,因为视图的window属性始终在那里为零,但是可以通过覆盖viewDidAppear方法或IBAction方法来实现: 斯威夫特1 迅捷2 迅捷3 斯威夫特4 最后,他们

  • 我们有一个<代码>列表 < code>Country是一个实体对象,我们无权访问源代码(它在一个由许多应用程序共享的jar文件中)。 现在,我想修改列表,使国家名称“美利坚合众国”和“联合王国”排在第一位,列表的其余部分按相同的字母顺序排列。 最有效的方法是什么?

  • 问题内容: 导入总是放在文件的顶部,紧随任何模块注释和文档字符串之后,以及模块全局变量和常量之前。 但是,如果我要导入的类/方法/函数仅在极少数情况下使用,那么确定在需要时进行导入肯定会更有效吗? 这不是吗? 比这更有效? 问题答案: 模块导入非常快,但不是即时的。这意味着: 将导入放在模块顶部很好,因为这是微不足道的成本,只需要支付一次即可。 将导入放在函数中将导致对该函数的调用花费更长时间。

  • 问题内容: 我不知道如何使弹出窗口起作用,如:https ://getbootstrap.com/docs/4.0/components/popovers/ 。 该文档讨论了popover支持是一个插件,并且也需要工具提示插件,因此我已经修改了我的代码以添加这两个插件,现在看起来像这样: 我还没有发现关于自举插件概念的任何文件,因此上述两行,并从搜索来了,不知道他们是正确的。 该文档指出: 由于性

  • 问题内容: 有什么办法可以使可执行文件.jar双击后打开命令行? 我正在制作一个基于文本的冒险游戏。截至目前,它只是带有房间的迷宫。最终它将变得更大,更深入,但是现在我只想了解基本结构。无论如何,要完成这项工作,我一直在从System.out.printf命令和java.util.Scanner获取输出和输入。到目前为止,所有功能都运行良好,但是当我尝试将其发送给不知道如何或者不想从命令行运行程序