Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.80/35: Рейтинг темы: голосов - 35, средняя оценка - 4.80
36 / 36 / 3
Регистрация: 17.07.2008
Сообщений: 581

Закрыть USB флаш накопитель

04.07.2011, 13:15. Показов 6998. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Нужна помощь. Хочу написать программу, чтоб закрыть УСБ порты для флаш накопителей. А так остальное должно работать, мышка, и т.д. Какую идею можете подкинуть??? Как реализовать?? ДЛя офиса хочу, чтоб никто флашками не заносил мусор. Хотелась бы и для ХП и семерки. Но если для ХП написать на Дот Нете, то и для семерки должно пойти. Заранее всем спасибо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.07.2011, 13:15
Ответы с готовыми решениями:

Извлечь usb накопитель "силой"
Подскажите пожалуйста, как программно извлечь флешку "силой", то есть, если она задействована в каком то процессе? нашел только пример...

Мультизагрузочный USB накопитель
Вопрос к форумчанинам, а также к модераторам, т.е. администраторам форума. Насколько актуальна такая тема?

немогу зайти на USB накопитель
немогу зайти на USB накопитель ! вылазеет ошибка файл поврежден или нет доступа как можно востановить какой прогой

23
 Аватар для Ice_and_Fire
512 / 298 / 37
Регистрация: 22.06.2011
Сообщений: 929
04.07.2011, 13:36
http://www.codeproject.com/KB/... sg=3072975
http://www.codeproject.com/KB/cs/USB_HID.aspx
1
36 / 36 / 3
Регистрация: 17.07.2008
Сообщений: 581
04.07.2011, 14:27  [ТС]
спасибо,я это уже видел. Там показывает флаш подключен или отключен. И выбор дает пользователью, отключит его?? а я хочу чтоб сам отключил
0
 Аватар для Ice_and_Fire
512 / 298 / 37
Регистрация: 22.06.2011
Сообщений: 929
04.07.2011, 14:30
Так не давай выбор пользователю...
Хотя конечно через реестр это не серьезно..

Вот пример через WM_DEVICECHANGE
http://www.codeproject.com/KB/... ector.aspx
0
36 / 36 / 3
Регистрация: 17.07.2008
Сообщений: 581
04.07.2011, 17:06  [ТС]
Цитата Сообщение от Ice_and_Fire Посмотреть сообщение
Так не давай выбор пользователю...
Хотя конечно через реестр это не серьезно..

Вот пример через WM_DEVICECHANGE
http://www.codeproject.com/KB/... ector.aspx
спасибо вам. Но тут тоже просить пользователя? можете не много объяснить??
0
 Аватар для Ice_and_Fire
512 / 298 / 37
Регистрация: 22.06.2011
Сообщений: 929
05.07.2011, 09:45
Цитата Сообщение от frech Посмотреть сообщение
спасибо вам. Но тут тоже просить пользователя? можете не много объяснить??
Так Вы измените программу что-бы не просил

Добавлено через 50 минут
Еще можно поразбираться с отключением драйвера http://msdn.microsoft.com/en-u... 45120.aspx
1
36 / 36 / 3
Регистрация: 17.07.2008
Сообщений: 581
05.07.2011, 11:47  [ТС]
Цитата Сообщение от Ice_and_Fire Посмотреть сообщение
Так Вы измените программу что-бы не просил

Добавлено через 50 минут
Еще можно поразбираться с отключением драйвера http://msdn.microsoft.com/en-u... 45120.aspx
щас разбирусь с программой, и напишу вам. Еще раз спасибо

Добавлено через 51 минуту
не могу разобраться. Как можна отлавливать сообщение системы, а том что подключен флаш?? и чем можна сразу же закрыть флашку?
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
05.07.2011, 12:25
Цитата Сообщение от frech Посмотреть сообщение
Хочу написать программу, чтоб закрыть УСБ порты для флаш накопителей. А так остальное должно работать, мышка, и т.д. Какую идею можете подкинуть??? Как реализовать?? ДЛя офиса хочу, чтоб никто флашками не заносил мусор. Хотелась бы и для ХП и семерки.
Что-то смахивает на написание какого-то вируса/жесткого прикола.
Да и правильно писать флеш-накопитель.

Цитата Сообщение от frech Посмотреть сообщение
Хотелась бы и для ХП и семерки. Но если для ХП написать на Дот Нете, то и для семерки должно пойти.
уверены?
0
36 / 36 / 3
Регистрация: 17.07.2008
Сообщений: 581
05.07.2011, 13:39  [ТС]
как вызвать это событие после того как флашка включена??
вот см код, где он определяет флашку ( его в дальнейшем можна удалить) :
C#
1
2
3
4
5
6
7
8
9
10
11
12
private void OnDriveArrived(object sender, DriveDetectorEventArgs e)
        {
            // Report the event in the listbox.
            // e.Drive is the drive letter for the device which just arrived, e.g. "E:\\"
            string s = "Drive arrived " + e.Drive;
            listBox1.Items.Add(s);
           
            // If you want to be notified when drive is being removed (and be able to cancel it), 
            // set HookQueryRemove to true 
            if ( checkBoxAskMe.Checked )   
                e.HookQueryRemove = true;                 
        }
