@Darexu

Как получить серийный номер жесткого диска через Win API на Lua?

local ffi = require("ffi")
ffi.cdef[[
int __stdcall GetVolumeInformationA(
    const char* lpRootPathName,
    char* lpVolumeNameBuffer,
    uint32_t nVolumeNameSize,
    uint32_t* lpVolumeSerialNumber,
    uint32_t* lpMaximumComponentLength,
    uint32_t* lpFileSystemFlags,
    char* lpFileSystemNameBuffer,
    uint32_t nFileSystemNameSize
);
]]
local serial = ffi.new("unsigned long[1]", 0)
ffi.C.GetVolumeInformationA(nil, nil, 0, serial, nil, nil, nil, 0)
serial1 = serial[0]

Вот так можно получить серийный номер логического диска, а как можно получить серийный номер жесткого диска?
  • Вопрос задан
  • 454 просмотра
Пригласить эксперта
Ответы на вопрос 1
Zettabyte
@Zettabyte
Проф. восстановление данных ▪ Вопрос? См. профиль
Через WinAPI на чистом Lua я думаю, что получится вряд ли. А вот с использованием какого-то модуля, думаю, что возможно. Но тут уже вопрос к API модуля.

И ещё: если вам интересно сочетание "работа с жёсткими дисками + LUA", то обязательно посмотрите на R.tester.

Мы встроили интерпретатор LUA внутрь программы и диагностика накопителей осуществляется с помощью правил, описанных в виде программного кода.

Проект вовсю развивается и нам ещё предстоит написать подробное руководство о том, как создавать свои скрипты и правила, но программой уже можно пользоваться прямо сейчас. Акцент специально сделан на безопасность работы, так что чего-то испортить или угробить не выйдет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы