FindWindow失败了

时间:2012-10-12 10:42:24

标签: python pywin32

FindWindow使用pywin32扩展程序,我遇到了麻烦。 简单的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中找不到如何指定文本的任何信息。

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

1 个答案:

答案 0 :(得分:1)

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

Python通过win32file.INVALID_HANDLE_VALUE导入定义win32file

此外,您可以执行以下操作:

,而不是打印“找不到SomeApp”
gle = win32api.GetLastError()
err = win32api.FormatMessage(gle)[:-2]
print 'SomeApp not found: LastError=%d - %s' % (gle, err)

如果FindWindow由于某种原因合法失败(或者如果有效则“成功”),这可以为您提供有关失败的更多详细信息。