Форум: "Система";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];
ВнизКак узнать серийный номер винта??? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c