МИР ВАШЕМУ ДОМУ!!!
57 / 58 / 7
Регистрация: 01.04.2009
Сообщений: 890
Записей в блоге: 1

Как отключить определенную клавишу(например, Tab) в приложении.

12.05.2010, 08:34. Показов 8422. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте друзья.

Стала задачи отключить клавишу "Tab", как это сделать.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.05.2010, 08:34
Ответы с готовыми решениями:

Как отключить отдельную клавишу?
Нужно отключить клавишу Alt (обе). Это возможно? Желательно без установки программ. Я очень плохо разбираюсь в компьютерах, в яндексе не...

Как отключить клавишу Alt?
Не подскажете, как отключить кнопочку Alt на клавиатури в win 7 от всех её, так нужных пользователю, функций. Вопрос на подобных форумах я...

как отключить клавишу left Alt
Незнаю как стало такое,но при нажатии левого альта комп переходит в спящий режим!Пробывал ставить дрова на клаву,откл. клавишу многими...

4
137 / 133 / 20
Регистрация: 03.02.2009
Сообщений: 608
12.05.2010, 08:57
A_R_S, отключить где? вообще в винде? или на каком то контроле?
1
МИР ВАШЕМУ ДОМУ!!!
57 / 58 / 7
Регистрация: 01.04.2009
Сообщений: 890
Записей в блоге: 1
12.05.2010, 12:10  [ТС]
Вроде нашел.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
using System;
using System.Diagnostics;
using System.Security.Principal;
using System.Runtime.InteropServices;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
[StructLayout(LayoutKind.Sequential)]
private struct KBDLLHOOKSTRUCT
{
public Keys key;
public int scanCode;
public int flags;
public int time;
public IntPtr extra;
}
 
private delegate IntPtr LowLevelKeyboardProc(int nCode, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr SetWindowsHookEx(int id, LowLevelKeyboardProc callback, IntPtr hMod, uint dwThreadId);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern bool UnhookWindowsHookEx(IntPtr hook);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr CallNextHookEx(IntPtr hook, int nCode, IntPtr wp, IntPtr lp);
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr GetModuleHandle(string name);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern short GetAsyncKeyState(Keys key);
 
private IntPtr ptrHook;
private LowLevelKeyboardProc objKeyboardProcess; 
 
private IntPtr captureKey(int nCode, IntPtr wp, IntPtr lp)
{
if (nCode >= 0)
{
KBDLLHOOKSTRUCT objKeyInfo = (KBDLLHOOKSTRUCT)Marshal.PtrToStructure(lp, typeof(KBDLLHOOKSTRUCT));
if (objKeyInfo.key == Keys.PrintScreen) // перехватываем
{
MessageBox.Show("Запрет");
if (Clipboard.ContainsImage())
{
Clipboard.Clear();
}
return (IntPtr)1;
}
}
return CallNextHookEx(ptrHook, nCode, wp, lp);
}
 
protected override void Dispose(bool disposing)
{
if (ptrHook != IntPtr.Zero)
{
UnhookWindowsHookEx(ptrHook);
ptrHook = IntPtr.Zero;
}
base.Dispose(disposing);
}
 
public Form1()
{
ProcessModule objCurrentModule = Process.GetCurrentProcess().MainModule; 
objKeyboardProcess = new LowLevelKeyboardProc(captureKey);
ptrHook = SetWindowsHookEx(13, objKeyboardProcess, GetModuleHandle(objCurrentModule.ModuleName), 0);
 
//InitializeComponent();
}
 
private void Form1_Load(object sender, System.EventArgs e)
{
}
}
}
Добавлено через 1 минуту
Цитата Сообщение от virus_system Посмотреть сообщение
A_R_S, отключить где? вообще в винде? или на каком то контроле?
Програмно, в моем приложении.

Добавлено через 3 часа 11 минут
У кого какие идеи.
0
118 / 119 / 20
Регистрация: 21.01.2010
Сообщений: 252
13.05.2010, 04:42
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
    public partial class Form1 : Form
    {
        protected override bool ProcessDialogKey(Keys keyData)
        {
            switch (keyData)
            {
                case Keys.Tab:
                    return true;
                default:
                    return base.ProcessDialogKey(keyData);
            }
        }
    }
