为啥不能在 Python 中运行 DestroyWindow 函数

Posted

技术标签:

【中文标题】为啥不能在 Python 中运行 DestroyWindow 函数【英文标题】:Why can't run DestroyWindow function in Python为什么不能在 Python 中运行 DestroyWindow 函数 【发布时间】:2013-12-04 03:32:09 【问题描述】:

我编写了一个程序,可以打开特定文件,即 Flash 文件,将其定位到特定位置并关闭它(不是最小化而是退出)。

第一个第二个目标通过os.startfile('file.swf') ok,通过win32gui.FindWindow(None, file.swf)找到它的hwnd,通过win32gui.MoveWindow(hwnd,0,0,800,600,True)定位),但是 win32gui.DestroyWindow(hwnd) 不能工作,我不知道为什么。

下面是错误信息:

Traceback (most recent call last):
 File "<pyshell#30>", line 1, in <module>
  win32gui.DestroyWindow(hwnd1)
error: (5, 'DestroyWindow', '\xa6s\xa8\xfa\xb3Q\xa9\xda\xa1C')

它有什么问题?如何解决?

编辑:

我的代码是:

import win32gui
import os

"""

monitoring a folder which will be updated per one miniute
if the temperature changed the program will open a particular file to display 

"""

FLASH_PATH="santa"
PIC_PATH=""
TEMP_PATH="Temperatures/"

file_name="led_20.swf"
filePath=os.path.join(FLASH_PATH,file_name)
os.startfile(filePath)
hwnd=win32gui.FindWindow(None,file_name)
win32gui.MoveWindow(hwnd,0,0,800,600,True)


"""
display it for a few minute and close it
"""

【问题讨论】:

你能显示一些关于你在做什么的代码吗? 【参考方案1】:

错误 5 是 ERROR_ACCESS_DENIEDDestroyWindow() 只能由创建窗口的线程调用。改为发布或发送WM_DESTROY 消息。

【讨论】:

以上是关于为啥不能在 Python 中运行 DestroyWindow 函数的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Python easy_install 不能在我的 Mac 上运行?

为啥 Python easy_install 不能在我的 Mac 上运行?

为啥我不能在 python 中获取 sql 语句?

为啥不能从 Kivy 终止这个 Python 多处理进程?

为啥我不能在 Python 3.8 中使用 pip? [复制]

为啥我不能在类方法中使用 python 模块 concurrent.futures?