PDA

Просмотр полной версии : Почему у меня не получается взаимодействие с imgui


Lusikkip
13.08.2025, 02:08
C++:






#include "includes.h"
#ifdef _WIN64
#define GWL_WNDPROC GWLP_WNDPROC
#endif
extern
LRESULT
ImGui_ImplWin32_WndProcHandler
(
HWND hWnd
,
UINT msg
,
WPARAM wParam
,
LPARAM lParam
)
;
EndScene oEndScene
=
NULL
;
WNDPROC oWndProc
;
static
HWND window
=
NULL
;
void
InitImGui
(
LPDIRECT3DDEVICE9 pDevice
)
{
ImGui
::
CreateContext
(
)
;
ImGuiIO
&
io
=
ImGui
::
GetIO
(
)
;
io
.
ConfigFlags
=
ImGuiConfigFlags_NoMouseCursorChange
;
ImGui_ImplWin32_Init
(
window
)
;
ImGui_ImplDX9_Init
(
pDevice
)
;
}
bool
init
=
false
;
long
__stdcall
hkEndScene
(
LPDIRECT3DDEVICE9 pDevice
)
{
if
(
!
init
)
{
InitImGui
(
pDevice
)
;
init
=
true
;
}
ImGui_ImplDX9_NewFrame
(
)
;
ImGui_ImplWin32_NewFrame
(
)
;
ImGui
::
NewFrame
(
)
;
ImGui
::
Begin
(
"ImGui Menu"
)
;
if
(
ImGui
::
Button
(
"Click Me"
)
)
{
MessageBox
(
NULL
,
"Button clicked!"
,
"Info"
,
MB_OK
)
;
}
ImGui
::
End
(
)
;
ImGui
::
EndFrame
(
)
;
ImGui
::
Render
(
)
;
ImGui_ImplDX9_RenderDrawData
(
ImGui
::
GetDrawData
(
)
)
;
return
oEndScene
(
pDevice
)
;
}
LRESULT __stdcall
WndProc
(
const
HWND hWnd
,
UINT uMsg
,
WPARAM wParam
,
LPARAM lParam
)
{
if
(
true
&&
ImGui_ImplWin32_WndProcHandler
(
hWnd
,
uMsg
,
wParam
,
lParam
)
)
return
true
;
return
CallWindowProc
(
oWndProc
,
hWnd
,
uMsg
,
wParam
,
lParam
)
;
}
BOOL CALLBACK
EnumWindowsCallback
(
HWND handle
,
LPARAM lParam
)
{
DWORD wndProcId
;
GetWindowThreadProcessId
(
handle
,
&
wndProcId
)
;
if
(
GetCurrentProcessId
(
)
!=
wndProcId
)
return
TRUE
;
window
=
handle
;
return
FALSE
;
}
HWND
GetProcessWindow
(
)
{
window
=
NULL
;
EnumWindows
(
EnumWindowsCallback
,
NULL
)
;
return
window
;
}
DWORD WINAPI
MainThread
(
LPVOID lpReserved
)
{
bool
attached
=
false
;
do
{
if
(
kiero
::
init
(
kiero
::
RenderType
::
D3D9
)
==
kiero
::
Status
::
Success
)
{
kiero
::
bind
(
42
,
(
void
*
*
)
&
oEndScene
,
hkEndScene
)
;
do
window
=
GetProcessWindow
(
)
;
while
(
window
==
NULL
)
;
oWndProc
=
(
WNDPROC
)
SetWindowLongPtr
(
window
,
GWL_WNDPROC
,
(
LONG_PTR
)
WndProc
)
;
attached
=
true
;
}
}
while
(
!
attached
)
;
return
TRUE
;
}
BOOL WINAPI
DllMain
(
HMODULE hMod
,
DWORD dwReason
,
LPVOID lpReserved
)
{
switch
(
dwReason
)
{
case
DLL_PROCESS_ATTACH
:
DisableThreadLibraryCalls
(
hMod
)
;
CreateThread
(
nullptr
,
0
,
MainThread
,
hMod
,
0
,
nullptr
)
;
break
;
case
DLL_PROCESS_DETACH
:
kiero
::
shutdown
(
)
;
break
;
}
return
TRUE
;
}




Пытаюсь увеличить окно, не увеличивается, пытаюсь свернуть, не сворачивается, нажимаю на кнопку не нажимается, пытаюсь ввести что то в input, не вводится, ничего не происходит только курсор мыши торчит, и камеру не повернешь

скопировал тему но проблема та же

nsxfgbhosdnghfbhpsdng
15.08.2025, 21:45
на инсерт открввай или поменяй там кнопку, сделал так, что imgui инициализируется только после хука окна, ввод обрабатывается только при открытом меню, добавил активацию на Insert и корректный выход без блокировок игры и скажи должно все работать

Lusikkip
16.08.2025, 03:02
Нет, я делаю через Kiero Hook. Не понимаю, в чём проблема. Код, который ты прислал, просто останавливает ImGui. Не знаю, как описать — оно появляется в левом углу экрана и просто остаётся там. Перетащить нельзя, открыть тоже нельзя.



на инсерт открввай или поменяй там кнопку, сделал так, что imgui инициализируется только после хука окна, ввод обрабатывается только при открытом меню, добавил активацию на Insert и корректный выход без блокировок игры и скажи должно все работать

nsxfgbhosdnghfbhpsdng
16.08.2025, 03:35
я поменял попробуй его а если все равно залупа то хз

Lusikkip
16.08.2025, 04:06
я поменял попробуй его а если все равно залупа то хз


Ух ты, спасибо. Посплю буду фиксить ошибку. У тебя случаем нет готового рабочего хука ?

https://forum.antichat.xyz/attachments/28630055/