Писане треньор на Visual C

В тази статия ще ви покажа как да се направи треньор, с помощта на Visual C ++. В написването на тази статия Бутнах факта, че когато аз се опитвах да се намери в интернет най-малко известна информация за това как да се направи проста треньор в VC, всички намерих бяха статии, показващи примери за C / C ++, както и главно в Делфи и MASM. Изглежда, че в тази ситуация, че е възможно да се използва материал от статии за C / C ++, ако не и едно "но" - силна привързаност VC ++ класове, в резултат на което някои API функции не се държат както трябва. По-късно ще стане ясно.

Това е, което ни трябва:

- Самата игра. Избрах една интересна RPG - Avernum 3

- Програмата въведете GameHack TSearch или потърсете ни конкретните стойности в паметта. Аз предпочитам TSearch. защото, по мое мнение, това е най-функционалният от всички такива програми. Въпреки, че този въпрос на избор на всеки един от.

- Visual C ++. Аз трябва версия 6.0, така че урока ще бъдат направени по него. Версия не е много принципна, както знаете :)

HP първия байт character'a0x00C1C0502

Народният представител от първия байт character'a0X00C1C0544

HP втори байт character'a0x00C1C4202

MP втори байт character'a0x00C1C4244

HP character'a0x00C1C7F02 третия байт

MP character'a0x00C1C7F44 третия байт

HP четвърти character'a0x00C1CBC02 байта

Народният представител от четвъртия байт character'a0x00C1CBC44

Ние се обръщаме към най-важните и творческия процес - пишете ни треньор. Трябва ли да се направи, разбира се, с помощта на функцията API, защото тя ще бъде по-лесно, а програмата ще работи много по-бързо. Тук е необходимо да функция (вж техните описания в позоваването на API Win32):

Teper ще създаде нов проект за buduyuschego треньор. Започнете Visual C ++ и Davie File-> New. В прозореца, който се показва, изберете вида на MFC AppWizard (Търсейки). име на проекта, наберете - Avernum3tr. Davie Next. Изберете Dialog базирани. Напред. След това махнете Active X и за кутия - те ни дават не nafig необходимо. Всички Davie Finish и получавате рамка. Както можете да видите AppWizard е генерирала dialogovoo прозорец за нас, подобно на много код, който инициализира много глупости. Можете да незабавно да изтриете статичен текст и две копченца на прозореца - те също са ненужни.

Име на курса - CAvernum3trDlg

Номер на обекта е - CAvernum3trDlg

функции държави - OnIntiDialog

и кликнете върху Редактиране код. Тъй като тази функция е създадена, ние стигнем до част от код на функцията, която се нарича при създаването на нашия прозорец. Там се инициализира ни таймер. Добавен преди завръщането TRUE шевове ред:

SetTimer (1, 100, NULL);

По този начин, при стартирането на нашия треньор, ще създаде таймер. че ще изпрати съобщение до нашия прозорец WM_TIMER около 4 пъти в секунда (втори параметър). Но след като сме създали таймер при стартиране, е необходимо да го унищожи на изхода от треньор. Davie Ctrl + W отново и се добавя функцията WM_DESTROY (мисля ясно как) и PUSH Edit код. Напиши там:

OK. преминете към часовника на процесора. Ctrl + W и добавя WM_TIMER функция и да преминете към своя код. Тук. Тази функция ще се нарича всеки път, когато таймерът работи. Както вече сте разбрали, тогава ние ще напишете кода, който ще отговаря за наваксване натиснат клавиши и ние трябва да направим нещо, за което, всъщност, създава треньор :)

Тук ние стигаме до точката, защо. В действителност, много от статиите на писане треньор C / C ++ не е работило през ВХ. Опитайте се да напишете функция на тялото ON_WM_TIMER функция FindWindow на (и да видим на повърхността представа за параметрите на функцията:

CWnd * FindWindow (LPCTSTR lpszClassName, LPCTSTR plszWindowName);

и да я сравни с това, което имаме нужда от:

HWND FindWindow (LPCTSTR lpszClassName, LPCTSTR plszWindowName);

Фактът, че първият вариант е член функция на класа на нашите прозорци (знам, Chto звучи сложно, но все пак), и поради това се връща малко по-различен вид. Какво да се прави. И ние ще направим това тук - да създаде своя собствена независима общ клас, ние ще използваме не само в този прог. Ако имаме такъв клас, а след това следващия път, когато пишете следващата си треньор, можете просто да добавите този клас за проекта, vpisheshsya в таймер функция на тялото само за няколко линии (по-късно ще разберете защо) и всички - готово. Това, приятелю, класове - просто супер възможност PLO. Да, разбира се, че ще отнеме известно време, но велик го запишете по-късно. Не ми ли вярвате - погледнете.

Fingers фен - lepim клас

Точно в прозореца ClassView изберете раздела и кликнете с десния бутон на Avernum3tr класове. Изберете Нов клас. В прозореца, който се показва, изберете:

Клас typeGeneric клас

и Davie OK и ще видите, че той се появи в списъка на класовете на нашия проект. Ако натиснете върху иконата на "+" до името на новия ни клас, ще видите, че има две функции страни - конструктор и деструктор.

Сега ще ви покажем как да добавите една функция, а останалите, които сте добавили лично. Задръжте десния бутон на мишката върху нашия клас и изберете Добавяне на член функция. В отворилия се прозорец, напишете следното:

Функция DeclarationscOpenProcess (Чар * p_ClassName, знак * p_WindowName)

hWindow = FindWindow (p_ClassName, p_WindowName);