Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Узнать имя и букву флешки флешки, пишу "меню для флешки" 
V
    Опции темы
BEST13
Дата 7.10.2008, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 11.4.2008
Где: Ukraine

Репутация: нет
Всего: нет



Я пишу меню для флешки. И мне нужно отображать название и букву которую дала винда флешке. 
Я искал в поиске, ничего не нашол. Подскажыте как это можно узнать?
И еще вопрос, чтоб узнать объём памяти флешки и объём свободного места можно пользоваться алгоритмом для дисков?

PM MAIL ICQ GTalk   Вверх
ne0n
Дата 7.10.2008, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: 4
Всего: 11



BEST13, наверно преблизительно вот так:
Код

var
  Drive: Char; //Буква диска
const
  pref = ':\';
begin

  for Drive := 'A' to 'Z' do
    if GetDriveType(PChar(Drive + pref)) = DRIVE_REMOVABLE then .... // в Drive Буква флешки





з.ы. Почему синтаксис не подсвечиваеться?

Это сообщение отредактировал(а) ne0n - 7.10.2008, 22:11
PM MAIL ICQ   Вверх
BEST13
Дата 7.10.2008, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 11.4.2008
Где: Ukraine

Репутация: нет
Всего: нет



пасиб... а как вывести букву в лейблу.  Если делаю так Label.Caption:= Drive; выписывает ошибки: "For loop control variable must be simple local variable", "TO' expected but ';' found".

PM MAIL ICQ GTalk   Вверх
ne0n
Дата 7.10.2008, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: 4
Всего: 11



забыл сказть что надо исключить из поиска диск A, он тоже сьемным считаеться. вообщем вот код, который только что у себя протестил:

Код

procedure TForm1.btn1Click(Sender: TObject);
 var
  Drive: Char; //Буква диска
const
  pref = ':\';
begin

  for Drive := 'B' to 'Z' do
    if GetDriveType(PChar(Drive + pref)) = DRIVE_REMOVABLE then lbl1.Caption:=Drive+ pref;
end;

PM MAIL ICQ   Вверх
Riply
Дата 8.10.2008, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Цитата(ne0n @  7.10.2008,  23:12 Найти цитируемый пост)
забыл сказть что надо исключить из поиска диск A, он тоже сьемным считаеться. вообщем вот код, который только что у себя протестил:


А также забыл сказать, что надо выдавать грозное предупреждение пользователю,
чтобы, не дай бог, он не подсоединил две флешки сразу smile
PM MAIL   Вверх
ne0n
Дата 8.10.2008, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: 4
Всего: 11



Цитата(Riply @  8.10.2008,  00:13 Найти цитируемый пост)
А также забыл сказать, что надо выдавать грозное предупреждение пользователю,чтобы, не дай бог, он не подсоединил две флешки сразу 

 ну дык просили лайбел - сделал лэйбел, у меня изначально все заносилось в СтрингЛист, поэтому троеточие то и поставил в первом варианте кода, предложил ТС додумать самому, что ему надо  smile 
PM MAIL ICQ   Вверх
Riply
Дата 8.10.2008, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Цитата(ne0n @  8.10.2008,  00:39 Найти цитируемый пост)
 ну дык просили лайбел - сделал лэйбел, у меня изначально все заносилось в СтрингЛист


Тогда ожидай следующего вопроса (кстати, вполне закономерного) :
как из 38-и подключенных флешек, выбрать нужную ?  smile



PM MAIL   Вверх
ne0n
Дата 8.10.2008, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: 4
Всего: 11



Цитата(Riply @  8.10.2008,  01:17 Найти цитируемый пост)
, выбрать нужную ?  

что значит нужную?!) если они подключены -  значит они все нужны smile 


PM MAIL ICQ   Вверх
BEST13
Дата 8.10.2008, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 11.4.2008
Где: Ukraine

Репутация: нет
Всего: нет



большое спс... + ищё вопрос а имя как узнать?
PM MAIL ICQ GTalk   Вверх
Riply
Дата 8.10.2008, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Цитата(ne0n @  8.10.2008,  11:11 Найти цитируемый пост)
что значит нужную?!) если они подключены -  значит они все нужны 


Это не совсем так.  
Не все, что блестит... ой тьфу !
Не все, что  "DRIVE_REMOVABLE" - флешка smile
Например, Zip-disk.

P.S.
 Очень вероятно, что истинно обратное утверждение: если флешка, то DRIVE_REMOVABLE.
 Но лично я и под ним бы не стала подписываться smile

PM MAIL   Вверх
BEST13
Дата 8.10.2008, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 11.4.2008
Где: Ukraine

Репутация: нет
Всего: нет



А насчот имени никто не знает?
PM MAIL ICQ GTalk   Вверх
Riply
Дата 8.10.2008, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Цитата(BEST13 @  8.10.2008,  18:26 Найти цитируемый пост)
А насчот имени никто не знает?


Если ты пояснишь что понимается под термином "имя флешки",
то тебе, наверное, помогут.

Лично я не смогла догадаться smile

PM MAIL   Вверх
mr.Anderson
Дата 8.10.2008, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Riply, а что пояснять? smile Имя флешки оно и есть имя флешки. Вот флешку вставляете в комп - появляется дополнительный раздел, у которого есть свое имя, которое пользователь может поменять. Вот его и требуется узнать.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
BEST13
Дата 8.10.2008, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 11.4.2008
Где: Ukraine

Репутация: нет
Всего: нет



Цитата(mr.Anderson @  8.10.2008,  18:55 Найти цитируемый пост)
Riply, а что пояснять?  Имя флешки оно и есть имя флешки. Вот флешку вставляете в комп - появляется дополнительный раздел, у которого есть свое имя, которое пользователь может поменять. Вот его и требуется узнать.


Совершено, верно. Я это и имел ввиду  smile 
PM MAIL ICQ GTalk   Вверх
MIX55
Дата 8.10.2008, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


много работы
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 208
Регистрация: 23.10.2005
Где: Здесь

Репутация: нет
Всего: 4



Код

procedure TForm1.Button1Click(Sender: TObject);
var
VolumeName,FileSystemName : array [0..MAX_PATH-1] of Char;
 VolumeSerialNo : DWord;
 MaxComponentLength,FileSystemFlags : longword;
begin
GetVolumeInformation(PChar(DriveName),VolumeName,MAX_PATH,@VolumeSerialNo,
                      MaxComponentLength,FileSystemFlags,FileSystemName,MAX_PATH);
label1.Caption:=VolumeName;
end;


параметр DriveName должен быть вида 'F:\'. где F  буква твоей флешки

Добавлено через 10 минут и 50 секунд
Цитата

Например, Zip-disk.


Riply как ж тогда решить данную проблему (используя DeviceIoControl)? Ты же спец. в данной области.

Это сообщение отредактировал(а) MIX55 - 8.10.2008, 19:41
--------------------
Hарод, а как в дельфи писать паскалевские проги....?*********************************************Жизнь слишком коротка, чтобы писать на Assembler'e
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.1399 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.