Форум: "Начинающим";
Текущий архив: 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