а вот где он удаляет флашку ( первым делам, если пользователь поставил галочку, он спрашивает, удалить или нет):
C#
1
2
3
4
5
6
7
8
9
10
11
12
private void OnQueryRemove(object sender, DriveDetectorEventArgs e)
        {
            // Should we allow the drive to be unplugged?
            if (checkBoxAskMe.Checked)
            {
                if (MessageBox.Show("Allow remove?", "Query remove",
                    MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    e.Cancel = false;       // Allow removal
                else
                    e.Cancel = true;        // Cancel the removal of the device  
            }
        }
вот как с этими работать?? флашку опознал, и сразу сам удалил, что пользователь не заметил.


Еще, вы там говорили на счет отключение драйвера. Если отключит драйвер, то мышка будет работать? (мышка подключена через ЮСБ). Есть какие та примера?

Добавлено через 19 минут
Цитата Сообщение от Maxwe11 Посмотреть сообщение
Что-то смахивает на написание какого-то вируса/жесткого прикола.
Да и правильно писать флеш-накопитель.


уверены?
это никакой не вирус!!! в офисе много компав, и работники заражают систему вирусами, через флеш накопитель. Вот и хочется закрыть доступ. Такую программу видел, и хочется самому написать.

Добавлено через 34 минуты
нашел тут такую тему, и вот код:
C++
1
#include <windows.h> void DisconectUsb(char Vol) {         char *volname=new char[7];         volname[0]='\\';         volname[1]='\\';         volname[2]='.';         volname[3]='\\';         volname[4]=Vol;         volname[5]=':';         volname[6]='\0';         HANDLE hVol;         BOOL res;         hVol = CreateFile(volname, GENERIC_READ || GENERIC_WRITE, FILE_SHARE_READ || FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);         if(hVol == INVALID_HANDLE_VALUE) return;         DWORD nBytesReturned = 0;         res = DeviceIoControl(hVol, IOCTL_STORAGE_EJECT_MEDIA, NULL, 0, NULL, 0, &nBytesReturned, NULL);         delete [] volname; } int main() {         for(int i=69; i<80; i++)         {                 DisconectUsb(i);         }         return 0;
как переобразовать его в С шарп?? Тут Handle не распознается

Добавлено через 15 минут
думаю перейти на реестр
0
 Аватар для Ice_and_Fire
512 / 298 / 37
Регистрация: 22.06.2011
Сообщений: 929
05.07.2011, 13:43
Цитата Сообщение от frech Посмотреть сообщение
думаю перейти на реестр
Тогда программа должна будет запускаться правами администратора. Хотя это наверно в любом случае...
0
36 / 36 / 3
Регистрация: 17.07.2008
Сообщений: 581
05.07.2011, 13:57  [ТС]
Цитата Сообщение от Ice_and_Fire Посмотреть сообщение
Тогда программа должна будет запускаться правами администратора. Хотя это наверно в любом случае...
вот сделал так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Win32;
 
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            const string keyname = "HKEY_LOCAL_MACHINE"+"\\"+"SYSTEM"+"\\"+"CurrentControlSet"+"\\"+"Services"+"\\"+"USBSTOR";
            
            
            Registry.SetValue(keyname, "Start", 4);
 
        }
 
        
    }
}


если значение 3 изменить на 4, то накопитель не доступ. вот щас надо найти этот путь на семерке. Если у кого та установлена семерка, пожалуйста напишите путь сюда. Создам два приложение, один для ХРюши, а другой для семерки
0
 Аватар для Ice_and_Fire
512 / 298 / 37
Регистрация: 22.06.2011
Сообщений: 929
05.07.2011, 14:07
Без прав администратора работать не будет
0
36 / 36 / 3
Регистрация: 17.07.2008
Сообщений: 581
05.07.2011, 14:09  [ТС]
Цитата Сообщение от Ice_and_Fire Посмотреть сообщение
Без прав администратора работать не будет
а там с правами администратора. С реестрам все понятно. Но щас хотелась бы программно сделать, как вы показали выше.
0
 Аватар для Ice_and_Fire
512 / 298 / 37
Регистрация: 22.06.2011
Сообщений: 929
05.07.2011, 14:12
У тебя пользователи сидят с правами админа? Или через Group Policy разворачивать будешь?
0
36 / 36 / 3
Регистрация: 17.07.2008
Сообщений: 581
05.07.2011, 14:14  [ТС]
у меня там два доступа. один для админа,а другой для пользователя. Вот с правами админа зайду, там сделаю все что надо. Вот отсюда вопрос, если пользователь зайдет под своим именем, то настройки в реестре останутся так как админ сделал??
0
 Аватар для Ice_and_Fire
512 / 298 / 37
Регистрация: 22.06.2011
Сообщений: 929
05.07.2011, 14:16
Цитата Сообщение от frech Посмотреть сообщение
Вот отсюда вопрос, если пользователь зайдет под своим именем, то настройки в реестре останутся так как админ сделал??
Конечно. Ты же изменяешь HKLM. Настройки пользователей хранятся в ветке HKCU
1
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
06.07.2011, 10:43
Да интересное обсуждение, но корень проблемы-то не в отключении флешек. Все вирусы с флешек запускаются 2-я способами:
1) через автозапуск
2) самим пользователем

