Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2009, 15:17   #1
DLev2
Пользователь
 
Регистрация: 26.09.2009
Сообщений: 22
Восклицание определение флешки

мне нужно программно вычеслить буквы подключенных к компу флешк. кто поможет?
DLev2 вне форума Ответить с цитированием
Старый 27.09.2009, 15:26   #2
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Получаешь буковки всех смонтированных дисков - GetLogicalDriveStrings()
Находишь среди них съемные (GetDriveType() = DRIVE_REMOVABLE). Исключаешь A:. Остаются твои флешки. (если, конечно, чего-нибудь еще съемного других типов нету)
Метку получаешь через GetVolumeInformation
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 27.09.2009, 16:19   #3
DLev2
Пользователь
 
Регистрация: 26.09.2009
Сообщений: 22
По умолчанию

а можно подробней?
ну или еще вопрос.
как мне сделать проверку на rewrite?
чтобы можно было проверить можно ли создать файл в данной папке.
DLev2 вне форума Ответить с цитированием
Старый 27.09.2009, 18:58   #4
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Да, подробности не мешали б... Тоже интересно
W0LF вне форума Ответить с цитированием
Старый 27.09.2009, 19:05   #5
DLev2
Пользователь
 
Регистрация: 26.09.2009
Сообщений: 22
По умолчанию

ну на самом деле я придумал как это делать, но это не спомощью этих функций, а с помощью "for" а.
DLev2 вне форума Ответить с цитированием
Старый 27.09.2009, 19:28   #6
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

так открой секрет
W0LF вне форума Ответить с цитированием
Старый 27.09.2009, 20:11   #7
DLev2
Пользователь
 
Регистрация: 26.09.2009
Сообщений: 22
По умолчанию

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

for q:= ord ('C') to ord ('Z') do
begin
if q = ord ('E') then {исключение 3 позьб воткнуть диск}
continue;
assignfile(fileq, chr(q)+':\autorun.inf');
{$I-}
rewrite(fileq);
{$I+}
if IOResult <> 0 then
continue;
closefile(fileq);
end;
DLev2 вне форума Ответить с цитированием
Старый 28.09.2009, 17:24   #8
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

вот на основе твоего примера:
в мемо будут диски и их тип:
Код:
procedure TForm1.btn1Click(Sender: TObject);
var
  i: Integer;
  C: string;
  DType: Integer;
  DriveString: string;
begin
  mmo1.Clear;
  for i := 65 to 90 do
  begin
    C := chr(i) + ':\';

    DType := GetDriveType(PChar(C));

    case DType of
      0: DriveString := C + ' диск не определен';
      1: DriveString := C + ' корневая директория не существует';
      DRIVE_REMOVABLE: DriveString :=
        C + ' съемный';
      DRIVE_FIXED: DriveString :=
        C + ' не съемный';
      DRIVE_REMOTE: DriveString :=
        C + ' сетевой';
      DRIVE_CDROM: DriveString := C + '  CD-ROM';
      DRIVE_RAMDISK: DriveString := C + ' RAM ';
    end;
    if not ((DType = 0) or (DType = 1)) then
      mmo1.lines.Add(DriveString);
  end;

end;
а вот на GetLogicalDriveStrings():
Код:
procedure TForm1.btn1Click(Sender: TObject);
var
  i, j: integer;
  buf: array [0..499] of char;
  DrvStr: array [0..9] of char;
begin
  GetLogicalDriveStrings(1000, buf);
  i := 0;
  repeat
    FillChar(DrvStr, SizeOf(DrvStr), #0);
    j := 0;
    repeat
      DrvStr[j] := buf[i];
      inc(j);
      inc(i);
    until
      (buf[i] = #0) or (j > 9);
    inc(i);
    mmo1.lines.Add(DrvStr);
  until
    ((buf[i-1] = #0) and (buf[i] = #0)) or (i > 499);
end;
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.

Последний раз редактировалось ОДИНОЧЕСТВО В СЕТИ; 28.09.2009 в 17:31.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
защита флешки alexxxxZxxxx Безопасность, Шифрование 10 23.11.2011 13:27
Событие подключения флешки kiloz Помощь студентам 13 11.12.2009 20:24
Загрузка нетбука с флешки bill_gates Компьютерное железо 3 12.09.2009 21:05
Выбор флешки. spamer Компьютерное железо 6 23.04.2009 16:58
Авторан для флешки Sk!f Свободное общение 3 31.03.2009 14:15