Uchwyt okna nie działa...

0

Witam, mam problem, otóż chciałem podpiąć się pod proces pewnej gry i poprzez mój mini programik zmienić ilość kasy. ( tak, wiem że to tylko ja widzę... ) Znalazłem takie coś w necie, ale ciągle wywala błąd przy uchwycie okna.

tj. tutaj :

HWND hFind = FindWindow(0, L"SpiderOT"); 

BŁĄD :

In function 'int main()':|
error: cannot convert 'const wchar_t*' to 'const CHAR*' for argument '2' to 'HWND__* FindWindowA(const CHAR*, const CHAR*)'|

Gdy napisze bez tego 'L' w nazwie okna to niby program się odpala ale nie działa tak jak trzeba...

Poniżej zamieszczam cały kod programu.

 #include <iostream>
#include <Windows.h>

#define WIN32_LEAN_AND_MEAN
#define AD_CASH 0x0067918C

using namespace std;
int main()
{
    int kasa_set;
    int opt;
    //pobieranie uchwytu okna
        HWND hFind = FindWindow(0, L"SpiderOT");

    //pobieranie ID procesu
        DWORD dwProcId;
        GetWindowThreadProcessId(hFind, &dwProcId);

    //otwieranie procesu
        HANDLE proc = OpenProcess(PROCESS_ALL_ACCESS, false, dwProcId);

        cout << "Wybierz funkcje\n\t1. Ustaw kase";
        cin >> opt;

    switch(opt)
    {
        case 1:
            cout << "Kasa = ";
            cin >> kasa_set;
            WriteProcessMemory(proc,(void*)AD_CASH,&kasa_set,8,NULL);
            break;
    }
    return 0;
}
0
#define UNICODE
2

Niestety ale metoda kopiuj-wklej przy pisaniu takich rzeczy nie pomoze. Albo sie wie co sie robi, albo sie nie wie. Nie bede wszystkiego pisal. Podstawy to: sprawdzasz czy otrzymane uchwyty sa poprawne tj. nie sa nullami, bo to zwracaja te funkcje w przypadku niepowodzenia. Wtedy wiadomo w ktorym miejscu jest problem. FindWindow niekoniecznie musi znalezc to okno lub okno moze byc dzieckiem jakiegos wyzszego. Jak np. w notepadzie piszemy po polu "Edit" a nie po "Notepad", ktore znajdujemy najpierw a potem przez FindWindowEx dostajemy uchwyt do edytora.

0

@Krycho
No ja niestety nie wiem co robię, nie wiem też za bardzo skąd się tego dowiedzieć, szukałem w google ale nie znalazłem niczego.

@topic
Te wszystkie #define muszą być nad #include czy pod w programie? Jak biorę nad to program się odpala ale ilosc " kasy " sie nie zmienia. Jak biorę pod to ciągle ten sam błąd, #define UNICODE nic nie daje.

0

@ref

Proszę o pomoc...

0
 HWND hFind = FindWindow(0, L"SpiderOT"); 

Spróbuj tak:

 HWND hFind = FindWindow(0, LPSTR("SpiderOT")); 

Istotna sprawą są też zabezpieczenia przed edytowaniem bitów nie wchodzacych w skłąd programu.

0

No niestety nie działa...

To może inaczej, czego muszę się nauczyć żeby zmienić ten address w grze? Bo na razie znam tylko podstawy programowania(pętle, instrukcje, funkcje, tablice itp.). A powyższy kod jest jedynie modyfikacją znalezionego w necie kodu...

0

Zlazłem coś takiego. Poczytaj, moze załapiesz o co chodzi.
http://www.p-programowanie.pl/cpp/edycja-pamieci-procesow/
http://www.chelpdesk.pun.pl/hyde-park-14.html

Poszukaj też sam. Proponuję Ci zajrzeć wpierw do bardziej ogólnych kursów. Nabierz trochę wprawy zanim siądziesz do takich rzeczy.

0

To może inaczej, potrzebuję zrobić żeby w pewnej grze klikało mi na pewnych współrzędnych na ekranie co 10 min PPM. Użyłbym taskera ale problem w tym że to musi działać w tle... Dlatego chciałem zrobić ten uchwyt okna. W jakim języku będzie to najszybciej napisać?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0