Не удалось найти всплывающее окно после PostMessage - PullRequest
0 голосов
/ 13 сентября 2018

Я хочу сделать это:

1.Найдите кнопку «CheckData» в окне «FetchData».

2.Нажмите «CheckData».

3.PopВ новом окне «Проверка».

4.Найдите кнопку «Пуск» в окне «Проверка».

5.Нажмите «Старт».

Но не удалось найтиВ новом всплывающем окне «Проверить» после PostMessage нажать кнопку «CheckData».Как я могу это исправить?

TCM_SETCURFOCUS = 4912
WM_SETFOCUS = 7
WM_KEYDOWN = 256
WM_KEYUP = 257
BM_CLICK = 245

Set Wrap = CreateObject("DynamicWrapper")
Wrap.Register "user32.dll", "FindWindowA", "i=ss", "f=s", "r=l"
Wrap.Register "user32.dll", "FindWindowExA", "i=llss", "f=s", "r=l"
Wrap.Register "user32.dll", "PostMessageA", "i=lull", "f=s", "r=l"
Wrap.Register "user32.dll", "GetWindow", "i=ss", "f=s", "r=l"

h = Wrap.FindWindowA("#32770", "FetchData")
tab = Wrap.FindWindowExA(h, 0, "SysTabControl32", "Fetch")

Wrap.PostMessageA tab, TCM_SETCURFOCUS, 2, 0

h1 = Wrap.FindWindowExA(h, 0, "#32770", "Fetch")
cb = Wrap.FindWindowExA(h1, 0, "ComboBox", "")
Wrap.PostMessageA cb, WM_SETFOCUS, 0, 0
Wrap.PostMessageA cb, WM_KEYDOWN, VK_DOWN, 0
Wrap.PostMessageA cb, WM_KEYUP, VK_DOWN, 0

bt = 0
bt = Wrap.FindWindowExA(h1, 0, "Button", "CheckData")
Wrap.PostMessageA bt, BM_CLICK, 0, 0

'find popup window
h2 = Wrap.FindWindowA("#32770", "Check")

bt2 = 0
bt2 = Wrap.FindWindowExA(h2, 0, "Button", "Start")
Wrap.PostMessageA bt2, BM_CLICK, 0, 0

set Wrap = nothing
...