Bagaimana saya bisa membalikkan gerakan mouse (sumbu X & Y) di seluruh sistem? (Menangkan 7 x64)

27

Versi pendek

Saya mencari cara untuk membalikkan gerakan sumbu X dan Y mouse. Komputer menjalankan Windows 7, x64 dan Logitech SetPoint 6.32. Saya ingin perbaikan permanen tingkat sistem; seperti modifikasi driver mouse atau tweak registri. Adakah yang tahu cara yang solid untuk mengimplementasikan ini, atau bagaimana menemukan nilai registri untuk mengubahnya? Saya akan puas dengan senang hati tentang cara mengaktifkan fitur orientasi di SetPoint 6.32 untuk mouse dan juga trackball.

Versi Panjang Orang-orang sepertinya tidak pernah mengerti mengapa saya menginginkan ini, dan saya biasanya mendengar "cukup gunakan mouse dengan sisi kanan ke atas!" nasihat. Disleksia bukanlah sesuatu yang dapat disembuhkan dengan "hanya membaca dengan benar." Sementara saya menghargai upaya untuk membantu, saya berharap beberapa latar belakang dapat membantu orang mengerti.

Saya memiliki pengguna dengan bentuk disleksia yang tidak biasa, untuk siapa gerakan mouse mundur. Jika dia ingin menggerakkan kursor ke kiri, dia akan menggerakkan mouse ke kanan. Jika dia ingin kursor bergerak ke atas, dia akan menggerakkan mouse ke bawah. Dia biasa memegang mouse dengan terbalik, yang membuat sulit mengklik canggih, mengerikan bagi ergonomi, dan membuat mouse multi-tombol sama sekali tidak berguna.

Di masa lalu, driver mouse menyertakan fitur orientasi (biasanya balon udara panas yang Anda seret ke atas untuk mengatur orientasi gerakan mouse) yang dapat digunakan untuk mengatur hubungan antara gerakan mouse dan gerakan kursor. Beberapa tahun yang lalu, driver mouse "ditingkatkan" dan fitur ini sejak saat itu terbatas pada trackball.

Setelah kehilangan fitur orientasi, ia kembali ke mousing terbalik sebentar, sampai menemukan UberOptions , tweak untuk Logitech SetPoint , yang akan mengaktifkan semua fitur untuk semua perangkat penunjuk. Ini termasuk fitur orientasi. Dan ada banyak sukacita.

Sekarang mouse-nya telah mati, dan mouse Logitech saat ini memerlukan versi SetPoint yang lebih baru yang UberOptions belum diperbarui. Kami juga telah melihat MAF-Mouse (pengembang menunjukkan versi untuk Windows 64-bit belum mendukung USB mouse) dan Sakasa (selagi berfungsi, komentar di web mengindikasikan cenderung rusak secara acak dan sering. Ini juga hanya program yang sedang berjalan, jadi tidak seluruh sistem.).

Saya telah melihat beberapa peretasan registri yang sangat canggih. Sebagai contoh, saya dulu menggunakan peretasan yang akan mengubah kode yang dibuat oleh tombol F1-F12 ketika tombol F-Lock ditemukan dan secara default mengacaukan keyboard saya. Saya berharap ada cara untuk membalik X dan Y dalam registri; atau lainnya, serupa, tweak tingkat sistem di luar sana.

Solusi lain dapat mengaktifkan kembali fitur orientasi untuk tikus, serta trackball. Sangat menyebalkan bahwa driver perangkat input menyertakan fungsi yang sangat kita butuhkan untuk masalah aksesibilitas, tetapi telah dinonaktifkan atas nama membuat driver lebih idiot-proof.

Scivitri
sumber
Pertanyaan saya tentang Elektronik untuk solusi perangkat keras: electronics.stackexchange.com/questions/29014/…
JYelton
1
FYI, saya sedang menjalankan versi terbaru SetPoint (walaupun menggunakan mouse yang sangat tua yang awalnya dikirim dengan versi SetPoint yang didukung oleh UberOptions secara default), dan UberOptions masih berfungsi. Anda hanya perlu mengubah folder SetPoint secara manual menjadi yang digunakan di SetPoint 6 ( setpointP). Lihat di sini . Secara pribadi, saya berharap Logitech hanya akan menyewa pengembang UberOptions. SetPoint mengerikan dan membuat keyboard / mouse mereka dekat tidak dapat digunakan tanpa uberOptions.
Lèse majesté
1
@ Lèsemajesté Saya sepenuhnya setuju untuk berharap Logitech akan menyewa dev UberOptions. Meskipun dia memiliki mouse tuanya yang berfungsi seperti yang Anda gambarkan, mouse pengganti tidak didukung oleh UberOptions. Rupanya ada SetPoint yang berbeda untuk mouse game, dan dia menjadi sangat terikat pada semua tombol tambahan karena bisa membalikkan mouse dan meraihnya.
Scivitri

