|
|
|
Восстановление окна после showwindow #handle HIDE, showwindow #handle HIDE/RESTORE |
|
|
Demergo |
2.6.2021, 11:58
|
Neophyte
Сообщений: 34
Регистрация: 22.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.040
Возраст: 29
|
Цитата(cirus @ 2.6.2021, 12:26) Код --lua local ffi = require("ffi") ffi.cdef[[ int FindWindowExA(int hWndParent, int hWndChildAfter, const char* lpszClass, const char* lpszWindow); ]]
local handle = ffi.C.FindWindowExA(0, 0, nil, 'Калькулятор') -- найти окно if handle > 0 then -- showwindow (handle, 'top') -- показать окно showwindow (handle, 'hide') -- скрыть окно else log ('Окно не найдено') end то что доктор прописал (IMG: style_emoticons/default/cool.gif) ничего непонятно но работает (IMG: style_emoticons/default/smile.gif) Цитата(cirus @ 2.6.2021, 12:26) Код --lua local ffi = require("ffi") ffi.cdef[[ int FindWindowExA(int hWndParent, int hWndChildAfter, const char* lpszClass, const char* lpszWindow); ]]
local handle = ffi.C.FindWindowExA(0, 0, nil, 'Калькулятор') -- найти окно if handle > 0 then -- showwindow (handle, 'top') -- показать окно showwindow (handle, 'hide') -- скрыть окно else log ('Окно не найдено') end а можно искать по части названия окна?
|
|
|
|
cirus |
2.6.2021, 12:26
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26691
Пользователь №: 16.971
Возраст: 29
|
Цитата а можно искать по части названия окна? код
Код --lua local ffi = require("ffi") ffi.cdef[[ int FindWindowExA(int hWndParent, int hWndChildAfter, const char* lpszClass, const char* lpszWindow); int GetWindowTextA(int hWnd, char* lpString, int nMaxCount); int GetWindowTextLengthA(int hWnd); ]]
function _findwindow(name_window) local handle = ffi.C.FindWindowExA(0, 0, nil, nil) while handle > 0 do local WindowName = ffi.new('char[?]', ffi.C.GetWindowTextLengthA(handle)+1) ffi.C.GetWindowTextA(handle, WindowName, ffi.sizeof(WindowName)) if ffi.string(WindowName):match(name_window) then return handle, ffi.string(WindowName) end handle = ffi.C.FindWindowExA(0, handle, nil, nil) end return 0, nil end
local handle, full_name = _findwindow('Кальк') -- имя или часть имени окна if handle > 0 then log ('Полное имя окна:\t' .. full_name) -- showwindow (handle, 'top') -- показать окно showwindow (handle, 'hide') -- скрыть окно else log ('Окно не найдено') end
|
|
|
|
Demergo |
2.6.2021, 12:45
|
Neophyte
Сообщений: 34
Регистрация: 22.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.040
Возраст: 29
|
Цитата(cirus @ 2.6.2021, 13:26) код
Код --lua local ffi = require("ffi") ffi.cdef[[ int FindWindowExA(int hWndParent, int hWndChildAfter, const char* lpszClass, const char* lpszWindow); int GetWindowTextA(int hWnd, char* lpString, int nMaxCount); int GetWindowTextLengthA(int hWnd); ]]
function _findwindow(name_window) local handle = ffi.C.FindWindowExA(0, 0, nil, nil) while handle > 0 do local WindowName = ffi.new('char[?]', ffi.C.GetWindowTextLengthA(handle)+1) ffi.C.GetWindowTextA(handle, WindowName, ffi.sizeof(WindowName)) if ffi.string(WindowName):match(name_window) then return handle, ffi.string(WindowName) end handle = ffi.C.FindWindowExA(0, handle, nil, nil) end return 0, nil end
local handle, full_name = _findwindow('Кальк') -- имя или часть имени окна if handle > 0 then log ('Полное имя окна:\t' .. full_name) -- showwindow (handle, 'top') -- показать окно showwindow (handle, 'hide') -- скрыть окно else log ('Окно не найдено') end спасибо огромное!
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|