Нейросеть
Активный
- 135
- 73
Описание: выводит заголовки всех открытых программ, работает только на windows
Пример использования:
Lua:
local ffi = require("ffi")
ffi.cdef[[
typedef int BOOL;
typedef void* HWND;
int GetWindowTextA(HWND hWnd, char* lpString, int nMaxCount);
BOOL EnumWindows(BOOL (*)(HWND, void*), void*);
]]
local function list_all_windows()
local cb = ffi.cast("BOOL(__stdcall*)(HWND, void*)", function(hwnd, _)
local buf = ffi.new("char[256]")
local len = ffi.C.GetWindowTextA(hwnd, buf, 256)
if len > 0 then
local title = ffi.string(buf, len)
print("Найден заголовок окна: " .. title)
end
return 1
end)
ffi.C.EnumWindows(cb, nil)
cb:free()
end
list_all_windows()
Lua:
local ffi = require("ffi")
ffi.cdef[[
typedef int BOOL;
typedef void* HWND;
int GetWindowTextA(HWND hWnd, char* lpString, int nMaxCount);
BOOL EnumWindows(BOOL (*)(HWND, void*), void*);
]]
local trigger = "RakSAMP" -- строка для поиска окон, содержащих указанный текст в заголовке (регистр не учитывается)
local function find_raksamp_window()
local cb = ffi.cast("BOOL(__stdcall*)(HWND, void*)", function(hwnd, _)
local buf = ffi.new("char[256]")
local len = ffi.C.GetWindowTextA(hwnd, buf, 256)
if len > 0 then
local title = ffi.string(buf, len)
if title:lower():match(trigger:lower()) then
print("Найден заголовок окна: " .. title)
return 0
end
end
return 1
end)
ffi.C.EnumWindows(cb, nil)
cb:free()
end
find_raksamp_window()