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

Вниз

usb flash   Найти похожие ветки 

 
Farel ©   (2007-11-01 17:51) [0]

ПРИВЕТ ВСЕМ!!!
Уважаемые, подскажите пожалуйста как определить серийный номер флешки


 
Dimaxx ©   (2007-11-01 17:57) [1]

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


 
Farel ©   (2007-11-01 17:59) [2]

умею!!!
там по поиску даже не компилится!!! и Я там не увидил ниче связанное с серийным номером флехи!


 
Dimaxx ©   (2007-11-01 18:00) [3]

См. раздел WinAPI.


 
Farel ©   (2007-11-01 18:01) [4]

Спасибо за помощь :(


 
Dimaxx ©   (2007-11-01 18:07) [5]

УУу, сразу обижаться?? На сердитых воду возят, на надутых кирпичи (шутка).

Чем тебя не устраивает тема?
http://delphimaster.net/view/4-1190208449/


 
Farel ©   (2007-11-01 18:10) [6]

Понимаешь, не могу скомпилить. Если можешь подскажи что там не так спасибо


 
Palladin ©   (2007-11-01 18:21) [7]


> Farel ©   (01.11.07 18:10) [6]

религия не позволяет? мама ругается? папа ремнем шпарит? или ошибку какую пишет?


 
Farel ©   (2007-11-01 18:23) [8]

юморист. ну да. что типа того.
но все таки пишит ошибку


 
Palladin ©   (2007-11-01 18:25) [9]


> Farel ©   (01.11.07 18:23) [8]

песец... откуда такие балбесы берутся...
я вот тоже пошел на кухню, суп сварить, а вот что то не получается... может ты мне подскажешь в чем проблема?


 
Farel ©   (2007-11-01 18:30) [10]

function SetupDiGetClassDevsA(ClassGuid: PGUID; Enumerator: PChar; hwndParent: HWND; Flags: DWORD): HDEVINFO; stdcall; external setupapi;

вот в этой строке пишит ошибку
field definitionnot allowed after methods or properties


 
Dimaxx ©   (2007-11-01 18:31) [11]


> но все таки пишит ошибку

Почему из тебя надо все клещами тянуть? Какую ошибку, на какой строке кода написать можешь?


 
Dimaxx ©   (2007-11-01 18:31) [12]

Весь код приведи. Судя по ошибке записал объявление не там где положено.


 
Palladin ©   (2007-11-01 18:37) [13]


> Farel ©   (01.11.07 18:30) [10]

создай пустой проект, кинь на форму Button1

удали через Ctrl-A Del и вставь польностью следующий код

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

const
SetupApi = "SetupApi.dll";

type
HDEVINFO = THandle;

PSP_DEVINFO_DATA = ^SP_DEVINFO_DATA;
SP_DEVINFO_DATA = packed record
  cbSize: DWORD;
  ClassGuid: TGUID;
  DevInst: DWORD;
  Reserved: DWORD;
end;

function SetupDiGetClassDevsA(ClassGuid: PGUID; Enumerator: PChar; hwndParent: HWND; Flags: DWORD): HDEVINFO; stdcall; external setupapi;
function SetupDiEnumDeviceInfo(DeviceInfoSet: HDEVINFO; MemberIndex: DWORD; DeviceInfoData: PSP_DEVINFO_DATA): boolean; stdcall; external setupapi;
function SetupDiDestroyDeviceInfoList(DeviceInfoSet: HDEVINFO): boolean; stdcall; external setupapi;
function CM_Get_Device_ID_Size(pulLen: PDWORD; dnDevInst: DWORD; ulFlags: DWORD): DWORD; stdcall; external setupapi;
function CM_Get_Device_IDA(dnDevInst: DWORD; Buffer: PChar; BufferLen: DWORD; ulFlags: DWORD): DWORD; stdcall; external setupapi;

const
CR_SUCCESS = $00000000;

function GetDeviceName(aDevInst: THandle): string;
var
IDLen: Integer;
begin
Result := "";
if (CM_Get_Device_ID_Size(@IDLen, aDevInst, 0) = CR_SUCCESS) and (IDLen > 0) then begin
  SetLength(Result, IDLen);
  if CM_Get_Device_IDA(aDevInst, PChar(Result), IDLen + 1, 0) <> CR_SUCCESS then
    Result := ""
end
end;

procedure EnumDiskDrive;
const
GUID_DEVCLASS_DISKDRIVE: TGUID =
  (D1: $4D36E967; D2: $E325; D3: $11CE; D4: ($BF, $C1, $08, $00, $2B, $E1, $03, $18));
var
hDevInfoSet: HDEVINFO;
DevInfo: SP_DEVINFO_DATA;
i: Integer;
begin
DevInfo.cbSize := sizeof(SP_DEVINFO_DATA);
hDevInfoSet := SetupDiGetClassDevsA(@GUID_DEVCLASS_DISKDRIVE, nil, 0, 2);
i := 0;
if hDevInfoSet <> INVALID_HANDLE_VALUE then begin
  while (SetupDiEnumDeviceInfo(hDevInfoSet, i, @DevInfo)) do begin
    ShowMessage(GetDeviceName(DevInfo.DevInst));
    Inc(i)
  end;
  SetupDiDestroyDeviceInfoList(hDevInfoSet);
end
end;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
EnumDiskDrive
end;

end.


 
Palladin ©   (2007-11-01 18:39) [14]


> Farel ©   (01.11.07 18:30) [10]

а ну конечно... ты объявления внешних функций в класс формы походу запихал... ай молодца


 
Farel ©   (2007-11-01 18:43) [15]

спасибо огромное!!! :)


 
Farel ©   (2007-11-01 18:48) [16]

Работает,но что то серийный номерфлешки не совпадает с тем что показывает програмка


 
Farel ©   (2007-11-01 18:50) [17]

Или это серийный номер тома. Если так, то не подскажете как определить именно серийный номер флешки!?


 
Riply ©   (2007-11-01 20:47) [18]

> [17] Farel ©   (01.11.07 18:50)
> Или это серийный номер тома. Если так, то не подскажете
> как определить именно серийный номер флешки!?

Попробуй DeviceIoControl с запросом: IOCTL_STORAGE_QUERY_PROPERTY
P.S. С параметром не уверена, но что-то похожее :)



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

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

Наверх





Память: 0.49 MB
Время: 0.06 c
3-1184172756
WFS
2007-07-11 20:52
2007.11.25
Какое событие отвечает за перемещение указателя в датагриде?


15-1192631024
Реактор
2007-10-17 18:23
2007.11.25
Проблема с печатью рисунка


4-1179087050
DefCon
2007-05-14 00:10
2007.11.25
Сканеры штрих-кодов


15-1192793813
DevilDevil
2007-10-19 15:36
2007.11.25
Визуальные компоненты на TDataModule


2-1194260362
ProgRAMmer Dimonych
2007-11-05 13:59
2007.11.25
TMemoryStream (ограничения)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский