Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
 Аватар для Scorpik1
7 / 7 / 5
Регистрация: 27.07.2011
Сообщений: 32

Отловить событие подключения/отключения USB-носителя

28.07.2017, 19:11. Показов 4092. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Товарищи, поделитесь ,пожалуйста, работающими примерами по данному вопросу. И если есть какие то библиотеки по данному вопросу, то подскажите, что посмотреть.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.07.2017, 19:11
Ответы с готовыми решениями:

Отловить событие подключения/отключения USB-носителя
Может кто нибуть четко написать что и где вписать (читал что нада менять код в главном Program.сs, но вроде есть и другие методы, тоже...

Отловить событие отключения\выключения монитора
Кто нибудь, подскажите, как?! unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils,...

Обработка события подключения и отключения USB(WM_DEVICECHANGE)
Всем привет . Такая задача, требуется отследить подключение и отключение USB. Следующий код работает но выдает одно и тоже в события...

3
Эксперт .NET
 Аватар для Rius
13127 / 7688 / 1676
Регистрация: 25.05.2015
Сообщений: 23,458
Записей в блоге: 14
28.07.2017, 19:58
Лучший ответ Сообщение было отмечено Scorpik1 как решение

Решение

В теме Изменение значения в Combobox при работе с Com портом ниже
1
 Аватар для proghelp4you
62 / 62 / 34
Регистрация: 09.07.2017
Сообщений: 475
28.07.2017, 20:28
Лучший ответ Сообщение было отмечено Scorpik1 как решение

Решение

Scorpik1, вот набросал небольшой класс, думаю, вам пойдет:
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
using System;
using System.Management;
using System.Windows.Forms;
 
namespace WindowsFormsApplication
{
    class USBConnectionsChecker
    {
        private int devicesCount;
        private Timer updatingInformationTimer;
 
        public event EventHandler DeviceConnected;
        public event EventHandler DeviceDisconnected;
 
        private int GetDevicesCount()
        {
            return ((new ManagementObjectSearcher(@"select * from Win32_DiskDrive")).Get()).Count;
        }
 
        private void UpdatingInformationTimer_Tick(object sender, EventArgs e)
        {
            int newDevicesCountValue = GetDevicesCount();
 
            if (newDevicesCountValue != devicesCount)
            {
                if (newDevicesCountValue > devicesCount)
                {
                    devicesCount = newDevicesCountValue;
                    DeviceConnected(this, null);
                }
                else
                {
                    devicesCount = newDevicesCountValue;
                    DeviceDisconnected(this, null);
                }
            }
        }
 
        public USBConnectionsChecker()
        {
            devicesCount = GetDevicesCount();
            updatingInformationTimer = new Timer();
            updatingInformationTimer.Tick += new EventHandler(this.UpdatingInformationTimer_Tick);
            updatingInformationTimer.Interval = 1000;
            updatingInformationTimer.Enabled = true;
        } 
    }
}
Использование класса в коде:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void CheckUSBConnectionsButton_Click(object sender, System.EventArgs e)
{
    USBConnectionsChecker usbConnectionsChecker = new USBConnectionsChecker();
    usbConnectionsChecker.DeviceConnected += new EventHandler(UsbConnectionsChecker_DeviceConnected);
    usbConnectionsChecker.DeviceDisconnected += new EventHandler(UsbConnectionsChecker_DeviceDisconnected);
}
 
private void UsbConnectionsChecker_DeviceConnected(object sender, System.EventArgs e)
{
    MessageBox.Show("Был подключен новый USB-девайс!", "Информация", MessageBoxButtons.OK, 
    MessageBoxIcon.Information);
}
 
private void UsbConnectionsChecker_DeviceDisconnected(object sender, System.EventArgs e)
{
    MessageBox.Show("Один из USB-девайсов был отключен!", "Информация", MessageBoxButtons.OK, 
    MessageBoxIcon.Information);
}
Небольшая ошибочка, SELECT-запрос должен быть таким:
C#
1
ManagementObjectSearcher(select * from Win32_USBHub)
1
Эксперт .NET
 Аватар для Rius
13127 / 7688 / 1676
Регистрация: 25.05.2015
Сообщений: 23,458
Записей в блоге: 14
29.07.2017, 07:44
Использование WMI чревато:
  • сервис WMI может быть отключён;
  • запрос может выполняться с тормозами;
  • если он будет тормозить, то этот код, выполняющийся в потоке UI, приведёт в зависанию программы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.07.2017, 07:44
Помогаю со студенческими работами здесь

Событие подключения Usb устройства
Подскажите, плиз, есть ли спецальное событие подключение usb устройства. Цель поймать подключение флешки, серийный номер которой...

Отловить отключения интернета
Приветствую, у меня в коде есть корутина которая берет некие данные с сервера, вот код: UnityWebRequest www = new...

Не устанавливаются драйвера для USB-носителя
Не устанавливаются драйвера для USB-носителя SP016GBUF2M01V1S. Действия - в вложении. Так ведет себя на новой оси. Если еще раз...

Установка Mandriva 2010 c USB носителя
Добрый вечер. Срочный вопрос. как из под windows 7 записать загрузочный образ Mandriva 2010? посоветуйте что нибудь.

USB устройство не определяется. Нет носителя
USB накопитель: SP|Silikon Power LuxMini 320 vid = 090C , pid = 1000 Сегодня флешка умерла, а на ней важная информация. Умерла она...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru