加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – FindWindow失败

发布时间:2020-12-20 13:30:36 所属栏目:Python 来源:网络整理
导读:我使用pywin32扩展来解决FindWindow问题. 简单的C代码: int main(){ HWND h = FindWindow(NULL,TEXT("SomeApp")); if (h != INVALID_HANDLE_VALUE) SetForegroundWindow(h); return 0;} 效果很好.与python相同: import win32guih = win32gui.FindWindow(No
我使用pywin32扩展来解决FindWindow问题.
简单的C代码:

int main()
{
  HWND h = FindWindow(NULL,TEXT("SomeApp"));
  if (h != INVALID_HANDLE_VALUE)
      SetForegroundWindow(h);
  return 0;
}

效果很好.与python相同:

import win32gui

h = win32gui.FindWindow(None,"SomeApp")
if h:
    win32gui.SetForegroundWindow(h)
else:
    print "SomeApp not found"

失败,找不到SomeApp.我建议文本编码可能会引起麻烦,但是在docs中找不到如何指定文本的任何信息.

更新:
我在其他机器上测试过代码并没有看到任何麻烦.因此,我的第一台机器上的配置应该是不正确的.如果发现问题,我会更新我的调查结果.

解决方法

在C代码中,您正在检查h!= INVALID_HANDLE_VALUE,在Python h!= None中. INVALID_HANDLE_VALUE不是0 / null / None.

Python通过win32file导入定义了win32file.INVALID_HANDLE_VALUE.

此外,您可以执行以下操作,而不是打印“找不到SomeApp”.

gle = win32api.GetLastError()
err = win32api.FormatMessage(gle)[:-2]
print 'SomeApp not found: LastError=%d - %s' % (gle,err)

如果FindWindow由于某种原因合法地失败了,那么这应该给你更多关于失败的细节(如果它起作用,则为“成功”).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读