1-й вариант самый распространенный и его решение давно придумано MS. Вот статейка, которую мне подкинули пару лет назад
Отключение автозапуска флешки

Для отключения автостарта вирусов с флешек всем рекомендуется сделать следующее:

- Пуск - Выполнить - gpedit.msc
- Конфигурация компьютера
- Административные шаблоны
- Система
- Отключить автозапуск
- Правой кнопкой мыши - Свойства - Включена - Всех дисководах - Применить.

Теперь автозагрузка на флешках не стартует и вирусы не смогут распространиться без помощи пользователя.

Дополнительная рекомендация:
- не открывайте диски с помощью ярлыка "Мой компьютер"
- для открытия дисков пользуйтесь фаловыми менеджерами или проводником, который запускается комбинацией клавиш "ОКНО-WINDOWS" + "E"
Это для Win XP, для семерки тоже очень похоже. Помогает на 100%

Вторая проблема, как правило вызвана тем, что вирусы подменяют пользовательские файлы и каталоги собой, а оригиналы скрывают. Когда смотришь через "Мой компьютер" все выглядит благопристойнои сомнений не вызывает, пока не начинаешь по нему кликать. Я постоянно пользуюсь TotalCommander с отображением скрытых файлов, все видно как на ладони, даже антивирус не нужен.
1
Заблокирован
06.07.2011, 11:49
Цитата Сообщение от nio Посмотреть сообщение
Отключение автозапуска флешки
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 //отключить автозапуск
            Microsoft.Win32.RegistryKey autorun =
     Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer", true);
            autorun.SetValue("NoDriveTypeAutoRun", 0xFF);
            /*Допустимые значения ключа:
0x1 - отключить автозапуск на приводах неизвестных типов
0x4 - отключить автозапуск сьемных устройств
0x8 - отключить автозапуск НЕсьемных устройств
0x10 - отключить автозапуск сетевых дисков
0x20 - отключить автозапуск CD-приводов
0x40 - отключить автозапуск RAM-дисков
0x80 - отключить автозапуск на приводах неизвестных типов
0xFF - отключить автозапуск вообще всех дисков.
             */
1
36 / 36 / 3
Регистрация: 17.07.2008
Сообщений: 581
06.07.2011, 20:24  [ТС]
Цитата Сообщение от round Посмотреть сообщение
Код C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 //отключить автозапуск Microsoft.Win32.RegistryKey autorun = Microsoft.Win32.Registry.LocalMachine.Op enSubKey(@"SOFTWARE\Microsoft\Windows\Cu rrentVersion\Policies\Explorer", true); autorun.SetValue("NoDriveTypeAutoRun", 0xFF); /*Допустимые значения ключа: 0x1 - отключить автозапуск на приводах неизвестных типов 0x4 - отключить автозапуск сьемных устройств 0x8 - отключить автозапуск НЕсьемных устройств 0x10 - отключить автозапуск сетевых дисков 0x20 - отключить автозапуск CD-приводов 0x40 - отключить автозапуск RAM-дисков 0x80 - отключить автозапуск на приводах неизвестных типов 0xFF - отключить автозапуск вообще всех дисков. */
спасибо что подбросили это. А как ключить автозапуск??? какое значение надо ставить?
0
36 / 36 / 3
Регистрация: 17.07.2008
Сообщений: 581
07.07.2011, 13:06  [ТС]
всем спасибо за помощь. Вот хочу продолжить эту тему, хочется изменять значение реестра удаленного компютера. Вот нашел такой метод:
C#
1
2
3
4
public static RegistryKey OpenRemoteBaseKey(
    RegistryHive hKey,
    string machineName
)
тут string machineName эьл имя удаленного компютера. Но мне хотелась бы за место имени компа, написать туда İP-аддрес компа в локалке. Возможна ли это?? че посоветуйте??? Заранее всем спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.07.2011, 13:06
Помогаю со студенческими работами здесь

Установка Windows 7 на USB-накопитель
Здравствуйте необходимо установить Windows 7 на флешку, какими средствами посоветуете это сделать? И возможно подскажите... на машине...

Установка Windows 10 на usb накопитель
Здравствуйте, подскажите пожалуйста какими средствами можно установить Windows на флешку, чтобы это не длилось вечность? Пробовал...

USB накопитель (жесткий диск)
Извиняюсь что не в том разделе.. Не смог найти нужного. Проблема вот в чем.. У меня был один айдишный жесткий диск от ноута, мало не...

Притормаживает Флеш Накопитель USB
Здравствуйте. У меня такая проблемка. Приобрел Silicon Power - Touch 850. При копировании любых файлов на эту флешку, происходят паузы...

STM32F4 + Xbee + USB-flash-накопитель
Плохо дружу с микроконтроллерами (только начал изучение), появилась необходимость в создании одного довольно сложного проекта. Суть его...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru