Как вызвать метод onmousedown для Windows, используя C # - PullRequest
0 голосов
/ 11 февраля 2012

Мне нужно выполнить действие, выполненное с помощью левой кнопки мыши, когда я нажимаю W, например:

Я хочу переместить cruse в папку и затем нажать w, чтобы открыть папку

Я хочу переместить круиз в файл, нажать w, перетащить его и отпустить, когда я отпущу w

Я попытался использовать windowsFrom и выполнить onKeyPress(), и он вызывает onMouseDown(), но, конечно, это означает, что функция onMouseDown() будет вызываться внутри формы, и мне нужно поведение системы ,,,, я Я использую Windows 7 64 на VS2010, но я хотел бы, если это что-то глобальное для всех окон

Большое спасибо за помощь ,,,

Ответы [ 2 ]

2 голосов
/ 11 февраля 2012

Первый шаг, который вам понадобится для захвата событий Key Down во внешнем приложении, - это определение глобальной горячей клавиши:

Я рекомендую проверить некоторые ответы на этот вопрос для глобальной горячей клавиши: Лучший способ справиться с глобальной обработкой горячих клавиш в c #? или в этой статье CodeProject: Простая глобальная низкоуровневая клавиатура C # Hook

Тогда, как сказал М. Бабкок,необходимо отправить события мыши вниз.Ссылка, которую он предоставил в комментарии, является хорошей.Я повторяю это здесь для полноты.

Как смоделировать щелчок мыши в C #?

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

Он скрывает SendInput, но абстрагирует от всех вызовов PInvoke и других сложностей.

InputSimulator.SimulateKeyDown(VirtualKeyCode.CTRL);
InputSimulator.SimulateKeyPress(VirtualKeyCode.KEYS_V);
InputSimulator.SimulateKeyUp(VirtualKeyCode.CTRL);

или

InputSimulator.SimulateModifiedKeyStroke(VirtualKeyCode.CONTROL, VirtualKeyCode.VK_C); 
0 голосов
/ 11 февраля 2012

Используйте логический флаг для щелчка, и установите его на обоих, нажимая или нажимая вашу горячую клавишу.Например, этот флаг должен быть объявлен внутри формы, а события KeyDown и MouseDown устанавливают его значение true, а KeyUp и MouseUp устанавливают значение false.Для всех ваших действий теперь вы используете этот флаг для проверки клика.(Не уверен, что это будет работать в приложении Windows, в XNA это работает нормально).Для использования вне класса, просто установите этот флаг как открытое свойство.

...