Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260

Сделать переключение Shift или CapsLock в хуке

04.12.2015, 00:46. Показов 1652. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ну вот небольшой открывок из кода!
При нажатие на Кнопку "A" ( большую записывается она в текстбокс!)

C#
1
2
3
4
5
6
private void keyUp(KeyboardHook.VKeys key)
{
if (key == KeyboardHook.VKeys.KEY_A)
{
textBox1.Text += "A";
}
Мне нужно сделать так чтобы если нажат Caps_Lock Убрать большие буквы и сделать маленькие ( типо
(чтобы можно было отловить нажатие ( Shift или CapsLock ( например если пользователь зажал Shift и нажимает клавишу то она записывала бы большими, если отпустил маленькими!

C#
1
2
3
4
if (key == KeyboardHook.VKeys.KEY_a)
{
textBox1.Text += "a";
}
Описал не очень думаю дойдет до кого нибудь!
Не судите строго, если можете предложить что нибудь пишите, мне на пользу пойдет и Вам)
P.S: Нужно отловить нажатие клавишь ( Casp_Lock) и (Shift + клавиши)
Думаю если дойдет задача не сложная, но на первый взгляд трудно досигаемая на первоначальных путях изучения хука)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.12.2015, 00:46
Ответы с готовыми решениями:

Переключение раскладки клавиатуры по кнопкам Alt и Shift
Есть работающая программа вот она uses crt; var rusChars:array of char; engChars:array of char; rusLang:boolean; ...

OpenBSD 5.8(XFCE). Как добавить русскую раскладку и переключение по ctrl+shift?
Еле установил это чудо. В UNIX новичок. Сейчас чтобы задать этот вопрос пишу в гугле английскими буквами, а он мне выдает русские. Я их...

Сделать через ListBox или ComboBox переключение 5-ти таблиц
Прошу помогите мне. Есть программа с БД MS Access состоящий из 5 таблиц со связями, мне нужно сделать через ListBox или ComboBox...

11
 Аватар для Melif
76 / 67 / 47
Регистрация: 26.03.2015
Сообщений: 205
04.12.2015, 12:02
Насчет шифта первое, что приходит в голову, это:
C#
1
2
3
4
5
6
7
 private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.А && e.Shift)
            {
                  textBox1.Text += "A";          
            }
        }
Но, видимо, это не совсем то, что вам надо?
0
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
06.12.2015, 08:34  [ТС]
нет, мне нужно что-то типо:
C#
1
2
3
4
5
if (Control.IsKeyLocked(Keys.NumLock))
{
// Но isKeyLocked не работает с шифтами :(
 
}
0
 Аватар для Melif
76 / 67 / 47
Регистрация: 26.03.2015
Сообщений: 205
06.12.2015, 20:55
вроде вот была похожая тема
Как при нажатии на кнопку на форме определить удерживаются ли какие-нибудь клавиши

там суть в том, что создается переменная, описывающая, нажат ли шифт
C#
1
2
3
4
5
6
7
8
9
private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Shift) shiftPress = true;
        }
 
        private void Form1_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Shift) shiftPress = false;
        }
И тогда уже действия с зажатым шифтом можно осуществлять, проверяя эту переменную:
C#
1
2
if (shiftPress)
//что там вам надо
Поможет?
0
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
07.12.2015, 00:44  [ТС]
Не знаю проверю спасибо что отликнулся), если есть ещё зацепки кидайте
Я что-то где-то слышал, или видел, вообще что-то типо такого:
C#
1
private bool shift = false;
Если кто нибудь знает что нибудь про это опишите будьте добры)
как оно работает

Ну я пробовал в сделать в коде уже так :
C#
1
2
3
4
(if shift = true)
{
// и тут уже свой код, но не помогло! как можно иначе сделать? 
}
0
 Аватар для Melif
76 / 67 / 47
Регистрация: 26.03.2015
Сообщений: 205
07.12.2015, 10:16
Вообще вот это
C#
1
private bool shift = false;
это объявление и инициализация переменной shift. Ваш код
C#
1
2
3
4
(if shift = true)
{
// и тут уже свой код, но не помогло! как можно иначе сделать? 
}
и не сработает, потому что значение переменной false.
Все же попробуйте сделать так, как я вчера написал и отпишите здесь, поможет или нет.
Кликните здесь для просмотра всего текста

