Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа с дисками и WinAPI в C#

50K
03 марта 2010 года
neo-n06
29 / / 17.02.2010
Здраствуйте подскажите пожалуйсто класс для работы с дисками в C# .

Мне необходимо посекторно считать диск а так же возможность записать в каждый сектор .... таким образом хотелось бы формотировать диск (писать во все сектора 0) ну и для диплома ме нужно реализовать опр алгоритм =)

Знаю что возможно это сделать на Win API то есть работать с диском как с файлом ...но как их использовать в C# не знаю ... заранее спасибо за помощь ...
7
03 марта 2010 года
@pixo $oft
3.4K / / 20.09.2006
Сначала прочитайте про использование WinAPI в C#,а уж потом идите дальше.Для затравки–CreateFile
50K
03 марта 2010 года
neo-n06
29 / / 17.02.2010
Угу по поводу функции понял спасибо ... а вот про то как использовать в C# то я и не знаю с чем и обратился
253
03 марта 2010 года
Proger_XP
1.5K / / 07.08.2004
Обратитесь к первым же ссылкам гугла.
50K
03 марта 2010 года
neo-n06
29 / / 17.02.2010
Спасибо огромное ... извиняюсь за тупость ....
50K
11 марта 2010 года
neo-n06
29 / / 17.02.2010
Здраствйте еще раз ... новую тему не стал создавать дабы не плодить....

Хотел спросиь никто не знает как привязать программу к флешке ? то есть есть ли у флешки какой то уникальный параметр ? или можно ли как то запретить запись чтение с флешки ? или только лишь шифрование?
7
11 марта 2010 года
@pixo $oft
3.4K / / 20.09.2006
Конечно,у всех носителей данных есть уникальный серийный номер
8.2K
11 марта 2010 года
bagie2
299 / / 26.10.2008
Если на C#, то можно примерно так:

Код:
using System.IO;
using System.Management;

            using (var WmiLogicalDisk = new ManagementObject(
                string.Format("Win32_LogicalDisk='{0}:'", Path.GetPathRoot(Application.ExecutablePath)[0])))
            using (var WmiDiskPartitionList = WmiLogicalDisk.GetRelated("Win32_DiskPartition"))
            using (var WmiDiskPartitionEnum = WmiDiskPartitionList.GetEnumerator())
            {
                WmiDiskPartitionEnum.MoveNext();
                using (var WmiDiskDriveList = ((ManagementObject)WmiDiskPartitionEnum.Current).GetRelated("Win32_DiskDrive"))
                using (var WmiDiskDriveEnum = WmiDiskDriveList.GetEnumerator())
                {
                    WmiDiskDriveEnum.MoveNext();
                   
                    MessageBox.Show(WmiDiskDriveEnum.Current["PNPDeviceID"].ToString());
                }
            }
50K
12 марта 2010 года
neo-n06
29 / / 17.02.2010
pVolumeSerialNumber [out, optional]

A pointer to a variable that receives the volume serial number.

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

А еще варианты есть какие нить?
50K
12 марта 2010 года
neo-n06
29 / / 17.02.2010
Еще вот какой фопрос возник ... а как определить количество ФИЗИЧЕСКИХ дисков в системе?
8.2K
12 марта 2010 года
bagie2
299 / / 26.10.2008
 
Код:
using System.Management;

using (var mgmtObjSearcher = new ManagementObjectSearcher(
                "SELECT * FROM Win32_DiskDrive WHERE InterfaceType='USB'"))
            using (var mgmtObjCollection = mgmtObjSearcher.Get())
                MessageBox.Show(mgmtObjCollection.Count.ToString());


условие WHERE InterfaceType='USB' можно убрать если не надо.
50K
13 марта 2010 года
neo-n06
29 / / 17.02.2010
Спасибо вас понял =)
правда Usung конструкцию не пользую надобы ее изучить ...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог