Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проверка нажатия клавиши, как 
V
    Опции темы
maxutov
Дата 21.12.2007, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 7.5.2006
Где: Люберцы

Репутация: нет
Всего: нет



Здравствуйте, как проверить нажата ли в данный момент 
например клавиша enter
спасибо
PM MAIL WWW   Вверх
QryStaL
Дата 21.12.2007, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



У класса Control есть 3 события: KeyDown, KeyPress и KeyUp

Соответственно, добавляешь обработчики на эти события и реализуешь логику, которая тебе нужна...


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
maxutov
Дата 21.12.2007, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 7.5.2006
Где: Люберцы

Репутация: нет
Всего: нет



Цитата(QryStaL @ 21.12.2007,  15:29)
У класса Control есть 3 события: KeyDown, KeyPress и KeyUp

Соответственно, добавляешь обработчики на эти события и реализуешь логику, которая тебе нужна...

а если приложение консольное?
PM MAIL WWW   Вверх
QryStaL
Дата 21.12.2007, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



Код

        public static void Main()
        {
            while (true)
            {
                ConsoleKeyInfo cki = Console.ReadKey(true);
                if (cki.Key != ConsoleKey.Backspace)
                {
                    Console.WriteLine(cki.KeyChar);
                }
            }
        }



--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
maxutov
Дата 21.12.2007, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 7.5.2006
Где: Люберцы

Репутация: нет
Всего: нет



точно спасибо
PM MAIL WWW   Вверх
Dblma
Дата 9.3.2008, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 6.11.2007
Где: Moscow

Репутация: нет
Всего: 1



А вот если ситуация такая:
При запуске приложения (запускается без формы и консоли) надо проверять нажата ли клавиша (например, CTRL). Можно ли это как-нибудь узнать? ( на System.Windows.Forms даже референс не указан).
Заранее спасибо.

Это сообщение отредактировал(а) Dblma - 9.3.2008, 15:46
PM MAIL ICQ   Вверх
QryStaL
Дата 9.3.2008, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



запускается без формы и консоли

это как?


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
zaver
Дата 10.3.2008, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 15.8.2005

Репутация: нет
Всего: 3



Цитата(QryStaL @ 9.3.2008,  17:42)
запускается без формы и консоли

это как?

довольно просто-это значит без консоли и без формыsmile)).
например можно написать такое приложение:
Код

        public static void Main(string[] args)
        {
            
        }

с параметрами компиляции оконного приложения и получишь такое приложение.
можно добавить бесконечный цикл и приложение будет висеть в памяти и например что-то делать.

Если надо делать перехват любой клавиши (называется global hook), то можно воспользоваться этим классом (смотри прикреплено), он позволяет перехватывать все! и блокировать (кроме Ctrl+Alt+Del). Для использования в WPF приложениях надо отключить фукнцию VS process hosting.

Присоединённый файл ( Кол-во скачиваний: 92 )
Присоединённый файл  globalhook_demo.zip 5,58 Kb
PM MAIL WWW ICQ Skype YIM MSN   Вверх
Dblma
Дата 11.3.2008, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 6.11.2007
Где: Moscow

Репутация: нет
Всего: 1



Спасибо огромное - гляну!

Добавлено через 8 минут и 45 секунд
Цитата(zaver @ 10.3.2008,  22:37)
Если надо делать перехват любой клавиши (называется global hook), то можно воспользоваться этим классом (смотри прикреплено), он позволяет перехватывать все! и блокировать (кроме Ctrl+Alt+Del). Для использования в WPF приложениях надо отключить фукнцию VS process hosting.

А в прикрепленном файле только скомпилированный проект. А исходников класса хука нету, случаем? 
Заранее спасибо.
PM MAIL ICQ   Вверх
zaver
Дата 13.3.2008, 13:35 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 15.8.2005

Репутация: нет
Всего: 3



вот тебе

Присоединённый файл ( Кол-во скачиваний: 145 )
Присоединённый файл  globalhook_src.zip 12,43 Kb
PM MAIL WWW ICQ Skype YIM MSN   Вверх
Dblma
Дата 13.3.2008, 15:39 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 6.11.2007
Где: Moscow

Репутация: нет
Всего: 1



Цитата(zaver @ 13.3.2008,  13:35)
вот тебе

Спасибо огромное, будем изучать.
PM MAIL ICQ   Вверх
nettitan
Дата 15.3.2008, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 9.6.2006
Где: г. Хмельницкий

Репутация: нет
Всего: нет



Работает, проверенно !!!  smile 
PM MAIL WWW ICQ Skype   Вверх
Sin9ikat
Дата 18.3.2008, 20:54 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 18.3.2008

Репутация: нет
Всего: нет



А вот такую вещь не поскажите? Вот короче по одной книжке собрал программу, которая показывает какую букву я нажал на клавиатуре или какое сочетание, например Sift+A (прикреплена програмка). Но показывает она только латинские буквы. А мне нужно, чтобы она показывала код цифровой нажатой кнопки. Например я нажимаю букву G, а програмка пишет 47. и еще нужно чтоб она так же сочетания обробатывала. Например А0+59 (Left SHIFT + Y). 

Присоединённый файл ( Кол-во скачиваний: 70 )
Присоединённый файл  Key.rar 15,71 Kb
PM MAIL   Вверх
FreeParrot
Дата 15.12.2008, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 28.11.2008

Репутация: нет
Всего: нет



Здраствуйте, у меня такая проблема:
В Windows Forms встроен WPF контрол . мне необходимо отслеживать, нажата ли клавиша shift, когда фокус находится у элементов wpf контрола. Помогите пожалуйста, как это отследить ?

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1122 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.