Найти - Пользователи
Полная версия: Как закрыть повисшее окно и запустить его заново?
Начало » Python для новичков » Как закрыть повисшее окно и запустить его заново?
1
buddha
Есть проблема. Есть несколько окон, которые открыты постоянно. Но одно иногда отваливается(виснет).
Допустим открывать я его могу через subprocess.Popen() или os.startfile. Но вот как мне найти это окно и понять , что оно повисло, не представляю. Подскажите, пжлст.

Допустим надо найти его процесс, но как понять , что он повис?
s0rg
OC?
buddha
Windows
s0rg
Обычно, для этих целей используется SendMessageTimeout с сообщением WM_NULL
buddha
Я к сожалению не знаток С.

Вот пробую просто сначала послать сообщение эксплореру. Получил его HWND(через visual studio spy).
WM_NULL я так понял это просто 0.
Пишу:
>>> ctypes.windll.user32.SendMessageTimeoutW('0x00105E6', 0, 0, 0, 2, 500)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
ValueError: Procedure probably called with not enough arguments (28 bytes missing)

Ошибка конечно говорящая, но …
Что не так делаю?
s0rg
раз уж вы используете winapi то поставте себе pywin32, это удобнее чем вызов через ctypes.
Первый параметр - это число, вы передаете его как строку. Почитайте статью на MSDN - там описаны все параметры. У меня под рукой win-системы нет сейчас, чтобы проверить.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB