W dniu 2016-07-10 o 21:55, waldek pisze:
Skąd i jak można odczytać model dysku...
Już znalazłem. W Win32.hlp oraz na stronach Microsoft oczywiście nic nie
ma. Tzn. na MS jest, ale dla standardowo myślącego człowieka jest to nie
do odszukania:
https://msdn.microsoft.com/pl-pl/library/windows/desktop/ff800835(v=vs.85).aspx
Dla ambitnych: proszę spróbować, korzystając wyłącznie z pomocy na
stronach MS, odgadnąć, jak to coś się używa. A jeszcze bardziej
hardcorowo: jak to w ogóle znaleźć...
Jeśli już ktoś dojdzie do tego, że jest to parametr parametru funkcji
DeviceIoControl, to okaże się, że Delphi nie trawi Microsoftowych
napisów, lecz jedynie odpowiadające im wartości DWORD... Ratunku,
Microsoft ich nie podaje! Na szczęście są dobrzy ludzie, którzy
udostępniają te numerki. Znając je można dowiedzieć się już wszystkiego
o dysku.
W sieci można oczywiście znaleźć gotowce, kody źródłowe modułów
zwracających nr seryjny dysku, albo model, albo pojemność, czy dane
partycji. Wszystkie źródła, które znalazłem, opierają się jednak na
znajomości przez autora kodu wartości DWORD, odpowiadającej napisowi
podanemu w dokumentacji MS.
Pytania:
1. Dlaczego Delphi nie kompiluje tych parametrów DeviceIoControl:
https://msdn.microsoft.com/pl-pl/library/windows/desktop/aa363216(v=vs.85).aspx
(linki pod koniec, w sekcji Remarks)
2. Dlaczego MS nie podaje wartości DWORD, a jeśli jednak podaje, to do
cho... inki gdzie?
3. Czy inne kompilatory, np. C++, trawią te napisy bez problemów?
waldek
P.S. Napisałem i działa, ale ile mnie to kosztowało zdrowia...
Myślałem, że obsługa dysków to standard i takie pytanie na "lang.delphi"
lub "winnt" będzie zbyt banalne. A tu pustka, tylko odsyłacze i to mocno
nietrafione... Trochę się zawiodłem. Sorry za szczerość...
|