Как я могу изменить движение мыши (ось X и Y) в масштабе всей системы? (Win 7 x64)

Короткая Версия

Я ищу способ обратить вспять движения осей X и Y мыши. На компьютере установлена ОС Windows 7, x64 и Logitech SetPoint 6.32. Я хотел бы системного уровня, постоянное исправление; например, модификации драйвера мыши или настройки реестра. Кто-нибудь знает надежный способ реализации этого, или как найти значения реестра, чтобы изменить это? Я с радостью соглашусь на то, как включить функцию ориентации в SetPoint 6.32 для мышей, как ну как трекболы.

Текст
люди, кажется, никогда не понимают, почему я хотел бы этого, и я обычно слышу "просто используйте мышь правой стороной вверх!" консультация. Дислексия-это не то, что можно вылечить, " просто правильно читая."Хотя я ценю попытки помочь, я надеюсь, что некоторая предыстория может помочь людям понять.

У меня есть пользователь с необычной формой дислексии, для которого движение мыши назад. Если она захочет переместите ее курсор влево, она будет перемещать мышь вправо. Если она хочет, чтобы курсор двигался вверх, она будет двигать мышь вниз. Раньше она держала мышь вверх ногами, что затрудняло сложный щелчок, было ужасно для эргономики и делало многокнопочные мыши совершенно бесполезными.

в прежние времена драйверы мыши включали функцию ориентации (обычно воздушный шар, который вы перетаскивали вверх, чтобы установить ориентацию движения мыши), которая может использоваться для установки отношения между движение мыши и движение курсора. Несколько лет назад драйверы мыши были "улучшены", и с тех пор эта функция была ограничена трекболами.

после потери функции ориентации она вернулась к перевернутой мыши на некоторое время, пока не найдет UberOptions, твик для Logitech SetPoint, что бы включить все функции для всех устройств. Это включало функцию ориентации. И было много радости.

теперь ее мышкой умерла, и нынешним мышам Logitech требуется более новая версия SetPoint, для которой UberOptions не была обновлена. Мы тоже видели MAF-Mouse (разработчик указал версию для 64-битной Windows, пока не поддерживает USB мыши) и Sakasa (пока он работает, комментарий на веб-сайте он стремится сломать случайно и часто. Это также просто работающая программа, так что не общесистемная.).

Я видел некоторые очень сложные трюки с реестром. Для например, я использовал хак, который изменял коды, созданные клавишами F1-F12, когда была изобретена клавиша F-Lock, и по умолчанию завинчивала мою клавиатуру. Я надеюсь, что есть способ перевернуть X и Y в реестре; или какой-то другой, похожий, системный уровень настройки.

другим решением может быть повторное включение функции ориентации для мышей, а также трекболов. Очень неприятно, что драйверы устройств ввода включают в себя функциональность, в которой мы отчаянно нуждаемся accessibilty озабоченность, но он был отключен во имя того, чтобы водители более идиот доказательство.

8
задан Scivitri
26.01.2023 8:45 Количество просмотров материала 3083
Распечатать страницу

5 ответов

не смог найти ничего в интернете, и я решил, что это не должно быть слишком трудно сделать, поэтому я пошел вперед и построил сам. Требуется Microsoft .NET Framework 4.0 для запуска.

инвертор мыши полинома (бесплатная, в соответствии с CC-со-НК-СА лицензия) - (Alt Link)

Дайте мне знать, как это работает для вас :)


Извините, что это заняло так много времени, но вот код, который на самом деле делает инверсия:

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, потому что у меня нет исходного кода. Вы можете извлечь весь VS проект с JD, если вам нужен полный код приложения.

18
отвечен Polynomial 2023-01-27 16:33

есть программа под названием SakasaMouse который отменяет движения мыши:

SakasaMouse является бесплатной для обратного направления движения курсора мыши по оси x и / или Y.

при перемещении мыши вправо указатель мыши перемещается влево.

Он работает для каждой мыши, включая новый беспроводной только что купил. Единственная проблема с ним заключается в том, что он может переключаться обратно без предупреждения, что может быть немного сбивает с толку.

9
отвечен Fred Davis 2023-01-27 18:50

Я автор MAFMouse и это правда, что x64 версия еще не работает с USB мышей (32-битная версия делает!). В настоящее время я слишком занят, чтобы работать над этим.

Так что мое предложение заключается в использовании мыши PS2-это работает очень хорошо и всей системы, даже для игр.

У меня есть много пользователей, которым приходилось использовать мышь, повернутую на 180 градусов раньше (с кабелем, указывающим на пользователя), и они очень довольны этим драйвером. Интересно, что все, кроме одного, женщины :)

установка в Windows 7 немного сложнее, пожалуйста, свяжитесь со мной для деталей...

5
отвечен Moritz 2023-01-27 21:07

есть интересный инвертный скрипт мыши 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 2023-01-27 23:24

Я тоже изменил ориентацию мыши, и я делал это на XP с Intellipoint 4 и мышью PS2.

с момента покупки Win 7 PC, Intellipoint 4 не будет работать на нем, и поэтому теперь я использую Setpoint 4.8 с помощью мыши Logitech USB. На веб-странице uberoptions отображается список поддерживаемых устройств. Похоже, что с 2009 года не было сделано никаких разработок для новых мышей, поэтому вам нужно найти более старую мышь. Мышь M500 по-прежнему находится в свободном доступе.

0
отвечен Guy Graham 2023-01-28 01:41

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх