Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.03.23;
Скачать: [xml.tar.bz2];

Вниз

Как в label.caption записать логическое имя установленной флешки?   Найти похожие ветки 

 
Mk30 ©   (2008-02-19 20:42) [0]

Добрый вечер уважаемые мастера! у меня такой вопрос - программа детектит момент установки флешки, скажите пожалуйста как в label.caption записать логическое имя установленной флешки?


 
trubin ©   (2008-02-19 20:50) [1]

А что такое   логическое имя установленной флешки


 
Amoeba ©   (2008-02-19 23:27) [2]


> как в label.caption записать логическое имя установленной
> флешки

Сперва получи его, а записать и набитому дураку под силу.


 
Mk30 ©   (2008-02-20 07:59) [3]


> А что такое   логическое имя установленной флешки

при установке флешки Windows присваивает ей соответствующую букву (f:\, g:\ и тд..) эту букву и нужно определить.
сорри за некорректный вопрос. я хотел спросить как  получить  имя  флешки.?


 
VirEx ©   (2008-02-20 11:47) [4]

как детектит?

сделай проще: лови сообщение WM_DEVICECHANGE - DBT_DEVICEARRIVAL и получай volime
typedef struct _DEV_BROADCAST_HDR {
   ULONG dbch_size;  
   ULONG dbch_devicetype;
   ULONG dbch_reserved;
} DEV_BROADCAST_HDR;
typedef DEV_BROADCAST_HDR *PDEV_BROADCAST_HDR;


 
trubin ©   (2008-02-20 12:28) [5]

Держи. Лучше не просто скопируй, а почитай msdn.


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms;

 
const
 DBT_DEVICEARRIVAL = $8000;
 DBT_DEVICEREMOVECOMPLETE = $8004;
 DBTF_MEDIA = $0001;
 DBT_DEVTYP_VOLUME = $0002;  

type

 PDevBroadcastHdr = ^DEV_BROADCAST_HDR;
 DEV_BROADCAST_HDR = packed record
   dbch_size: DWORD;
   dbch_devicetype: DWORD;
   dbch_reserved: DWORD;
 end;

 PDevBroadcastVolume = ^TDevBroadcastVolume;
 TDevBroadcastVolume = packed record
   dbcv_size: DWORD;
   dbcv_devicetype: DWORD;
   dbcv_reserved: DWORD;
   dbcv_unitmask: DWORD;
   dbcv_flags: Word;
 end;

 TForm1 = class(TForm)
   procedure WMDeviceChange(var AMsg: TMessage); message WM_DeviceChange;
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

function GetDrive(pDBVol: PDevBroadcastVolume): string;
var
 i: Byte;
 Mask: DWORD;
begin
   Mask := pDBVol^.dbcv_unitmask;
   for i := 0 to 25 do
   begin
     if (Mask and 1) = 1 then
       Result := Char(i + Ord("A"));
     Mask := Mask shr 1;
   end;
end;

procedure TForm1.WMDeviceChange(var AMsg: TMessage);
var
 devType: Integer;
 data: PDevBroadcastHdr;
 Drive: string;
begin
 if (AMsg.wParam = DBT_DEVICEARRIVAL) then
 begin
   data := PDevBroadcastHdr(AMsg.lParam);
   devType := data^.dbch_devicetype;
   if devType = DBT_DEVTYP_VOLUME then
   begin
       Drive := GetDrive(PDevBroadcastVolume(AMsg.lParam));
       MessageBox(0, PChar("Ins - " + Drive), nil, 0);
   end;
 end;

 if (AMsg.wParam = DBT_DEVICEREMOVECOMPLETE) then
 begin
   data := PDevBroadcastHdr(AMsg.lParam);
   devType := data^.dbch_devicetype;
   if devType = DBT_DEVTYP_VOLUME then
   begin
       Drive := GetDrive(PDevBroadcastVolume(AMsg.lParam));
       MessageBox(0, PChar("Rem - " + Drive), nil, 0);
   end;
 end;
end;

end.


 
Mk30 ©   (2008-02-20 17:06) [6]


> trubin ©   (20.02.08 12:28) [5]

Работает !!  Огромное Вам спасибо!!


 
Мк30 ©   (2008-02-25 13:55) [7]

Пс-пс-пс. Агрых. Лай-ла-ла!!!


 
Мк30 ©   (2008-02-25 21:46) [8]

Бздынь.Тпрррррррр.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.03.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
2-1203579448
Quart
2008-02-21 10:37
2008.03.23
QRLabel


11-1186128845
Александр_2006
2007-08-03 12:14
2008.03.23
Разархивирование из ZIP


2-1202884430
Alex
2008-02-13 09:33
2008.03.23
Новый обработчик иконки help окна


2-1203522656
Answer_i3
2008-02-20 18:50
2008.03.23
Записать в exe файл слово


2-1203867327
Рустам
2008-02-24 18:35
2008.03.23
работа в трее





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский