Sistem genelinde fare hareketini (X ve Y ekseni) nasıl tersine çevirebilirim? (Win 7 x64)


27

Kısa versiyon

X ve Y fare ekseni hareketlerini tersine çevirmenin bir yolunu arıyorum. Bilgisayarda Windows 7, x64 ve Logitech SetPoint 6.32 çalışıyor. Sistem düzeyinde, kalıcı bir düzeltme istiyorum; fare sürücüsü değişikliği veya kayıt defteri ayar düğmesi gibi. Bunu uygulamanın sağlam bir yolunu veya bunu değiştirmek için kayıt defteri değerlerini nasıl bulacağınızı bilen var mı? SetPoint 6.32'deki oryantasyon özelliğini farelerin yanı sıra iztopları için nasıl etkinleştireceğimi çok mutlu edeceğim.

Uzun Süreli İnsanlar bunu neden istediğimi asla anlamıyor gibi görünüyor ve genelde "sadece fareyi sağ tarafını kullan!" tavsiye. Disleksi, "sadece bir şeyleri doğru okumak" ile tedavi edilebilecek bir şey değildir. Yardım etme çabalarını takdir ederken, bazı geçmişlerin insanların anlamalarına yardımcı olabileceğini umuyorum.

Fare hareketleri geriye doğru olan alışılmadık bir disleksi formunda bir kullanıcım var. İmlecini sola hareket ettirmek istiyorsa, fareyi sağa hareket ettirir. İmlecin yukarı hareket etmesini istiyorsa, fareyi aşağı hareket ettirir. Faresini baş aşağı tutuyordu, sofistike tıklamayı zorlaştırıyor, ergonomi için korkunç ve çok düğmeli fareleri tamamen işe yaramaz hale getiriyor.

Eski zamanlarda, fare sürücüleri, fare hareketi ve imleç hareketi arasındaki ilişkiyi ayarlamak için kullanılabilecek bir yönlendirme özelliği (tipik olarak fare hareketi yönünü ayarlamak için yukarı doğru sürüklediğiniz bir sıcak hava balonu) içeriyordu. Birkaç yıl önce, fare sürücüleri "geliştirildi" ve bu özellik o zamandan beri iztoplarıyla sınırlı kaldı.

Oryantasyon özelliğini kaybettikten sonra , tüm işaretleme aygıtları için tüm özellikleri mümkün kılacak olan Logitech SetPoint için bir ayar olan UberOptions'ı bulana kadar bir süre daha geriye kaynayan bir fare tutmaya başladı . Bu oryantasyon özelliğini içeriyordu. Ve çok sevindirici oldu.

Şimdi faresi öldü ve mevcut Logitech fareleri, UberOptions'ın güncellenmediği daha yeni bir SetPoint sürümü gerektiriyor. MAF-Mouse'u (geliştirici 64-bit Windows sürümünün henüz USB fareyi desteklemediğini belirtti.) Ve Sakasa'yı (çalışır halde iken, web'deki yorumların rastgele ve sık sık kırılma eğiliminde olduğunu gösteriyor ) gördük . çalışan bir program, bu nedenle sistem genelinde değil.).

Çok karmaşık kayıt defteri hackleri gördüm. Örneğin, F-Lock tuşu icat edildiğinde ve klavyemi bozmak için varsayılan olarak F1-F12 tuşları tarafından yaratılan kodları değiştiren bir keser kullanırdım. X ve Y'yi kayıt defterinde çevirmenin bir yolu olduğunu umuyorum; ya da başka, benzer, sistem düzeyinde çimdik.

Başka bir çözüm, farelerin yanı sıra hareket toplarının oryantasyon özelliğini yeniden etkinleştirmek olabilir. Giriş aygıtı sürücülerinin erişilebilirlik endişesi için umutsuzca ihtiyaç duyduğumuz işlevleri içermesi çok sinir bozucu, ancak sürücüleri daha aptal hale getirme adına devre dışı bırakıldı.


Donanım fikirli bir çözüm için Elektronik konusundaki
bağladığım

1
Bilginize, SetPoint'in son sürümünü kullanıyorum (başlangıçta UberOptions'ın varsayılan olarak desteklediği SetPoint sürümüyle birlikte gönderilen çok eski bir fare kullanıyor olsanız da) ve UberOptions hala çalışıyor. SetPoint klasörünü SetPoint 6 ( setpointP) 'da kullanılan klasöre el ile değiştirmeniz yeterlidir . Buraya bakınız . Şahsen, Logitech'in UberOptions geliştiricisini / şirketlerini zaten işe almasını diliyorum. SetPoint iğrenç ve klavyelerini / farelerini uberOptions olmadan kullanılamaz hale getiriyor.
Majesteleri

1
@ Lèsemajesté Logitech'in UberOptions dev (ler) ini işe almasını dileyerek tamamen katılıyorum. Eski faresini tarif ettiğiniz şekilde çalıştırmasına rağmen, yedek fare UberOptions tarafından desteklenmiyor. Görünüşe göre oyun fareleri için bambaşka bir SetPoint var ve faresini çevirip onlara ulaşabildiğinden beri tüm diğer düğmelere oldukça bağlı hale geldi.
Scivitri

Yanıtlar:


18

İnternette bir şey bulamadım ve bunun zor bir şey olmadığını düşünmüştüm, bu yüzden devam edip kendim yaptım. Çalıştırmak için Microsoft .NET Framework 4.0 gerektirir .

