Автор
The_Immortal
Новичок
- Сообщения
- 84
- Репутация
- 4
Alofa, попробовал ту строку заменить на
и на
- всё равно та же ошибка...
Ну насчет последнего понятно:
- Вы там выше объявляете hDesktop глобально, а потом внутри функции делаете данную переменную локальной. А вот _WinAPI_EnumProcessWindows() почему-то никак не хочет получать список окон по процессу. Может это как-то связано с тем, что он упрямо ищет окна на текущем рабочем столе? А EnumDesktopWindows() позволяет указать конкретный рабочий стол.
И ещё, Вы закрываете рабочий стол:
- вероятно это его не полное закрытие, т.к. попробуйте:
Т.е. получается что _WinAPI_OpenDesktop() заодно и создает указанный рабочий стол?
Или я что-то не так понял?
Код:
$aData = _WinAPI_EnumProcessWindows($iPid, False)
Код:
$aData = _WinAPI_EnumDesktopWindows($hDesktop)
Ну насчет последнего понятно:
Код:
Local $hDesktop = _WinAPI_CreateDesktop
И ещё, Вы закрываете рабочий стол:
Код:
_WinAPI_CloseDesktop($hDesktop)
Код:
#include <WinAPISys.au3>
$hDesktop = _WinAPI_CreateDesktop('MyDesktop', $GENERIC_ALL)
_WinAPI_CloseDesktop($hDesktop) ; закрыли стол
If _WinAPI_OpenDesktop('MyDesktop', $GENERIC_ALL, 0, True) Then ; т.к. стол закрыт, _WinAPI_OpenDesktop не должна вернуть хэндл, а она его почему-то возвращает
_WinAPI_SwitchDesktop($hDesktop)
Sleep(5000)
$hDefault = _WinAPI_OpenDesktop('Default', $GENERIC_ALL)
_WinAPI_SwitchDesktop($hDefault)
EndIf
Т.е. получается что _WinAPI_OpenDesktop() заодно и создает указанный рабочий стол?
Или я что-то не так понял?