Попробуй, но в гоогле есть еще варианты.
1
МИР ВАШЕМУ ДОМУ!!!
57 / 58 / 7
Регистрация: 01.04.2009
Сообщений: 890
Записей в блоге: 1
13.05.2010, 09:41  [ТС]
Спасибо за пример. Все гениальное просто.

Вот еще примерчик
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public const int WM_LBUTTONDOWN = 0x201;
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
                case WM_LBUTTONDOWN:
                    {
                        MessageBox.Show("Нажата левая кнопка");
                        break;
                    }
            }
            base.WndProc(ref m);
        }
Добавлено через 1 час 4 минуты
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.05.2010, 09:41
Помогаю со студенческими работами здесь

Как отключить TAB на элементах формы?
Собственно сабж, или как вставить символ TAB в textarea?

Как отключить переходы по клавише Tab?
Как отключить переходы между элементами UI в окне по нажатию клавиши Tab и использовать свой обработчик? Добавлено через 8 минут Сам...

Как программно нажать клавишу Caps lock в любом приложении
SendKeys.Send("{NUMLOCK}") и SendKeys.SendWait("{CAPSLOCK}") работает 1 раз из 100

Как в VBA набранное число поместить в определенную ячейку EXEL. Например 5 в С4.
Как в VBA набранное число поместить в определенную ячейку EXEL. Например 5 в С4.

Замена события MouseDown на клавишу TAB
Уважаемые гуру. Прошу Вашей помощи так как в VBA Не сильно "шарю". Суть проблемы такова Есть Лист Exel На нем есть клавиша которая...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Согласованность транзакций в MongoDB
Codd 30.04.2025
MongoDB, начинавшая свой путь как классическая NoSQL система с акцентом на гибкость и масштабируемость, сильно спрогрессировала, включив в свой арсенал поддержку транзакционной согласованности. Это. . .
Продвинутый ввод-вывод в Java: NIO, NIO.2 и асинхронный I/O
Javaican 30.04.2025
Когда речь заходит о вводе-выводе в Java, классический пакет java. io долгие годы был единственным вариантом для разработчиков, но его ограничения становились всё очевиднее с ростом требований к. . .
Обнаружение объектов в реальном времени на Python с YOLO и OpenCV
AI_Generated 29.04.2025
Компьютерное зрение — одна из самых динамично развивающихся областей искусственного интеллекта. В нашем мире, где визуальная информация стала доминирующим способом коммуникации, способность машин. . .
Эффективные парсеры и токенизаторы строк на C#
UnmanagedCoder 29.04.2025
Обработка текстовых данных — частая задача в программировании, с которой сталкивается почти каждый разработчик. Парсеры и токенизаторы составляют основу множества современных приложений: от. . .
C++ в XXI веке - Эволюция языка и взгляд Бьярне Страуструпа
bytestream 29.04.2025
C++ существует уже более 45 лет с момента его первоначальной концепции. Как и было задумано, он эволюционировал, отвечая на новые вызовы, но многие разработчики продолжают использовать C++ так, будто. . .
Слабые указатели в Go: управление памятью и предотвращение утечек ресурсов
golander 29.04.2025
Управление памятью — один из краеугольных камней разработки высоконагруженных приложений. Го (Go) занимает уникальную нишу в этом вопросе, предоставляя разработчикам автоматическое управление памятью. . .
Разработка кастомных расширений для компилятора C++
NullReferenced 29.04.2025
Создание кастомных расширений для компиляторов C++ — инструмент оптимизации кода, внедрения новых языковых функций и автоматизации задач. Многие разработчики недооценивают гибкость современных. . .
Гайд по обработке исключений в C#
stackOverflow 29.04.2025
Разработка надёжного программного обеспечения невозможна без грамотной обработки исключительных ситуаций. Любая программа, независимо от её размера и сложности, может столкнуться с непредвиденными. . .
Создаем RESTful API с Laravel
Jason-Webb 28.04.2025
REST (Representational State Transfer) — это архитектурный стиль, который определяет набор принципов для создания веб-сервисов. Этот подход к построению API стал стандартом де-факто в современной. . .
Дженерики в C# - продвинутые техники
stackOverflow 28.04.2025
История дженериков началась с простой идеи — создать механизм для разработки типобезопасного кода без потери производительности. До их появления программисты использовали неуклюжие преобразования. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru