Помогите с Windows Forms [C++]

Пользователь
Статус
Оффлайн
Регистрация
4 Янв 2018
Сообщения
100
Реакции[?]
32
Поинты[?]
0
Хочу добавить уже готовую функцию активации экстернал триггера в checkbox windows forms, но т.к. я не особо отличаюсь интеллектом сделать это я не могу. Памахите кто может :BlessRNG:
Код:
#include <Windows.h>
#include <TlHelp32.h>
#include <iostream>

using namespace std;

LPCWSTR ProcessName = L"csgo.exe";

DWORD FindProcessByName(LPCWSTR ProcessName)
{
    HANDLE hSnapshot;
    PROCESSENTRY32 pEntry = { 0 };
    pEntry.dwSize = sizeof(pEntry);
    hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
    if (hSnapshot == INVALID_HANDLE_VALUE)
    {
        CloseHandle(hSnapshot);
        return 0;
    }
    if (Process32First(hSnapshot, &pEntry))
    {
        while (Process32Next(hSnapshot, &pEntry))
        {
            if (!lstrcmpi(ProcessName, pEntry.szExeFile))
            {
                CloseHandle(hSnapshot);
                return pEntry.th32ProcessID;
            }
        }
    }
    CloseHandle(hSnapshot);
    return FALSE;
}

DWORD ProcessID = FindProcessByName(ProcessName);

DWORD GetModuleNamePointer(LPCWSTR MoudleName, DWORD ProcessID)
{
    MODULEENTRY32 mEntry = { 0 };
    HANDLE hSnapshot;
    mEntry.dwSize = sizeof(mEntry);
    hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, ProcessID);
    if (hSnapshot == INVALID_HANDLE_VALUE)
    {
        CloseHandle(hSnapshot);
        return 0;
    }
    if (Module32First(hSnapshot, &mEntry))
    {
        while (Module32Next(hSnapshot, &mEntry))
        {
            if (!lstrcmpi(mEntry.szModule, MoudleName))
            {
                CloseHandle(hSnapshot);
                return (DWORD)mEntry.modBaseAddr;
            }
        }
    }
    CloseHandle(hSnapshot);
    return FALSE;
}

class GetModulePointer
{
public:
    DWORD DLLServer = GetModuleNamePointer(L"server.dll", ProcessID);
    DWORD DLLEngine = GetModuleNamePointer(L"engine.dll", ProcessID);
    DWORD DLLClient = GetModuleNamePointer(L"client.dll", ProcessID);
    DWORD DLLVGUI = GetModuleNamePointer(L"vguimatsurface.dll", ProcessID);
};

GetModulePointer ModulePointer;

HANDLE Handle(DWORD ProcessID)
{
    HANDLE HandleProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, ProcessID);
    if (HandleProcess) return HandleProcess;
    CloseHandle(HandleProcess);
    cout << "ErrorTakeHandle!" << endl;
    return NULL;
}

HANDLE HandleProcess = Handle(ProcessID);

template <class T>
T Read(const DWORD addr) {
    T _read;
    ReadProcessMemory(HandleProcess, reinterpret_cast<LPVOID>(addr), &_read, sizeof(T), NULL);
    return _read;
}

template <class T>
void Write(const DWORD addr, T val) {
    WriteProcessMemory(HandleProcess, reinterpret_cast<LPVOID>(addr), &val, sizeof(T), NULL);
}
Код:
int m_iCrosshairId = 0xB2A4;
int m_iHealth = 0xFC;
int m_iTeamNum = 0xF0;
int dwForceAttack = 0x2EBC23C;
int dwLocalPlayer = 0xA9D0DC;
int dwEntityList = 0x4A79EC4;
Код:
#include "hProcess.h"
#include "Offsets.h"

class Cheats
{
private:
    int LocalPlayer = Read<int>(ModulePointer.DLLClient + dwLocalPlayer);
    int LocalPlayerTeam = Read<int>(LocalPlayer + m_iTeamNum);
    int CrossHairID = Read<int>(LocalPlayer + m_iCrosshairId);
    int CrossHairTarget = Read<int>(ModulePointer.DLLClient + dwEntityList + (CrossHairID - 1) * 0x10);
    int CrossHairTargetTeam = Read<int>(CrossHairTarget + m_iTeamNum);

public:
    void Trigger()
    {
        while (true)
            if (LocalPlayerTeam != CrossHairTargetTeam)
            {
                Write<int>(dwForceAttack + ModulePointer.DLLClient, 5);
                Sleep(1);
                Write<int>(dwForceAttack + ModulePointer.DLLClient, 4);
            }
    }
};
Код:
#include "MyForm.h"

using namespace System;
using namespace System::Windows::Forms;
[STAThread]
void main(array<String^>^ args)
{
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
    Window::MyForm form;
    Application::Run(%form);
}
Код:
#pragma once
#include "main.h"

namespace Window {

    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;

    /// <summary>
    /// Сводка для MyForm
    /// </summary>
    public ref class MyForm : public System::Windows::Forms::Form
    {
    public:
        MyForm(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
        }

    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~MyForm()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::CheckBox^  TriggerController;
    protected:

    private:
        /// <summary>
        /// Обязательная переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
        /// <summary>
        /// Требуемый метод для поддержки конструктора — не изменяйте
        /// содержимое этого метода с помощью редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->TriggerController = (gcnew System::Windows::Forms::CheckBox());
            this->SuspendLayout();
            //
            // TriggerController
            //
            this->TriggerController->AutoSize = true;
            this->TriggerController->Location = System::Drawing::Point(13, 13);
            this->TriggerController->Name = L"TriggerController";
            this->TriggerController->Size = System::Drawing::Size(59, 17);
            this->TriggerController->TabIndex = 0;
            this->TriggerController->Text = L"Trigger";
            this->TriggerController->UseVisualStyleBackColor = true;
            this->TriggerController->Click += gcnew System::EventHandler(this, &MyForm::TriggerController_Click);
            //
            // MyForm
            //
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(284, 261);
            this->Controls->Add(this->TriggerController);
            this->Name = L"MyForm";
            this->Text = L"MyForm";
            this->Load += gcnew System::EventHandler(this, &MyForm::MyForm_Load);
            this->ResumeLayout(false);
            this->PerformLayout();

        }
#pragma endregion
    private: System::Void MyForm_Load(System::Object^  sender, System::EventArgs^  e) {
    }
    private: System::Void TriggerController_Click(System::Object^  sender, System::EventArgs^  e) {
    }
        
    };

}
 
Эксперт
Статус
Оффлайн
Регистрация
12 Июн 2014
Сообщения
999
Реакции[?]
1,209
Поинты[?]
3K
создаешь контрол CheckBox. подписываешь его на событие CheckedChanged. Пишешь внутри что-то подобное:
Код:
bool activTrigger  = false;//глобальная переменная


private: System::Void YoucheckBox_CheckedChanged(System::Object^ sender, System::EventArgs^ e) {
 activTrigger ^= 1;
}
там где у тебя вызывается код с триггерботом:
Код:
if(activTrigger )
{
\\активация триггербота
}
 
Сверху Снизу