Jawaban:

18

Tidak dapat menemukan apa pun secara online, dan saya pikir ini seharusnya tidak terlalu sulit untuk dibuat, jadi saya melanjutkan dan membuat sendiri. Memerlukan Microsoft .NET Framework 4.0 untuk dapat berjalan.

Polynomial's Mouse Inverter (freeware, di bawah lisensi CC-BY-NC-SA) - ( Alt Link )

Biarkan saya tahu cara kerjanya untuk Anda :)


Maaf ini butuh waktu lama, tapi ini kode yang benar-benar melakukan inversi:

internal class Inverter
{
    private Point pos = Cursor.Position;

    private bool invertX;

    private bool invertY;

    private bool running;

    private bool exit;

    public bool InvertX
    {
        get
        {
            return this.invertX;
        }
        set
        {
            this.invertX = value;
            if (this.InvertSettingsChanged != null)
            {
                this.InvertSettingsChanged(this, new EventArgs());
            }
        }
    }

    public bool InvertY
    {
        get
        {
            return this.invertY;
        }
        set
        {
            this.invertY = value;
            if (this.InvertSettingsChanged != null)
            {
                this.InvertSettingsChanged(this, new EventArgs());
            }
        }
    }

    public bool Running
    {
        get
        {
            return this.running;
        }
    }

    public Inverter(bool x, bool y)
    {
        this.invertX = x;
        this.invertY = y;
        this.pos = Cursor.Position;
    }

    private void MouseLoop()
    {
        Thread.CurrentThread.IsBackground = true;
        Thread.CurrentThread.Priority = ThreadPriority.Highest;
        while (!this.exit)
        {
            Point position = Cursor.Position;
            int right = (this.invertX ? this.pos.X - (position.X - this.pos.X) : position.X);
            if (this.invertX)
            {
                if (right < 2)
                {
                    right = 2;
                }
                if (right > Screen.FromPoint(position).Bounds.Right - 2)
                {
                    Rectangle bounds = Screen.FromPoint(position).Bounds;
                    right = bounds.Right - 2;
                }
            }
            int bottom = (this.invertY ? this.pos.Y - (position.Y - this.pos.Y) : position.Y);
            if (this.invertY)
            {
                if (bottom < 2)
                {
                    bottom = 2;
                }
                if (bottom > Screen.FromPoint(position).Bounds.Bottom - 2)
                {
                    Rectangle rectangle = Screen.FromPoint(position).Bounds;
                    bottom = rectangle.Bottom - 2;
                }
            }
            Cursor.Position = new Point(right, bottom);
            this.pos = Cursor.Position;
            Thread.Sleep(1);
        }
        this.exit = false;
    }

    public void Start()
    {
        this.pos = Cursor.Position;
        this.running = true;
        (new Thread(new ThreadStart(this.MouseLoop))).Start();
    }

    public void Stop()
    {
        this.running = false;
        this.exit = true;
    }

    public event EventHandler InvertSettingsChanged;
}

Saya baru saja mengeluarkan ini dari executable dengan Telerik JustDecompile, karena saya tidak memiliki kode asli. Anda dapat mengekstrak seluruh proyek VS dengan JD jika Anda memerlukan kode aplikasi lengkap.

