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

Вниз

Как узнать серийный номер винта???   Найти похожие ветки 

 
c0pyc@t ©   (2002-08-27 08:10) [0]

Как узнать серийный номер винта???


 
savva ©   (2002-08-27 09:37) [1]

винта как железки или логического диска?
если логического диска (раздела на винте) то
GetVolumeInformation или (если лень хелп читать) http://delphibase.endimus.com/?action=viewfunc&topic=harddisk&id=10139

если нужен серийник от производителя - открываешь корпус, снимаешь винчестер и ищешь наклейку с серийным номером :))


 
Мимоходом   (2002-08-27 10:58) [2]

На sources.ru лежал исходничек...


 
Ihor Osov'yak ©   (2002-08-28 01:20) [3]

2 savva -
> ищешь наклейку с серийным номером :))


есть более софтовый способ - поищи DiskId32.zip - я не помню, уже откуда утянул, там есть исходники ... Ес-но си, и есно с использованием драйверов, ибо работа идет напрямую с портами контролера HDD


 
France   (2002-08-28 10:29) [4]

Размести на форме TButton и TMemo.

procedure TForm1.Button1Click(Sender: TObject);
var
VolumeName,
FileSystemName : array [0..MAX_PATH-1] of Char;
VolumeSerialNo : DWord;
MaxComponentLength,
FileSystemFlags : Integer;
begin
GetVolumeInformation("C:\",VolumeName,MAX_PATH,@VolumeSerialNo,
MaxComponentLength,FileSystemFlags,
FileSystemName,MAX_PATH);
Memo1.Lines.Clear;
Memo1.Lines.Add("VName = "+VolumeName);
Memo1.Lines.Add("SerialNo = $"+IntToHex(VolumeSerialNo,8));
Memo1.Lines.Add("CompLen = "+IntToStr(MaxComponentLength));
Memo1.Lines.Add("Flags = $"+IntToHex(FileSystemFlags,4));
Memo1.Lines.Add("FSName = "+FileSystemName);
end;


 
#bug   (2002-08-28 11:45) [5]

последний пример для програмного просмотра серийноика логического
диска!!! То же можно узнать "DIR c:\".
Есть неплохая ну даже очень полезная прога EZ-S.M.A.R.T.


 
c0pyc@t ©   (2002-08-28 11:59) [6]


> France (28.08.02 10:29)

Спасибо за помощь, но на

GetVolumeInformation("C:\",VolumeName,MAX_PATH,@VolumeSerialNo,
MaxComponentLength,FileSystemFlags,
FileSystemName,MAX_PATH);
этом месте говорит что то var parametr must be indeteficcc


 
raiv ©   (2002-08-28 17:06) [7]

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Получение сведений о диске (метка/имя диска, файловая система, серийный номер)

Получение информации о любом диске.
Работает на FDD, HDD, CD, другие не пробовал.

Создайте модуль с именем HDDInfo и полностью скопируйте в него весь текст.

Зависимости: Все Windows (32S,95,NT)
Автор: cyborg, cyborg1979@newmail.ru, ICQ:114205759, Бузулук
Copyright: Собственное написание (Осипов Евгений Анатольевич)
Дата: 23 мая 2002 г.
***************************************************** }

unit HDDInfo;

interface
Uses Windows;

Const {Константы для TypeOfDisk функции GetDisks}
DiskUnknown=0; {Неизвестные диски}
DiskNone=1; {Отсутствующие диски}
DiskFDD=DRIVE_REMOVABLE; {Съёмные диски, дискеты}
DiskHDD=DRIVE_FIXED; {Не съёиные диски, жёсткие диски}
DiskNet=DRIVE_REMOTE; {Сетевые диски}
DiskCDROM=DRIVE_CDROM; {CD ROM}
DiskRAM=DRIVE_RAMDISK; {Диски в ОЗУ}

{Получить имена нужных дисков}
function GetDisks(TypeOfDisk : Word) : String;


{Функция получения информации о диске (HDD,FDD,CD) с буквой Disk}
{
Передаваемые значения:
Disk - Буква диска

Получаемые значения:
VolumeName - Метка/Имя тома
FileSystemName - Файловая система
VolumeSerialNo - Серийный номер диска (можно привязывать к диску программы)
MaxComponentLength - Максимальная длинна имени файла
FileSystemFlags - Флаги смотрите в справке Delphi по GetVolumeInformation

Функция возвращает true, если всё прошло успешно (диск нашёлся),
и false, если возникли проблемы, например диска нет в дисководе,
либо дисковода такого вообще нет
}
Function GetHDDInfo(Disk : Char;Var VolumeName, FileSystemName : String;
Var VolumeSerialNo, MaxComponentLength, FileSystemFlags:LongWord) : Boolean;