Polynomial's Mouse Inverter (ücretsiz, CC-BY-NC-SA lisansı altında) - ( Alt Link )

Sizin için nasıl çalıştığını bana bildirin :)


Maalesef bu çok uzun sürdü, ancak işte aslında inversiyonu yapan kod:

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;
}

Ben sadece Telerik JustDecompile ile çalıştırılabilir dosyadan çıkardım, çünkü orijinal kodum yok. Tam uygulama koduna ihtiyacınız varsa, bütün bir VS projesini JD ile çıkarabilirsiniz.


1
Teşekkür ederim! Beklediğimden çok daha fazla çaba oldu! Test edeceğiz ve onun için nasıl çalıştığını göreceğiz.
Scivitri

Sorun değil. Yaratması gerçekten zor değildi. Biraz temizledikten ve birkaç ekstra özellik ekledikten sonra, açık kaynak olarak yayınlayacağım.
Polinom

Yakında kodu serbest bırakma şansın var mı? Ya da bana mail atabilir misin? :)
Dirk

Sadece benim eski sabit disk aracılığıyla kazdık ama bu kod kayboldu görünüyor :( Zamanım alırsam, ters mühendislik edeceğiz geri yürütülebilir.
Polinom

1
@ remyabel Çekirdek kodu eklendi. Gerektiğinde istirahat JustDecompile ile dışarı çekilebilir.
Polynomial

10

Fare hareketlerini tersine çeviren SakasaMouse adlı bir program var :

SakasaMouse, fare imleci hareketinin yönünü x ekseni ve / veya y ekseni olarak tersine çeviren ücretsiz bir yazılımdır.

Fareyi sağa hareket ettirirseniz, fare işaretçisi sola hareket eder.

Yeni satın alınan yeni bir kablosuz dahil olmak üzere her fare için çalışır. Bununla ilgili tek sorun, biraz rahatsız edici olabilen, herhangi bir uyarı olmadan geri dönme yükümlülüğüdür.


Kilitlenmiş bir bilgisayara geri giriş yaptıktan sonra, fare imleci görünmezdi. Uygulamayı kapatmak için görev tepsisine gitmek biraz zordu. Windows 8.1
user3071284 4:15

5

Ben MAFMouse'un yazarıyım ve x64 sürümünün henüz USB farelerle çalışmadığı doğru (32 bit sürüm!). Şu anda bu konuda çalışmak için çok meşgulüm.

Bu yüzden benim önerim bir PS2 fare kullanmak - bu oyunlar için bile çok iyi ve sistem çapında çalışıyor.

Fareyi daha önce 180 derece döndürülmüş olan (kabloyu kullanıcıya işaret edecek şekilde) kullanmak zorunda olan çok sayıda kullanıcım var ve bu sürücüden çok memnunlar. İlginçtir ki, biri hariç hepsi kadındır :)

Windows 7'ye kurulum biraz karışık, detaylar için lütfen benimle iletişime geçin ...


Zahmet olmazsa Windows 7 üzerine yüklemek için onlara talimat ya da bir bağlantı sonrası eğer, bu cevap daha faydalı diğer kullanıcılar için yapacak
Lese majesté

1
Herkese açık indirme için bu beta sürümünü önermediğim için, kurulum talimatları tek başına yardımcı olmaz :) Bu karmaşıktır, bu yüzden bu talimatları oluşturmak biraz işe yarayacak ve önce sürücüyü bitirmek istiyorum. Talimatlara yardımcı olmak istiyorsanız, bir şey değil!
Moritz,

1
@Moritz SE'ye geldiğiniz ve tartışmaya katıldığınız için teşekkür ederiz! Ne yazık ki, ana kartında artık bir PS2 portu bile yok. Çok eskiler. Aynı zamanda, sadece USB olma eğiliminde olan daha fazla fareye bağlı farelere de bağlı.
Scivitri

Bu pozisyondaki butonlara nasıl tıklayabilirler?
phuclv

Önemli güncelleme: MAFMouse'un yazarıyım ve 32 bitlik kısıtlama artık ortadan kalktı. x64 destekleniyor ve sürücü şimdi imzalandı, bu nedenle yükleme işlemi çok daha kolay. İstek üzerine temin edilebilir (şu anda indirilmemektedir) ve oyunlar için bile çok iyi ve sistem çapında çalışıyor (yani ortak Y ekseni inversiyonu). -Moritz
maf-soft

3

İlginç bir ters fare AHK komut dosyası var:

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

Buradan aldım: https://autohotkey.com/board/topic/17828-invert-mouse-axis/

Senin durumunda bile farenin içindeki ekseni ters çevirmek için hızlı bir HW modifikasyonu yapma ihtimalini bile kontrol ederdim.


0

Ben de fare yönümü tersine çevirdim ve bunu Intellipoint 4 ve bir PS2 fare ile XP'de yaptım.

Win 7 PC satın aldığından beri Intellipoint 4 çalışmayacak ve şimdi Setpoint 4.8'i Logitech USB fare ile kullanıyorum. Uuberoptions web sayfasında, size desteklenen cihazların bir listesini verir. Yeni fareler için 2009'dan bu yana herhangi bir gelişme olmadığı anlaşılıyor, bu nedenle daha eski bir fare bulmanız gerekiyor. M500 fare hala özgürce kullanılabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.