Polinomial
sumber
1
Terima kasih! Itu jauh lebih banyak upaya daripada yang saya harapkan! Kami akan mengujinya, dan melihat cara kerjanya untuknya.
Scivitri
Tidak masalah. Sebenarnya tidak begitu sulit untuk dibuat. Setelah saya membersihkannya sedikit dan menambahkan beberapa fitur tambahan, saya akan merilisnya sebagai open source.
Polinomial
Apakah ada kemungkinan Anda merilis kode dalam waktu dekat? Atau, bisakah Anda mengirimkannya kepada saya? :)
Dirk
Cukup gali hard disk lama saya, tetapi sepertinya kode ini hilang :( Jika saya punya waktu, saya akan balik-balikkannya dari executable.
Polynomial
1
Kode inti @remyabel ditambahkan. Istirahat dapat ditarik dengan JustDecompile jika Anda membutuhkannya.
Polinomial
10

Ada sebuah program bernama SakasaMouse yang membalikkan gerakan mouse:

SakasaMouse adalah freeware untuk membalikkan arah pergerakan kursor mouse dalam sumbu x dan / atau sumbu y.

Jika Anda menggerakkan mouse ke kanan, penunjuk mouse bergerak ke kiri.

Ini berfungsi untuk setiap mouse termasuk nirkabel baru yang baru saja dibeli. Satu-satunya masalah dengan itu adalah bahwa itu mungkin untuk beralih kembali tanpa peringatan, yang bisa sedikit membingungkan.

Fred Davis
sumber
Setelah masuk kembali ke komputer yang terkunci, kursor mouse tidak terlihat. Agak sulit menavigasi ke baki tugas untuk menutup aplikasi. Windows 8.1
user3071284
5

Saya penulis MAFMouse dan memang benar bahwa versi x64 belum berfungsi dengan mouse USB (versi 32 bit!). Saya saat ini terlalu sibuk untuk mengerjakan ini.

Jadi saran saya adalah menggunakan mouse PS2 - ini bekerja dengan sangat baik dan untuk seluruh sistem, bahkan untuk game.

Saya memiliki banyak pengguna yang harus menggunakan mouse yang diputar 180 derajat sebelumnya (dengan kabel mengarah ke pengguna) dan mereka sangat senang dengan driver ini. Menariknya semua kecuali satu adalah wanita :)

Instalasi di Windows 7 agak rumit, silakan hubungi saya untuk detail ...

Moritz
sumber
Jika tidak terlalu merepotkan, ini akan membuat jawaban ini lebih berguna bagi pengguna lain jika Anda dapat memposting instruksi atau tautan kepada mereka untuk menginstalnya pada Windows 7.
Lèse majesté
1
Karena saya tidak menawarkan versi beta ini untuk unduhan publik, instruksi pemasangan saja tidak akan membantu :) Ini rumit, jadi membuat instruksi itu akan menjadi pekerjaan dan saya pertama-tama ingin menyelesaikan driver. Jika Anda ingin membantu dengan petunjuknya, silakan!
Moritz
1
@Moritz Terima kasih telah datang ke SE, dan bergabung dengan diskusi! Sayangnya, saya tidak berpikir motherboardnya bahkan memiliki port PS2, lagi. Mereka agak usang. Dia juga agak melekat pada tombol-ful mouse, yang cenderung hanya USB.
Scivitri
bagaimana mereka mengklik tombol dengan posisi itu?
phuclv
Pembaruan penting: Saya penulis MAFMouse dan batasan untuk 32 bit sekarang hilang. x64 didukung dan drivernya ditandatangani sekarang, jadi instalasi jauh lebih mudah. Ini tersedia berdasarkan permintaan (saat ini tidak ada unduhan) dan bekerja sangat baik dan di seluruh sistem, bahkan untuk game (yaitu inversi sumbu Y yang umum). -Moritz
maf-soft
3

Ada skrip AHK mouse terbalik yang menarik:

BlockInput Mouse
SetMouseDelay -1

MouseGetPos x0, y0
SetTimer WatchMouse, 1
Return

WatchMouse:
   MouseGetPos x, y
   MouseMove 2*(x0-x), 2*(y0-y), 0, R
   MouseGetPos x0, y0
Return

!z::ExitApp

Saya mendapatkannya dari sini: https://autohotkey.com/board/topic/17828-invert-mouse-axis/

Dalam kasus Anda, saya bahkan akan memeriksa kemungkinan melakukan beberapa modifikasi HW cepat untuk membalikkan sumbu di dalam mouse ..

tenda
sumber
0

Saya juga memiliki orientasi mouse saya terbalik dan saya terbiasa melakukannya di XP dengan Intellipoint 4 dan mouse PS2.

Sejak membeli PC Win 7, Intellipoint 4 tidak akan berjalan di atasnya, jadi saya sekarang menggunakan Setpoint 4.8 dengan mouse USB Logitech. Pada halaman web uberoptions, ia memberi Anda daftar perangkat yang didukung. Tampaknya tidak ada pengembangan yang telah dilakukan sejak sekitar 2009 untuk tikus baru, jadi Anda harus menemukan mouse yang lebih tua. Mouse M500 masih tersedia secara bebas.

Guy Graham
sumber