implementation

function GetDisks(TypeOfDisk : Word) : String;{Получить имена нужных дисков}
var
DriveArray : array[1..26] of Char;
I : integer;
begin
DriveArray:="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for I := 1 to 26 do
if GetDriveType(PChar(DriveArray[I]+":\")) = TypeOfDisk then Result := Result+DriveArray[I];
end;



Function GetHDDInfo(Disk : Char;Var VolumeName, FileSystemName : String;
Var VolumeSerialNo, MaxComponentLength, FileSystemFlags:LongWord) : Boolean;
Var
_VolumeName,_FileSystemName:array [0..MAX_PATH-1] of Char;
_VolumeSerialNo,_MaxComponentLength,_FileSystemFlags:LongWord;
Begin
if GetVolumeInformation(PChar(Disk+":\"),_VolumeName,MAX_PATH,@_VolumeSerialNo,
_MaxComponentLength,_FileSystemFlags,_FileSystemName,MAX_PATH) then
Begin
VolumeName:=_VolumeName;
VolumeSerialNo:=_VolumeSerialNo;
MaxComponentLength:=_MaxComponentLength;
FileSystemFlags:=_FileSystemFlags;
FileSystemName:=_FileSystemName;
Result:=True;
End else Result:=False;
End;
end.


Пример использования:
USES ..., ..., ..., HDDInfo; {Добавляем наш модуль}

{Нужно создать на форме компонент TLabel , Name которого ставим в Disks}
{И в событии главной формы OnActicate написать это:}

procedure TMyForm.FormActivate(Sender: TObject);
Var
S,SOut : String;
I : Integer;
VolumeName,FileSystemName : String;
VolumeSerialNo,MaxComponentLength,FileSystemFlags:LongWord;
begin
S:=GetDisks(DiskHDD); {Получаем список Жёстких дисков (Параметр DiskHDD)}
SOut:="";
For I:=1 to Length(S) do {Получаем информацию о всех дисках и пишем в TLabel на форме}
Begin
{Если диск существует/вставлен ...}
if GetHDDInfo(S[I], VolumeName, FileSystemName, VolumeSerialNo,
MaxComponentLength, FileSystemFlags) then {... тогда собираем информацию}
SOut:=SOut+
"Диск: "+S[I]+#13#10+
"Метка: "+VolumeName+#13#10+
"Файловая система: "+FileSystemName+#13+#10+
"Серийный номер: "+IntToHex(VolumeSerialNo,8)+#13+#10+
"Макс. длина имени файла: "+IntToStr(MaxComponentLength)+#13+#10+
"Flags: "+IntToHex(FileSystemFlags,4)+#13#10+#13#10;
End;
Disks.Caption:=SOut; {Выводим в компонент TLabel полученные данные о дисках}
end;


 
savva ©   (2002-08-29 11:18) [8]

интересно.. текст модуля данный raiv © (28.08.02 17:06) и ссылка
http://delphibase.endimus.com/?action=viewfunc&topic=harddisk&id=10139
данная мной (27.08.02 09:37) не являются одним и тем же? для чего делали базу? для того чтоб из нее тянуть примеры и публиковать в форуме (вместо того чтоб дать ссылку) ??

Ihor Osov"yak © (28.08.02 01:20)
исходник действительно интересный... но без поллитра не разберешься...


 
Venlota   (2002-09-06 17:26) [9]

Hi. Я вот тут тебе немного решил помочь. Насчет последнего ответа и поллитра. Я этот исходник воплотил в реальность если хочешь то качай!!!! Если нужна помощь обращайся.... :-)

www.ventolaaa.narod.ru


 
Ventola   (2002-09-06 17:30) [10]

Hi. Я вот тут тебе немного решил помочь. Насчет последнего ответа и поллитра. Я этот исходник воплотил в реальность если хочешь то качай!!!! Если нужна помощь обращайся.... :-)

http://www.ventolaaa.narod.ru/code.rar

Удачи...



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

Текущий архив: 2002.11.07;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.015 c
3-21453
Spartak
2002-10-21 10:18
2002.11.07
Привет всем ! люди помогите с вопросом !!!


1-21496
Wassily
2002-10-25 21:31
2002.11.07
Объем исполняемого файла


3-21377
avr555
2002-10-14 17:01
2002.11.07
Добавить/прочитать JPEG-картинку в базу данных


14-21763
^Sanya
2002-10-07 21:41
2002.11.07
Кто-нить пробовал свою анкету редактировать?


1-21679
RTZ
2002-10-28 10:31
2002.11.07
Народ возникли два вопроса по компоненту WebBrowser