Главная страница
    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.039 c
15-1193344929
Сусл
2007-10-26 00:42
2007.11.25
корпоративное решение от google


6-1161104009
BFG9k
2006-10-17 20:53
2007.11.25
обработка PHP сценариев с помощью HTTP сервера Indy


15-1192788410
Сусл
2007-10-19 14:06
2007.11.25
NTFS на внешнем винте


15-1192521589
Маша Шрайбер
2007-10-16 11:59
2007.11.25
Российские программисты - разгильдяи?


15-1193146097
Иван
2007-10-23 17:28
2007.11.25
Работа с двоичными файлами





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