From d4de9e904d2506636d922f917bbe8122d50c3b8b Mon Sep 17 00:00:00 2001 From: MistEO Date: Tue, 29 Oct 2024 14:09:58 +0800 Subject: [PATCH] fix: win32 null hwnd not work fix 9f5c6922f7224f057e75c445663802d2ff982aa7 --- .../Manager/ControlUnitMgr.cpp | 25 +++++++++---------- source/binding/Python/maa/controller.py | 2 +- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/source/MaaWin32ControlUnit/Manager/ControlUnitMgr.cpp b/source/MaaWin32ControlUnit/Manager/ControlUnitMgr.cpp index c70fba69c..bcf1ec7ad 100644 --- a/source/MaaWin32ControlUnit/Manager/ControlUnitMgr.cpp +++ b/source/MaaWin32ControlUnit/Manager/ControlUnitMgr.cpp @@ -25,19 +25,19 @@ bool ControlUnitMgr::find_device(std::vector& devices) bool ControlUnitMgr::connect() { - if (!hwnd_) { - LogError << "hwnd_ is nullptr"; - return false; - } + if (hwnd_) { + if (!IsWindow(hwnd_)) { + LogError << "hwnd_ is invalid"; + return false; + } - if (!IsWindow(hwnd_)) { - LogError << "hwnd_ is invalid"; - return false; + if (IsIconic(hwnd_)) { + LogError << "hwnd_ is minimized"; + return false; + } } - - if (IsIconic(hwnd_)) { - LogError << "hwnd_ is minimized"; - return false; + else { + LogWarn << "hwnd_ is nullptr"; } if (screencap_method_ != MaaWin32ScreencapMethod_None) { @@ -60,8 +60,7 @@ bool ControlUnitMgr::connect() bool ControlUnitMgr::request_uuid(std::string& uuid) { if (!hwnd_) { - LogError << "hwnd_ is nullptr"; - return false; + LogWarn << "hwnd_ is nullptr"; } std::stringstream ss; diff --git a/source/binding/Python/maa/controller.py b/source/binding/Python/maa/controller.py index efd8fc1a4..06c652d0d 100644 --- a/source/binding/Python/maa/controller.py +++ b/source/binding/Python/maa/controller.py @@ -343,7 +343,7 @@ class Win32Controller(Controller): def __init__( self, - hWnd: ctypes.c_void_p, + hWnd: Optional[ctypes.c_void_p], screencap_method: int = MaaWin32ScreencapMethodEnum.DXGI_DesktopDup, input_method: int = MaaWin32InputMethodEnum.Seize, notification_handler: Optional[NotificationHandler] = None,