С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/32: Рейтинг темы: голосов - 32, средняя оценка - 4.63
грызу канифоль
 Аватар для Vasiliy
45 / 22 / 3
Регистрация: 03.12.2008
Сообщений: 265

Програмное отключение клавиатуры

17.05.2009, 00:34. Показов 6692. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
надо програмно выключить (а потом включить) клавиатуру, чтоб не было реакции двже на [Ctrl+Alt+Del] & [Alt+Tab], как это сделать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.05.2009, 00:34
Ответы с готовыми решениями:

Програмное переключение раскладки клавиатуры
Помогите, пожалуйста, с такой проблемой: программу, сделаную в Lazarus в Windows, переношу в Linux. Програмное переключение языка в...

Програмное переназначение некоторых клавиш клавиатуры. Возможно?
Здравствуйте уважаемые кодеры! Сорри за может весьма тупой вопрос но только начал изучать системные API ( windows API ). Вообщем суть...

Отключение мыши и клавиатуры
Здравствуйте! Вчера (20 января 2020 года) при игре у меня резко отключились мышь с клавиатурой. После перезагрузки не работали все задние...

5
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
17.05.2009, 04:42
Средствами C# никак. Ищите Win API на отключение/включение устройства.
1
грызу канифоль
 Аватар для Vasiliy
45 / 22 / 3
Регистрация: 03.12.2008
Сообщений: 265
17.05.2009, 07:54  [ТС]
блин. в Win API прописываеца для отключения устройства такой "номер", даже незнаю как его назвать...
Code
1
Guid keyboardguid = new Guid("{36FC9E60-C465-11CF-8056-444553540000}");
это из примера в книжке, а вот как узнать такой "идентификационный номер" клавы?

Добавлено через 1 час 22 минуты 0 секунд
протестил код, програмка вырубила мне USB клаву) отсюда создаётся вопрос: как её программно обратно включить? а то пришлось заново втыкать))
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
18.05.2009, 02:09
В случае с USB, по моему никак.
0
 Аватар для Angelov
9 / 9 / 2
Регистрация: 02.10.2010
Сообщений: 51
17.11.2010, 11:55
С вами не согласен, отключить USB можно, сам лично и отключал!
Не забудьте подключить:
using System;
using System.Runtime.InteropServices;

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
class Class1
    {
        [STAThread]
        static unsafe void Main(string[] args)
        {
            Guid UsbGuid = new Guid("{36FC9E60-C465-11CF-8056-444553540000}");
 
            int PnPHandle = SetupAPI.SetupDiGetClassDevs(
                ref UsbGuid,
                null, 
                null,
                SetupAPI.ClassDevsFlags.DIGCF_PRESENT
            );
 
            int result      = -1;
            int DeviceIndex = 0;
 
            while (result != 0)
            {
                SetupAPI.SP_DEVINFO_DATA DeviceInfoData = new SetupAPI.SP_DEVINFO_DATA();
                DeviceInfoData.cbSize = Marshal.SizeOf(DeviceInfoData);
                result = SetupAPI.SetupDiEnumDeviceInfo(PnPHandle, DeviceIndex, ref DeviceInfoData);
 
                if (result == 1)
                {
                    if (IsRemovable(DeviceInfoData))
                    {
                        Console.WriteLine("{0}", GetRegistryProperty(PnPHandle, ref DeviceInfoData, SetupAPI.RegPropertyType.SPDRP_DEVICEDESC));
                        if (SetupAPI.CM_Request_Device_Eject(DeviceInfoData.DevInst, null, null, 0, 0) == 0)
                            Console.WriteLine("Устройство успешно отключено.");
                    }
                }
 
                DeviceIndex++;
            }
 
            Marshal.FreeHGlobal((System.IntPtr)PnPHandle);
 
            Console.ReadLine();
        }
 
        public unsafe static string GetRegistryProperty(int PnPHandle, ref SetupAPI.SP_DEVINFO_DATA DeviceInfoData, SetupAPI.RegPropertyType Property)
        {
            int RequiredSize = 0;
            SetupAPI.DATA_BUFFER Buffer = new SetupAPI.DATA_BUFFER();
 
            int result = SetupAPI.SetupDiGetDeviceRegistryProperty(
                PnPHandle,
                ref DeviceInfoData,
                Property,
                null, 
                ref Buffer,
                1024,
                ref RequiredSize
                );
 
            return  Buffer.Buffer;
 
        }
 
        public unsafe static bool IsRemovable(SetupAPI.SP_DEVINFO_DATA DevData)
        {
            int Status  = 0;
            int Problem = 0;
 
            SetupAPI.CM_Get_DevNode_Status(ref Status, ref Problem, DevData.DevInst, 0);
            return ((Status & SetupAPI.DN_REMOVABLE)!=0);
        }
 
    }
Выходит можно отключить любое устройство, но нужно знать код!!
0
грызу канифоль
 Аватар для Vasiliy
45 / 22 / 3
Регистрация: 03.12.2008
Сообщений: 265
17.11.2010, 16:19  [ТС]
отключить одно дело а подключать потом как?
как следовало из моего предыдущего поста отключить мне таки удалось. включить - нет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.11.2010, 16:19
Помогаю со студенческими работами здесь

Самопроизвольное отключение клавиатуры
При подключении USB клавиатуры к ноуту периодически она периодически самопроизвольно отключается. В итоге постоянные пропуски букв при...

Отключение клавиатуры и мыши
Доброго времени суток, ребят, тут вот какая проблема, комп новый 2 недели примерно, постоянно отключаются мышь и клава, бывает это в...

Отключение беспроводной клавиатуры и мыши
Всем привет. Почему выключается беспроводная мышка и беспроводная клавиатура Logitech MK220. Если вытащить модуль клавиатуры и мыши, и...

Временное отключение мышки / клавиатуры
Как можно отключить себе мышку и клавиатуру в vbs, сделать себе жесточайшего своего рода будильника) RunDll32.exe в win7 не работает.

Отключение определённой клавиши на клавиатуры Delphi
Приветствую всех.В программе, написанной на Delphi нужно отключить отключить определённую клавишу на клавиатуре. Я видел решение через...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru