![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| AGENTxXx |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 8.6.2009 Репутация: нет Всего: 1 |
Добрый день! Задача: создать глобальные горячие клавиши для моей программы, т.е. чтобы работая в другой проге и нажимая сочитание клавишь, моя прога отвечала на это (если конечно они зарезервированы). Я думаю что все это реализуется с помщью хуков (хотя очень надеюсь что это гораздо проще). Хотел бы чтобы подсказали оптимальный алгоритм по решению этой задачи. Сам это реализовать могу, но не считаю свой алгоритм минимальным (к процессору будет обращение частое). Кто ни будь может подсказать как это сделать оптимально?
|
|||
|
||||
| AGENTxXx |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 8.6.2009 Репутация: нет Всего: 1 |
Для тех, кому это интересно:
|
|||
|
||||
| WolfTheGrey |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 21.1.2009 Где: forum.vingrad.ru Репутация: нет Всего: 2 |
А эти горячие клавищи возможно реализовать в среде WPF не прибегая к интеграции с WinForms ????
|
|||
|
||||
| AGENTxXx |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 8.6.2009 Репутация: нет Всего: 1 |
Знаю что можно их использовать и в консольных приложениях. С WPF как то не сталкивался. Да и не знаю для чего это, но думаю наверное что то с глобальными сетями связанно
|
|||
|
||||
| AGENTxXx |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 8.6.2009 Репутация: нет Всего: 1 |
Ребят, может кто то сталкивался с такой проблемой: реализовал и глобальные клавиши (как видите выше код). Загвоздка в том, чтобы теперь пользователь непосредственно смог реализовать и назначить их на свой вкус. т.е. есть у меня контрол специальный, нажимаешь там нужные клавиши и он выдает например такую строку: Control, Shift + W. а код установки:
Проблема в обращении к функции RegisterHotKey. Например, я преобразовал Control, Shift + W, в "MOD_CONTROL | MOD_SHIFT", т.е как бы все выглядит нормально:
Но как видите это строка в итоге, а он конечно же будет ругаться. Преобразование в uint тоже ни чего хорошего не дает - ругается (прога просто при запуске выдает сразу же ошибку, а компилятор говорит все ОК) Так вот, вопрос: можно ли как то реализовать это меньшими силами (не писать полностью функцию обработки всяких событий - сейчас пример пирведу):
а использовать какие ни будь встроенные возможности. Например, в php и ActionScript 2.0 (кто не слышал этого - язык Flash) есть функция eval() которая дает это сделать. Есть ли в C# что либо подобное? |
||||||
|
|||||||
| Ceiceron |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 2.8.2007 Где: Дубна Репутация: нет Всего: нет |
Если контрол регистрации дает только текстовое представление, то парсить придется в любом случае.
Константы мдификаторов клавиш я б преобразовал в перечисление, тогда в конечную функцию и будет передавать проще.
контрол самодельный? если да, то его можно допилить, что бы он возвращал элементы перечисления, о котором я уже сказал, тогда парсить не придется ни чего. |
|||
|
||||
| AGENTxXx |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 8.6.2009 Репутация: нет Всего: 1 |
Контрол самодельный но не мной... он в библиотеке лежит. Так что что и как там - не знаю. А в ildasm.exe еще не умею работать, чтобы вытащить эту инфу. Фленову еще по этому поводу написал. Может он че путное скажет
|
|||
|
||||
| nmn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: 1 Всего: 1 |
RedGate Reflector Это сообщение отредактировал(а) nmn - 7.2.2010, 20:11 |
|||
|
||||
| AGENTxXx |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 8.6.2009 Репутация: нет Всего: 1 |
Спасибо! буду разбираться)))
|
|||
|
||||
| CasperSC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: нет Всего: 1 |
Ну и как, решил проблему? Мне тоже нужно с горячими клавишами разобраться. Код есть, но в WPF (незнаю с этим ли связанно) он вызывает жуткие лаги при срабатывании кода запукаемого горячей клавишей.
|
|||
|
||||
| 6atoh |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 15.9.2006 Где: Minsk Репутация: 2 Всего: 4 |
Создайте перечисление, которое будет содержать все возможные строковые значения, которые возвращает элемент управления:
Теперь вы можете можете получить значение элемента перечисления (int) по его названию:
|
||||
|
|||||
| starostin |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 28.9.2009 Где: Ярославль Репутация: нет Всего: 1 |
Объясните мне тупом, что за Dispose в дизайнере форма1.цс? Что она делать должна и почему компилятор говорит что для неё нет соответствующего переопределения?
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |