Перечислять дочерние окна в python?
Я баловался в течение года или около того, используя C++, и решил, что попробую свои силы в python, так как он имеет гораздо более простой синтаксис и увеличит производительность, пока я еще учусь (я думаю!). Я пытаюсь перечислить все дочерние окна из родительского окна настольного приложения в Windows.
import win32ui
def WindowExists(windowname):
try:
win32ui.FindWindow(None, windowname)
except win32ui.error:
return False
else:
return True
appFind = "Test Application"
if WindowExists(appFind):
print ("Program is running")
hwnd = win32ui.FindWindow(None, appFind)
else:
print ("Program is not running")
До сих пор я идентифицировал приложение без проблем, но мне интересно, работает ли мое назначение hwnd так, как я думаю, оно будет работать в среде C++, чтобы я мог передать свое назначение hwnd в enumchildwindows. Я не совсем уверен, как я получаю детей отсюда, хотя.
Еще один вопрос, который у меня возник, заключался в том, чтобы не использовать только название приложения, как я могу использовать дескриптор? если, например, дескриптор был чем-то вроде 00130903 от testapplication. Я помню несколько месяцев, когда я возился с чем-то вроде этого в C++, и я думаю, что вы можете использовать x для замены первого набора нулей (или чего-то подобного) на ручке, но я, честно говоря, не могу вспомнить многое из этого, так что, надеюсь, вы, ребята, сможете Помогите!
Редактировать -
TypeError: Объект не является объектом PyHANDLE.
Я думаю, что мое предположение прямо здесь, что я неправильно назначаю правильный дескриптор с именем hwnd, это ошибка, которую я получаю, когда пытаюсь использовать enumchldwindows или win32con.WM_GETTEXT, любой пример правильной установки дескриптора по заголовку и дескриптору действительно быть оцененным!
1 ответ
hwnd = win32ui.FindWindow(None, appFind)
, работал для проверки существования окон
hwnd = win32gui.FindWindow(None, appFind)
, работал, чтобы позволить мне использовать ручку!, жить и мы учимся!