Как на луа можно узнать название окна

Статус
В этой теме нельзя размещать новые ответы.
Решение
Вроде бы
Lua:
local ffi = require 'ffi'
ffi.cdef [[
    typedef unsigned long HANDLE;
    typedef HANDLE HWND;
    typedef const char *LPCTSTR;

    HWND GetActiveWindow(void);
]]
print(ffi.GetActiveWindow())
Название окна?

Lua:
ffi.cdef [[
        typedef const char *LPSTR;
        typedef const char* LPCSTR;
        typedef unsigned long HANDLE;
        typedef HANDLE HWND;

        HWND GetActiveWindow(void);
        int GetWindowTextA(HWND hWnd, LPSTR lpString,int nMaxCount);
        int GetWindowTextLengthA(HWND hWnd);
]]

local hwnd = ffi.C.GetActiveWindow();
local length = ffi.C.GetWindowTextLengthA(hwnd) + 1;
local window_name = ffi.new("char[" .. length .. "]");
ffi.C.GetWindowTextA(hwnd, window_name...

roman_vodola

Участник
Автор темы
157
16
Хуком onShowDialog
Lua:
local se = require "lib.samp.events"

function se.onShowDialog(dialogId,style,title,button1,button2,text)
   sampAddChatMessage(title,-1)
end
1633503519651.png
я хочу возможность получать название данного окна игры.
 

madrasso

Потрачен
883
323
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вроде бы
Lua:
local ffi = require 'ffi'
ffi.cdef [[
    typedef unsigned long HANDLE;
    typedef HANDLE HWND;
    typedef const char *LPCTSTR;

    HWND GetActiveWindow(void);
]]
print(ffi.GetActiveWindow())
Название окна?

Lua:
ffi.cdef [[
        typedef const char *LPSTR;
        typedef const char* LPCSTR;
        typedef unsigned long HANDLE;
        typedef HANDLE HWND;

        HWND GetActiveWindow(void);
        int GetWindowTextA(HWND hWnd, LPSTR lpString,int nMaxCount);
        int GetWindowTextLengthA(HWND hWnd);
]]

local hwnd = ffi.C.GetActiveWindow();
local length = ffi.C.GetWindowTextLengthA(hwnd) + 1;
local window_name = ffi.new("char[" .. length .. "]");
ffi.C.GetWindowTextA(hwnd, window_name, length);

print(ffi.string(window_name));
 
  • Нравится
Реакции: damag и roman_vodola
Статус
В этой теме нельзя размещать новые ответы.