Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.23;
Скачать: CL | DM;

Вниз

Как в 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;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.006 c
2-1203489060
Максим
2008-02-20 09:31
2008.03.23
разбор строка


15-1202698605
Буран
2008-02-11 05:56
2008.03.23
Как откомпилировать сишную dll в Билдере?


11-1186432080
Kirill
2007-08-07 00:28
2008.03.23
DecodeDate


2-1203874099
ккк
2008-02-24 20:28
2008.03.23
Флаги


9-1168391727
Coll
2007-01-10 04:15
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский