Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Присылайте нам Донат :), напишите за что прислали )


Ответ
 
Опции темы
Старый 14.01.2019, 21:49   #21
falsebegin
Форумчанин
 
Регистрация: 23.11.2016
Сообщений: 52
Репутация: 10
По умолчанию

серавно ругается теперь на строках
// warning! change name for other drives: ex.: second drive '\\.\PhysicalDrive1\'
hDevice := CreateFile(PChar('\\.\PhysicalDrive '+IntToStr(HDDIndx)), GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0 );
end
else // Version Windows 95 OSR2, Windows 98
hDevice := CreateFile( '\\.\SMARTVSD', 0, 0, nil, CREATE_NEW, 0, 0 );
if hDevice=INVALID_HANDLE_VALUE then Exit;
try
FillChar(SCIP,SizeOf(TSendCmdInPara ms)-1,#0);
FillChar(aIdOutCmd,SizeOf(aIdOutCmd ),#0);
cbBytesReturned := 0;
// Set up data structures for IDENTIFY command.
with SCIP do
begin
cBufferSize := IDENTIFY_BUFFER_SIZE;
// bDriveNumber := 0;
with irDriveRegs do
begin
bSectorCountReg := 1;
bSectorNumberReg := 1;
// if Win32Platform=VER_PLATFORM_WIN32_NT then bDriveHeadReg := $A0
// else bDriveHeadReg := $A0 or ((bDriveNum and 1) shl 4);
bDriveHeadReg := $A0;
bCommandReg := $EC;
end;
end;
if not DeviceIoControl( hDevice, $0007c088, @SCIP, SizeOf(TSendCmdInParams)-1,
@aIdOutCmd, SizeOf(aIdOutCmd), cbBytesReturned, nil ) then Exit;
finally
CloseHandle(hDevice);
end;
with PIdSector(@IdOutCmd.bBuffer)^ do
begin
ChangeByteOrder(sModelNumber, SizeOf(sModelNumber) );
(PChar(@sModelNumber)+SizeOf(sModel Number))^ := #0;
Result := PChar(@sModelNumber);
end;
end;[/CODE]
думаю весь код надо передалть под XE7
falsebegin вне форума   Ответить с цитированием
Старый 17.01.2019, 18:42   #22
Комиссар Катани
Пользователь
 
Регистрация: 29.12.2012
Сообщений: 13
Репутация: 10
По умолчанию

Замените
Код:

if SysUtils.Win32Platform=VER_PLATFORM_WIN32_NT then

на
Код:

if Win32Platform=VER_PLATFORM_WIN32_NT then

Проверил на Embarcadero Delphi 10.2 Community Edition - компилируется. Но результат сомнительный после компиляции данного кода на новой версии Delphi. На Borland Delphi 6/7 - никаких проблем.
Комиссар Катани вне форума   Ответить с цитированием
Старый 18.01.2019, 01:07   #23
falsebegin
Форумчанин
 
Регистрация: 23.11.2016
Сообщений: 52
Репутация: 10
По умолчанию да вроде бы поставил все правильно но в место Label1 показывает кресты

1111.jpg
falsebegin вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в ubuntu отключить авто монтирование жестких дисков? youknow Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 3 17.07.2017 14:54
ребята, может кто делал, или знает как описать унимодальную фукнцию Alenka63 Microsoft Office Excel 2 14.10.2016 16:25
Как получить список жестких дисков? Glaciuse Win Api 10 06.02.2014 15:07
Получить имена физических дисков. Ant-kul C# (си шарп) 2 16.12.2012 15:08
Как извлечь музыку из файла или может кто знает, что играет? Marsel737 Свободное общение 13 16.08.2011 20:53


01:34.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru