Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

серавно ругается теперь на строках
// 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, 17:42   #22
Комиссар Катани
Пользователь
 
Регистрация: 29.12.2012
Сообщений: 21
По умолчанию

Замените
Код:
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, 00:07   #23
falsebegin
Форумчанин
 
Регистрация: 23.11.2016
Сообщений: 100
По умолчанию да вроде бы поставил все правильно но в место Label1 показывает кресты

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в ubuntu отключить авто монтирование жестких дисков? youknow Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 3 17.07.2017 13:54
ребята, может кто делал, или знает как описать унимодальную фукнцию Alenka63 Microsoft Office Excel 2 14.10.2016 15: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