Çö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;
}
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;
}
 
Çö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;
}
hocam valla neden zahmet ettiniz ya. çok teşekkür ederim hakkınız helal edin zahmet vermişiz size. pek çok ufak bi sorum olacak bunu nasıl çalıştıracağım .bat ile mi diyelim çalıştırdım nasıl geri eski haline çevireceğim aceba

Arama çubuğuna işaretçi seçenekleri yazın orada ters çevir seçeneği olacak.
maalesef hocam öyle bişey yok. En azından win11 de yok.
 
hocam valla neden zahmet ettiniz ya. çok teşekkür ederim hakkınız helal edin zahmet vermişiz size. pek çok ufak bi sorum olacak bunu nasıl çalıştıracağım .bat ile mi diyelim çalıştırdım nasıl geri eski haline çevireceğim aceba


maalesef hocam öyle bişey yok. En azından win11 de yok.
Ne demek her zaman.
Evet Windows'ta gelmedi zaten o özellik hiç bir zaman sadece tuş değişimi var.
Kodun kullanımına gelirsek Visual Studio üzerinde derleyebilirsin, maalesef sana buradan iletişim verip atmayı denersem Technopat moderatörleri uyarı atıyor. Anlayışınız için teşekkür ederim.
 
İlk olarak kötü haber. Windows 11, farenin kaydırma yönünü değiştirmek için yerleşik bir seçenek sunmamaktadır. (Diyenin yalancısıyım)

Kayıt defterinden değiştirilebiliyor imiş (Diyenin yalancısıyım)
allah allah nasıl oluyor aceba

Ne demek her zaman.
Evet Windows'ta gelmedi zaten o özellik hiç bir zaman sadece tuş değişimi var.
Kodun kullanımına gelirsek Visual Studio üzerinde derleyebilirsin, maalesef sana buradan iletişim verip atmayı denersem Technopat moderatörleri uyarı atıyor. Anlayışınız için teşekkür ederim.
hocam emekleriniz için teşekkür ederim ama beceremedim ya. Visuali indirdim çalıştıramadım.
 
İndireceğiniz Visual Studio 2022, seçeceğiniz paket ise şu:
1712523662569.png

Bunu indirip sisteme yüklendikten sonra Başlata Visual Studio yazıp açın ve yeni proje olarak devam edin.
Hesap vs isterse girebilirsiniz Community versiyonu tamamen ücretsiz.
1712523735797.png

Bu şekilde Konsol Projesi olarak seçip devam edin.
1712523760768.png

Uygulama ismini girin.
1712523783486.png

Açılan ilk yere attığım kodu yapıştırın.
1712523810360.png

Yukarıdan Release x64 olarak ayarlayın.
Sonrasında Derle kısmından Çözümü Derle diyebilirsiniz.
Program şu anda hazır dosya konumunu görmek için:
1712523878016.png

Klasörü Dosya Gezgini'nde Aç seçeneğini seçin.
1712523922935.png

Bir üst klasöre gelin ve sonrasında x64->Release kısmını takip edin .exe dosyası karşınızda olacaktır.


Oku burayı Reg de düzenleme basit bir işlem
Regedit yazısını oku ama.
Bu scroll işlemi için sadece kaydırma yani, mouse move hareketini değiştiremezsin regedit ile
 

Geri
Yukarı