Çözüldü Fareyi yukarı aşağı yönde ters çevirme nasıl yapılır?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

VivaLaVida

Decapat
Katılım
16 Ocak 2022
Mesajlar
61
Daha fazla  
Cinsiyet
Erkek
Herkese iyi günler dilerim. Faremi yukarı aşağı yönde ters çevirmek istiyorum. Böyle alışmışım şu an oynadığım bir oyunda bu özelliği açma yok, bunu nasıl gerçekleştirebilirim? Bir program ya da Win içinde bir ayar var mıdır acaba?
 
Çözüm
Windows'un kendi desteği yok, eğer kullanmakta olduğunuz farenin de böyle bir desteği yoksa kendimizin 3.parti bir uygulama yapması gerekli.
İnternet üzerinden araştırdım fakat autohotkey dışında güvenilir bir alternatif yok.
Bu uygulamada ise ekran sonunda sıkıntı oluyor denedim kendi bilgisayarımda, ben de c++ ile basit bir kod yazdım dilerseniz siz de compile edip test edebilirsiniz.
Kod:
C++:
#include <Windows.h>
#include <iostream>
#pragma execution_character_set("utf-8")

HHOOK hook_fare;

LRESULT WINAPI fare_kontrol(int nCode, WPARAM wParam, LPARAM lParam) {
    MSLLHOOKSTRUCT* pMouseStruct = (MSLLHOOKSTRUCT*)lParam;

    if (nCode >= 0) {
        switch (wParam) {

        case WM_MOUSEMOVE: {
            POINT fareKonum;
            GetCursorPos(&fareKonum);
            int fark_X = pMouseStruct->pt.x - fareKonum.x;
            int fark_Y = pMouseStruct->pt.y - fareKonum.y;
            SetCursorPos(pMouseStruct->pt.x, pMouseStruct->pt.y - fark_Y * 2);
            return -1;
        }
        }
    }
    return CallNextHookEx(hook_fare, nCode, wParam, lParam);
}

int main() {
    SetConsoleOutputCP(65001);
    //ShowWindow(GetConsoleWindow(), SW_HIDE);
    //Eğer konsol ekranının gözükmesini istemiyorsanız // işaretini kaldırın
    hook_fare = SetWindowsHookEx(WH_MOUSE_LL, fare_kontrol, NULL, 0);
    if (!hook_fare) {
        std::cout << "Hook yüklenemedi!" << std::endl;
        system("PAUSE");
        exit(EXIT_FAILURE);
    }
    else {
        std::cout << "Hook başarılı!";
    }

    MSG msg = { 0 };

    while (msg.message != WM_QUIT) {
        if (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        Sleep(1);
        if (GetAsyncKeyState('C') & 0x8000) break;
        //Farklı tuşlarla programı sonlandırabilirsiniz, bunun için && kullanarak aynı mantıkta kombinasyon sağlamak
    }
    UnhookWindowsHookEx(hook_fare);
    return 0;
}
@coa3 hocam kusura bakamyın konuyor tekrardan canlandırıcam ama benim farem tamamen ters çalışıyor yaptığınız bu kod çok iyi güzel ama sağ ve sol taraf için olmuyor yalnızca yukarı ve aşağıyı ters çeviriyor bir düzenleme ile sağ ve soluda tersine çeviren bir kod yapar mısınız rica etsem? Gerçekten ne kadar araştırsam da düzeltemedim fareyi, dediğim gibi yaptığınız bu kod yalnızca yukarı ve aşağı için çalışıyor.
 

Technopat Haberler

Yeni konular

Yeni mesajlar

Geri
Yukarı