Nakierowywanie myszki na odpowiednie punkty na ekranie

0

Witam,
Piszę program który znajduje punkty określonego koloru na ekranie i nakierowuje na nie kursor. Generalnie wszystko działa jak powinno w zwykłych aplikacjach, takich jak przeglądarki internetowe, edytory tekstu itp. Problem pojawia się w grach FPC (wykorzystujących widok z pierwszej osoby), w których kursor jest zazwyczaj zablokowany na środku ekranu, a ruch myszką powoduje obrócenie się postaci. W takim wypadku chcę, żeby postać obróciła się tak, żeby punkt znalazł się w centrum ekranu (coś jak aimboty w strzelankach - nakierowywanie celownika na przeciwnika). Jak tego dokonać? Próbowałem wszystkiego co mi wpadło do głowy - Cursor.Position, SetCursorPos(...), SendInput, mouseevent, przy czym tylko ta ostatnia funkcja robi cokolwiek (reszta zupełnie nic), tzn. porusza myszkę, ale zupełnie nie tak jak powinna. Nie mam już pomysłów jak rozwiązać ten problem :/ Mój obecny kod:

        public static void MoveTo(float x, float y)
        {
            float min = 0;
            float max = UInt16.MaxValue;

            int mappedX = (int)Remap(x, 0.0f, Screen.PrimaryScreen.Bounds.Width, min, max);
            int mappedY = (int)Remap(y, 0.0f, Screen.PrimaryScreen.Bounds.Height, min, max);

            mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, mappedX, mappedY, 0, 0);
        }

        public static float Remap(float value, float from1, float to1, float from2, float to2)
        {
            return (value - from1) / (to1 - from1) * (to2 - from2) + from2;
        }

Proszę o pomoc.

0

Okazało się, że gra używa Raw Input i trzeba było wyłączyć tą opcję w ustawieniach. Chciałbym jednak, żeby program działał nawet kiedy Raw Input jest włączone. Jak to zrobić?

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