web-dev-qa-db-ja.com

システム全体でマウスの動き(XおよびY軸)を元に戻すにはどうすればよいですか? (7 x 64で勝利)

ショートバージョン

私はXとYのマウス軸の動きを逆にする方法を探しています。コンピュータは、Windows 7、x 64、およびLogitech SetPoint 6.32を実行しています。システムレベルの恒久的な修正をお願いします。マウスドライバの変更やレジストリの微調整など。誰もがこれを実装するための強固な方法、またはこれを変更するためのレジストリ値を見つける方法を知っていますか? SetPoint 6.32でマウスだけでなくトラックボールでも方向機能を有効にする方法については、とてもうれしく思います。

ロングバージョンなぜ私がこれを望んでいるのか理解していないようですが、私は一般的に「ただマウスを裏返して使う」と聞きます。助言。ディスレクシアは、「物事を正しく読む」だけでは解決できないものです。私は助けようとする試みを評価しますが、私は人々が理解するのに役立つかもしれないいくつかの背景を願っています

私は、マウスの動きが後退している、異常な形態の失読症のユーザーを抱えています。カーソルを左に動かしたい場合は、マウスを右に動かします。カーソルを上に動かしたい場合は、マウスを下に動かします。彼女はマウスを上下逆さまにしたままにしていたため、洗練されたクリック操作が難しく、人間工学には非常に難しく、マルチボタンマウスはまったく使い物になりません。

昔は、マウスドライバには、マウスの動きとカーソルの動きの関係を設定するために使用できる向き機能(通常はマウスの動きの向きを設定するために上にドラッグした熱気球)が含まれていました。数年前、マウスドライバは「改良」され、この機能はトラックボールに限定されていました。

UberOptions を見つけるまで、オリエンテーション機能を失った後、彼女は少し逆さまのマウスに戻った Logicool SetPoint 、すべてのポインティングデバイスのすべての機能を有効にします。これには方向機能も含まれていました。そして多くの喜びがありました。

現在彼女のマウスは死に、現在のLogitechマウスはUberOptionsが更新されていないSetPointの新しいバージョンを必要とします。また、 MAF-Mouse (64ビットWindows用のバージョンはまだUSBマウスをサポートしていないことを開発者が示しました)および Sakasa (動作している間、ウェブ上のコメントはそれがランダムに頻繁に壊れる傾向があることを示しています。これは単なる実行中のプログラムでもあるため、システム全体ではありません。).

私はいくつかの非常に洗練されたレジストリハックを見ました。たとえば、F-Lockキーが発明され、デフォルトでキーボードを締め付けたときにF1-F12キーによって作成されたコードを変更するハックを使用していました。レジストリでXとYを反転させる方法があることを願っています。それとも他の似たようなシステムレベルの微調整があります。

もう1つの解決策は、トラックボールだけでなくマウスの方向機能も再度有効にすることです。入力デバイスドライバがアクセシビリティの問題に必然的に必要とする機能を含んでいることは非常にイライラしていますが、ドライバをもっとばかげたものにするという意味で無効にされています。

26
Scivitri

オンラインで何かを見つけることができませんでした、そして、私はこれを作るのがそれほど難しくないはずであると考えたので、私は先に行き、そして自分で自分で作った。実行するには Microsoft .NET Framework 4.0 が必要です。

多項式のマウスインバータ (フリーウェア、CC-BY-NC-SAライセンスの場合) - ( Altリンク

それがあなたのためにどのようにうまくいくか私に教えてください:)


すみません、これは時間がかかりました、しかし、これは実際に逆転をするコードです:

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

私はオリジナルのコードを持っていないので、私はTelerik JustDecompileで実行可能ファイルからこれを取り出しました。完全なアプリケーションコードが必要な場合は、JDでVSプロジェクト全体を抽出できます。

18
Polynomial

マウスの動きを反転させる SakasaMouse というプログラムがあります。

SakasaMouseは、マウスカーソルの移動方向をX軸またはY軸、あるいはその両方に反転させるためのフリーウェアです。

マウスを右に動かすと、マウスポインタは左に動きます。

購入したばかりの新しいワイヤレスマウスを含むすべてのマウスに対応しています。これに関する唯一の問題は、警告なしに元に戻すことです。これは少し混乱を招く可能性があります。

10
Fred Davis

私はMAFMouseの作者ですが、x64バージョンはまだUSBマウスでは動作しません(32ビットバージョンは動作します)。私は現在これに取り組むには忙しすぎます。

それで私の提案はPS2マウスを使うことです - これはゲームのためにさえ、非常によく、そしてシステム全体で働きます。

私は以前に180度回転させたマウスを使用しなければならなかった(ユーザーを指しているケーブルで)多くのユーザーがいます、そして彼らはこのドライバーにとても満足しています。興味深いことに、1人を除いてすべてが女性です:)

Windows 7へのインストールは少し複雑です、詳細については私に連絡してください...

5
Moritz

面白いマウス反転AHKスクリプトがあります。

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

私はここからそれを得ました: https://autohotkey.com/board/topic/17828-invert-mouse-axis/

あなたの場合、マウスの内側で軸を反転させるためにいくつかの簡単なHW修正を行う可能性さえチェックします。

3
tent

私も、マウスの向きを逆にして、Intellipoint 4とPS2マウスを使ってXPで操作していました。

Win 7 PCを購入して以来、Intellipoint 4は動作しません。そのため、今ではLogitech USBマウスでSetpoint 4.8を使用しています。 uberoptionsのWebページには、サポートされているデバイスの一覧が表示されます。 2009年頃から新しいマウスの開発は行われていないようですので、もっと古いマウスを探す必要があります。 M500マウスはまだ無料で入手できます。

0
Guy Graham