Skip to content

Commit cb96f76

Browse files
authored
Merge pull request #137 from Integration-Automation/dev
Dev
2 parents a17b570 + 3f458a3 commit cb96f76

File tree

7 files changed

+127
-50
lines changed

7 files changed

+127
-50
lines changed

.idea/AutoControl.iml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/workspace.xml

Lines changed: 41 additions & 35 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

je_auto_control/windows/message/__init__.py

Whitespace-only changes.
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
from je_auto_control.windows.core.utils.win32_ctype_input import user32
2+
from je_auto_control.windows.window.window_hwnd import FindWindowW
3+
4+
PostMessageW = user32.PostMessageW
5+
SendMessageW = user32.SendMessageW
6+
7+
messages = {
8+
"WM_ACTIVATEAPP": 0x001C,
9+
"WM_CANCELMODE": 0x001F,
10+
"WM_CHILDACTIVATE": 0x0022,
11+
"WM_CLOSE": 0x0010,
12+
"WM_COMPACTING": 0x0041,
13+
"WM_CREATE": 0x0001,
14+
"WM_DESTROY": 0x0002,
15+
"WM_ENABLE": 0x000A,
16+
"WM_ENTERSIZEMOVE": 0x0231,
17+
"WM_EXITSIZEMOVE": 0x0232,
18+
"WM_GETICON": 0x007F,
19+
"WM_GETMINMAXINFO": 0x0024,
20+
"WM_INPUTLANGCHANGE": 0x0051,
21+
"WM_INPUTLANGCHANGEREQUEST": 0x0050,
22+
"WM_MOVE": 0x0003,
23+
"WM_MOVING": 0x0216,
24+
"WM_NCACTIVATE": 0x0086,
25+
"WM_NCCALCSIZE": 0x0083,
26+
"WM_NCCREATE": 0x0081,
27+
"WM_NCDESTROY": 0x0082,
28+
"WM_NULL": 0x0000,
29+
"WM_QUERYDRAGICON": 0x0037,
30+
"WM_QUERYOPEN": 0x0013,
31+
"WM_QUIT": 0x0012,
32+
"WM_SHOWWINDOW": 0x0018,
33+
"WM_SIZE": 0x0005,
34+
"WM_SIZING": 0x0214,
35+
"WM_STYLECHANGED": 0x007D,
36+
"WM_STYLECHANGING": 0x007C,
37+
"WM_THEMECHANGED": 0x031A,
38+
"WM_USERCHANGED": 0x0054,
39+
"WM_WINDOWPOSCHANGED": 0x0047,
40+
"WM_WINDOWPOSCHANGING": 0x0046
41+
}
42+
43+
44+
def send_message_to_window(window_name: str, action_message: int,
45+
key_code_1: int, key_code_2: int):
46+
_hwnd = FindWindowW(window_name)
47+
post_status = SendMessageW(_hwnd, action_message, key_code_1, key_code_2)
48+
return _hwnd, post_status
49+
50+
51+
def send_message_to_window_hwnd(_hwnd, action_message: int,
52+
key_code_1: int, key_code_2: int):
53+
post_status = SendMessageW(_hwnd, action_message, key_code_1, key_code_2)
54+
return _hwnd, post_status
55+
56+
57+
def post_message_to_window(window_name: str, action_message: int,
58+
key_code_1: int, key_code_2: int):
59+
_hwnd = FindWindowW(window_name)
60+
post_status = PostMessageW(_hwnd, action_message, key_code_1, key_code_2)
61+
return _hwnd, post_status
62+
63+
64+
def post_message_to_window_hwnd(_hwnd, action_message: int,
65+
key_code_1: int, key_code_2: int):
66+
post_status = PostMessageW(_hwnd, action_message, key_code_1, key_code_2)
67+
return _hwnd, post_status

je_auto_control/windows/window/window_hwnd.py

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,15 @@
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))
98
GetWindowText = user32.GetWindowTextW
109
GetWindowTextLength = user32.GetWindowTextLengthW
1110
IsWindowVisible = user32.IsWindowVisible
1211
FindWindowW = user32.FindWindowW
13-
PostMessageW = user32.PostMessageW
14-
SendMessageW = user32.SendMessageW
12+
CloseWindow = user32.CloseWindow
13+
DestroyWindow = user32.DestroyWindow
1514

1615

1716
def get_all_window_hwnd():
@@ -33,15 +32,9 @@ def get_one_window_hwnd(window_class: Union[None, str], window_name: Union[None,
3332
return FindWindowW(window_class, window_name)
3433

3534

36-
def send_key_to_window(window_name: str, action_message: int,
37-
key_code_1: int, key_code_2: int):
38-
_hwnd = FindWindowW(window_name)
39-
post_status = SendMessageW(_hwnd, action_message, key_code_1, key_code_2)
40-
return _hwnd, post_status
35+
def close_window(hwnd) -> bool:
36+
return CloseWindow(hwnd)
4137

4238

43-
def post_key_to_window(window_name: str, action_message: int,
44-
key_code_1: int, key_code_2: int):
45-
_hwnd = FindWindowW(window_name)
46-
post_status = PostMessageW(_hwnd, action_message, key_code_1, key_code_2)
47-
return _hwnd, post_status
39+
def destroy_window(hwnd) -> bool:
40+
return DestroyWindow(hwnd)

test/manual_test/windows_window.py

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

0 commit comments

Comments
 (0)