 |
|

16.05.2023, 18:06
|
|
Участник форума
Регистрация: 12.02.2022
Сообщений: 112
С нами:
2238751
Репутация:
48
|
|
Сообщение от Sadow
Обязательно регистрировать переменную?
нет
|
|
|

16.05.2023, 20:03
|
|
Участник форума
Регистрация: 14.04.2018
Сообщений: 122
С нами:
4254200
Репутация:
98
|
|
|
|
|

16.05.2023, 22:04
|
|
Познавший АНТИЧАТ
Регистрация: 14.10.2021
Сообщений: 1,412
С нами:
2411807
Репутация:
118
|
|
Сообщение от Digger Man
C++:
Код:
int
buttonid
=
1
;
// тут айди кнопки
HWND hwndbut
=
GetDlgItem
(
hWnd
,
buttonid
)
;
SendMessage
(
hwndbut
,
BM_CLICK
,
0
,
0
)
;
ну и понятное дело нужно дескриптор окна получить, в котором будет происходить нажатие
C++:
Код:
HWND hWnd
=
FindWindow
(
NULL
,
"gta sa"
)
;
Как можно такое реализовать в Rage MP? Я пишу вместо gta sa GTAV (название основного приложения с гташкой) и не работает
|
|
|

16.05.2023, 22:08
|
|
Познавший АНТИЧАТ
Регистрация: 14.07.2019
Сообщений: 1,097
С нами:
3596877
Репутация:
183
|
|
Сообщение от Sadow
Как можно такое реализовать в Rage MP? Я пишу вместо gta sa GTAV (название основного приложения с гташкой) и не работает
Название окна, должно быть 1:1, а так хукай wndproc, помощь в этом нужна?
|
|
|

16.05.2023, 22:10
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от Sadow
Как можно такое реализовать в Rage MP? Я пишу вместо gta sa GTAV (название основного приложения с гташкой) и не работает
rage mp рандомно название окна меняет, там по другому надо
|
|
|

16.05.2023, 22:13
|
|
Познавший АНТИЧАТ
Регистрация: 14.10.2021
Сообщений: 1,412
С нами:
2411807
Репутация:
118
|
|
Сообщение от Digger Man
Название окна, должно быть 1:1, а так хукай wndproc, помощь в этом нужна?
da
|
|
|

16.05.2023, 22:28
|
|
Познавший АНТИЧАТ
Регистрация: 14.07.2019
Сообщений: 1,097
С нами:
3596877
Репутация:
183
|
|
можно просто в центр кликать, если окно не известно
C++:
Код:
HWND hwnd
=
GetForegroundWindow
(
)
;
// дескриптор окна
// далее получаем размеры окна
RECT rect
;
GetClientRect
(
hwnd
,
&
rect
)
;
int
centerX
=
(
rect
.
right
-
rect
.
left
)
/
2
;
// Х центра
int
centerY
=
(
rect
.
bottom
-
rect
.
top
)
/
2
;
// Y центра
// нажимаем
SendMessage
(
hwnd
,
WM_LBUTTONDOWN
,
MK_LBUTTON
,
MAKELPARAM
(
centerX
,
centerY
)
)
;
SendMessage
(
hwnd
,
WM_LBUTTONUP
,
MK_LBUTTON
,
MAKELPARAM
(
centerX
,
centerY
)
)
;
|
|
|

18.05.2023, 02:57
|
|
Новичок
Регистрация: 16.01.2022
Сообщений: 28
С нами:
2276608
Репутация:
8
|
|
Возникла необходимость смены Window Text после инициализации.
Сделал вот так, не работает, кто подскажет в чём может быть проблема? И где моя ошибка
с++:
Код:
#include "pch.h"
#include
#include
BOOL WINAPI
DllMain
(
HINSTANCE hinstDLL
,
DWORD fdwReason
,
LPVOID lpvReserved
)
{
if
(
fdwReason
==
DLL_PROCESS_ATTACH
)
{
HWND hwnd
=
FindWindow
(
NULL
,
L
"GTA:SA:MP"
)
;
if
(
hwnd
==
NULL
)
return
FALSE
;
SetWindowText
(
hwnd
,
L
"GTA:NewText"
)
;
//debug
MessageBox
(
NULL
,
L
"ASI initialization successful!"
,
L
"Success"
,
MB_OK
)
;
FILE
*
f
;
fopen_s
(
&
f
,
"SetWindowText.log"
,
"a"
)
;
fprintf
(
f
,
"Success\n"
)
;
fclose
(
f
)
;
}
return
TRUE
;
}
|
|
|

18.05.2023, 09:45
|
|
Участник форума
Регистрация: 12.02.2022
Сообщений: 112
С нами:
2238751
Репутация:
48
|
|
Сообщение от writeline
Возникла необходимость смены Window Text после инициализации.
Сделал вот так, не работает, кто подскажет в чём может быть проблема? И где моя ошибка
с++:
Код:
#include "pch.h"
#include
#include
BOOL WINAPI
DllMain
(
HINSTANCE hinstDLL
,
DWORD fdwReason
,
LPVOID lpvReserved
)
{
if
(
fdwReason
==
DLL_PROCESS_ATTACH
)
{
HWND hwnd
=
FindWindow
(
NULL
,
L
"GTA:SA:MP"
)
;
if
(
hwnd
==
NULL
)
return
FALSE
;
SetWindowText
(
hwnd
,
L
"GTA:NewText"
)
;
//debug
MessageBox
(
NULL
,
L
"ASI initialization successful!"
,
L
"Success"
,
MB_OK
)
;
FILE
*
f
;
fopen_s
(
&
f
,
"SetWindowText.log"
,
"a"
)
;
fprintf
(
f
,
"Success\n"
)
;
fclose
(
f
)
;
}
return
TRUE
;
}
в dll_process_attach в твоём случае чтобы исполнить код который ты хочешь нужно ставить инициализацию функции где будет лежать код который тебе надо, и инициализироваться он должен обязательно через:
C++:
Код:
std
::
thread
(
name_func
)
.
detach
(
)
;
вот тебе пример:
C++:
Код:
#include
#include
#include
#include
bool
func
(
)
{
HWND hwnd
=
FindWindowA
(
nullptr
,
"GTA:SA:MP"
)
;
if
(
hwnd
==
NULL
)
{
MessageBoxA
(
nullptr
,
"ПИЗДЕЦ НАХУЙ"
,
"ПИЗДЕЦ"
,
MB_OK
)
;
return
true
;
}
SetWindowTextA
(
hwnd
,
"GTA:NewText"
)
;
MessageBoxA
(
nullptr
,
"ASI initialization successful!"
,
"Success"
,
MB_OK
)
;
FILE
*
f
;
fopen_s
(
&
f
,
"SetWindowText.log"
,
"a"
)
;
fprintf
(
f
,
"Success\n"
)
;
fclose
(
f
)
;
}
BOOL WINAPI
DllMain
(
HINSTANCE hinstDLL
,
DWORD fdwReason
,
LPVOID lpvReserved
)
{
if
(
fdwReason
==
DLL_PROCESS_ATTACH
)
{
std
::
thread
(
func
)
.
detach
(
)
;
}
return
TRUE
;
}
|
|
|

18.05.2023, 10:15
|
|
Флудер
Регистрация: 02.02.2019
Сообщений: 5,070
С нами:
3831395
Репутация:
183
|
|
Сообщение от writeline
Возникла необходимость смены Window Text после инициализации.
Сделал вот так, не работает, кто подскажет в чём может быть проблема? И где моя ошибка
с++:
Код:
#include "pch.h"
#include
#include
BOOL WINAPI
DllMain
(
HINSTANCE hinstDLL
,
DWORD fdwReason
,
LPVOID lpvReserved
)
{
if
(
fdwReason
==
DLL_PROCESS_ATTACH
)
{
HWND hwnd
=
FindWindow
(
NULL
,
L
"GTA:SA:MP"
)
;
if
(
hwnd
==
NULL
)
return
FALSE
;
SetWindowText
(
hwnd
,
L
"GTA:NewText"
)
;
//debug
MessageBox
(
NULL
,
L
"ASI initialization successful!"
,
L
"Success"
,
MB_OK
)
;
FILE
*
f
;
fopen_s
(
&
f
,
"SetWindowText.log"
,
"a"
)
;
fprintf
(
f
,
"Success\n"
)
;
fclose
(
f
)
;
}
return
TRUE
;
}
До инициализации игры у окна другое название, поэтому плагин и не может найти GTA:SA:MP. Дожидайся загрузки игры например хуком CTimer::Update и уже тогда делай поиск по названию окна.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|