Другое С/С++ Вопрос - Ответ

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,731
4,720
windowproc игры подменяется на какой-то другой windowproc, и этот windowproc не возвращает игре её windowproc.

но тут я точно не знаю что происходит, банально мб ты ub ловишь
Яж сказал античит сампа пизды дает
 

Sadow

Известный
1,438
590
Как эмитировать нажатие ЛКМ? Пробовал вот так, но не работает.
C++:
#include <iostream>
#include <Windows.h>
#include <conio.h>

bool act = false;

int main() {
    setlocale(LC_ALL, "RU");
    std::cout << "Загружено. Нажмите Insert" << std::endl;
    while (true) {
        if (_kbhit()) {
            switch (_getch()) {
                case 82:
                    act = !act;
            }
        }
        if (act) {
            std::cout << "+" << std::endl;
            keybd_event(01, 0, 0, 0);
            keybd_event(01, 0, 0x0002, 0);
        }
    }
}
 

x0r1x

Потрачен
114
97
Как эмитировать нажатие ЛКМ? Пробовал вот так, но не работает.
C++:
#include <iostream>
#include <Windows.h>
#include <conio.h>

bool act = false;

int main() {
    setlocale(LC_ALL, "RU");
    std::cout << "Загружено. Нажмите Insert" << std::endl;
    while (true) {
        if (_kbhit()) {
            switch (_getch()) {
                case 82:
                    act = !act;
            }
        }
        if (act) {
            std::cout << "+" << std::endl;
            keybd_event(01, 0, 0, 0);
            keybd_event(01, 0, 0x0002, 0);
        }
    }
}
ставить хук на windowproc, и с помощью sendmessagea эмулировать нажатие нужной тебе клавиши
 
  • Нравится
Реакции: Sadow

Digger Man

Любитель Linux
Модератор
1,631
1,125
Как эмитировать нажатие ЛКМ? Пробовал вот так, но не работает.
C++:
#include <iostream>
#include <Windows.h>
#include <conio.h>

bool act = false;

int main() {
    setlocale(LC_ALL, "RU");
    std::cout << "Загружено. Нажмите Insert" << std::endl;
    while (true) {
        if (_kbhit()) {
            switch (_getch()) {
                case 82:
                    act = !act;
            }
        }
        if (act) {
            std::cout << "+" << std::endl;
            keybd_event(01, 0, 0, 0);
            keybd_event(01, 0, 0x0002, 0);
        }
    }
}
C++:
int buttonid = 1; // тут айди кнопки
HWND hwndbut = GetDlgItem(hWnd, buttonid);
SendMessage(hwndbut, BM_CLICK, 0, 0);
ну и понятное дело нужно дескриптор окна получить, в котором будет происходить нажатие
C++:
HWND hWnd = FindWindow(NULL, "gta sa");
 
  • Нравится
Реакции: Sadow и Z3roKwq

Sadow

Известный
1,438
590
C++:
int buttonid = 1; // тут айди кнопки
HWND hwndbut = GetDlgItem(hWnd, buttonid);
SendMessage(hwndbut, BM_CLICK, 0, 0);
ну и понятное дело нужно дескриптор окна получить, в котором будет происходить нажатие
C++:
HWND hWnd = FindWindow(NULL, "gta sa");
Обязательно регистрировать переменную?
 

Sadow

Известный
1,438
590
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 (название основного приложения с гташкой) и не работает