Skip to content

Commit b43bf4c

Browse files
committed
Add close window and destroy window
Add close window and destroy window
1 parent 8369e58 commit b43bf4c

File tree

2 files changed

+28
-5
lines changed

2 files changed

+28
-5
lines changed

je_auto_control/windows/window/window_hwnd.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from typing import Union
33

44
from je_auto_control.windows.core.utils.win32_ctype_input import user32
5-
from je_auto_control.windows.keyboard.win32_ctype_keyboard_control import press_key
65

76
EnumWindows = user32.EnumWindows
87
EnumWindowsProc = WINFUNCTYPE(c_bool, POINTER(c_int), POINTER(c_int))
@@ -12,6 +11,12 @@
1211
FindWindowW = user32.FindWindowW
1312
PostMessageW = user32.PostMessageW
1413
SendMessageW = user32.SendMessageW
14+
CloseWindow = user32.CloseWindow
15+
DestroyWindow = user32.DestroyWindow
16+
17+
messages = {
18+
"WM_CLOSE": 0x0010
19+
}
1520

1621

1722
def get_all_window_hwnd():
@@ -33,15 +38,23 @@ def get_one_window_hwnd(window_class: Union[None, str], window_name: Union[None,
3338
return FindWindowW(window_class, window_name)
3439

3540

36-
def send_key_to_window(window_name: str, action_message: int,
37-
key_code_1: int, key_code_2: int):
41+
def send_message_to_window(window_name: str, action_message: int,
42+
key_code_1: int, key_code_2: int):
3843
_hwnd = FindWindowW(window_name)
3944
post_status = SendMessageW(_hwnd, action_message, key_code_1, key_code_2)
4045
return _hwnd, post_status
4146

4247

43-
def post_key_to_window(window_name: str, action_message: int,
44-
key_code_1: int, key_code_2: int):
48+
def post_message_to_window(window_name: str, action_message: int,
49+
key_code_1: int, key_code_2: int):
4550
_hwnd = FindWindowW(window_name)
4651
post_status = PostMessageW(_hwnd, action_message, key_code_1, key_code_2)
4752
return _hwnd, post_status
53+
54+
55+
def close_window(hwnd) -> bool:
56+
return CloseWindow(hwnd)
57+
58+
59+
def destroy_window(hwnd) -> bool:
60+
return DestroyWindow(hwnd)

test/manual_test/windows_window.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from je_auto_control.windows.window.window_hwnd import get_all_window_hwnd, post_message_to_window, messages
2+
3+
hwnd_list = get_all_window_hwnd()
4+
print(hwnd_list)
5+
6+
for hwnd, name in hwnd_list:
7+
print(hwnd, name)
8+
if name == "Messenger":
9+
print(post_message_to_window("Messenger", messages.get("WM_CLOSE"), 0, 0))
10+
break

0 commit comments

Comments
 (0)