чтоб вам было понятнее, изменил название переменной на shift и добавил ее инициализацию. Вроде бы получается примерно так же, как в вашем предыдущем сообщении. Разница только в наличии обработчика событий формы KeyDown и KeyUp, которые и передают переменной shift значение true, если шифт нажат и false, если отпущен
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
bool shift = false;
private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Shift) shift = true;
        }
 
private void Form1_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Shift) shift = false;
        }
 
if (shift==true)
     {
   //ваш код
     }
0
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
07.12.2015, 10:58  [ТС]
Не совсем так, у меня так,
C#
1
2
3
4
public void keyUp(KeyboardHook.VKeys key)
{
if (e.KeyCode == Keys.Shift) shift = false; // но за место( EventArgs e у меня Vkeys key)
}
Добавлено через 6 минут
Вообще ничего не выходит ппц( что же делать..
0
 Аватар для Melif
76 / 67 / 47
Регистрация: 26.03.2015
Сообщений: 205
07.12.2015, 11:07
А что-то вроде
C#
1
2
3
4
public void keyDown(KeyboardHook.VKeys key)
{
if (e.KeyCode == Keys.Shift) shift = true; // но за место( EventArgs e у меня Vkeys key)
}
у вас в коде прописано?

Цитата Сообщение от chaleureux Посмотреть сообщение
Вообще ничего не выходит ппц( что же делать..
что именно не выходит? Исключение или код не срабатывает?
0
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
07.12.2015, 11:27  [ТС]
вот тот самый класс http://rghost.ru/75wrJyprh
что именно не выходит? Исключение или код не срабатывает?
код не срабатывает!

Добавлено через 17 минут
Мне бы только отловить нажатие shift клавиши и всё Видимо это задача с этим классом не решаемая)
0
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
07.12.2015, 11:31  [ТС]
Вот что пишет когда использую шифт с этим классом
C#
1
2
3
4
if (Control.IsKeyLocked(Keys.Shift))
{
 textbox.text += "!";
}
и вот что получается:
Миниатюры
Сделать переключение Shift или CapsLock в хуке  
0
 Аватар для Melif
76 / 67 / 47
Регистрация: 26.03.2015
Сообщений: 205
07.12.2015, 11:35
Возможно, надо прописать отдельно "левый шифт" и "правый шифт"?
К сожалению, больше ничем помочь не смогу
0
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
07.12.2015, 22:22  [ТС]
Цитата Сообщение от Melif Посмотреть сообщение
Возможно, надо прописать отдельно "левый шифт" и "правый шифт"?
Возможно это то что нужно, но как?? )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.12.2015, 22:22
Помогаю со студенческими работами здесь

Как в Ubuntu 10.04 сменить переключение на русский/английский язык с помощью Shift+Ctrl?
Как в Ubuntu 10.04 сменить переключение на русский/английский язык с помощью Shift+Ctrl? А то я не привык с Shift+Alt...

Как отследить NumLock или CapsLock?
Как сделать, чтобы форма появлялась и "пряталась" в зависимости от состояния Num Lock. С GetKeyboardState возникли проблемы. Очень надо,...

Кто подскажет, как сделать чтобы программа при нажатии на Button1 емулировала нажатие CapsLock
Кто подскажет, как сделать чтобы программа при нажатии на Button1 емулировала нажатие СapsLock.....:declare:

Как в SendKeys прописать сочетания Alt+Shift и Shift+Enter
Как в SendKeys прописать сочетания Alt+Shift и Shift+Enter ? Может где-то можно найти полное описание всех клавиш и сочетаний ?

Клавиши shift глючат, при нажатии активируется ещё по 10 клавиш на каждый shift
Добрый день. Товарищи, прошу вас помочь, на форумах ничего не нашёл, способы в стиле переустановки драйверов и откатов системы ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru