Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Информация о железе (http://forum.oszone.net/showthread.php?t=208409)

volod3000 06-06-2011 23:45 1689650

Информация о железе
 
Здравствуйте !

Есть ли какая либо возможность узнать , программным путем,
модель монитора (не через реестр, т.к. нет драйвера).

Перерыл почти весь инет , кроме как через реестр, ничего нет .

Вроде говорят можно как-то воспользоваться
DLL-ми программы AIDA64(бывший EVEREST).

Но вопрос -> какой DLL, какая функция, какие параметры этой функции...
Правда вытянуть названия функций можно, а вот параметры этой функции нет.
Может у кого есть HELP по функциям AIDA64 ?

Busla 07-06-2011 09:14 1689770

volod3000, нет драйвера чего? видеокарты?
в скриптах не так давно обсуждалось определение монитора

volod3000 08-06-2011 00:09 1690337

Вот , бродя по просторам инета , нашел интересное решение определение параметров монитора, посредством EDID data format :

Код:


type
  TEDIDHeader = record
    Padding : array[1..8] of Byte;
    VendorID : Word; // bits 14 - 10 first letter (01h='A', 02h='B', etc.)
                        // bits 9 - 5 second letter
                        // bits 4 - 0 third letter
    ProductID : Word;
    SerialNo : DWord; // serial number or FFFFFFFFh
                        // for "MAG", subtract 7000000 to get actual serial number
                        // for "OQI", subtract 456150000
                        // for "PHL", subtract ???
                        // for "VSC", subtract 640000000
    ManufactureWeek : Byte;
    ManufactureYear : Byte; // manufacture year - 1990
    EDIDversion : Byte;
    EDIDrevision : Byte;
    VideoInputType : Byte;
    SizeHorizontal : Byte; // in cm
    SizeVertical : Byte; // in cm
    GammaFactor : Byte; // gamma factor (gamma = 1.0 + factor/100, so max = 3.55)
    DPMSflags : Byte;
    ChromaXYgreenred : Byte;
    ChromaXYwhiteblue : Byte;
    ChromaXred : Byte;
    ChromaYred : Byte;
    ChromaXgreen : Byte;
    ChromaYgreen : Byte;
    ChromaXblue : Byte;
    ChromaYblue : Byte;
    ChromaXwhite : Byte;
    ChromaYwhite : Byte;
    EstablishedTimings1 : Byte;
    EstablishedTimings2 : Byte;
    ManufacturersReservedTiming : Byte;
    StandardTimingIdentification : array[1..8] Of Word;
    DetailedTimingDescription1 : array[1..18] Of Byte;
    DetailedTimingDescription2 : array[1..18] Of Byte;
    DetailedTimingDescription3 : array[1..18] Of Byte;
    DetailedTimingDescription4 : array[1..18] Of Byte;
    Unused : Byte;
    Checksum : Byte;
  end;



procedure TForm1.Button1Click(Sender: TObject);
var
 reg : TRegistry;
 EDID : TEDIDHeader;
begin
 reg := TRegistry.Create;
 with reg do
 begin
  Rootkey:=HKEY_LOCAL_MACHINE; //Hauptschlüssel
  if RegistryConnect('\\'+GetEnvironmentVariable('COMPUTERNAME')) = True then
  begin
    if OpenKeyReadOnly('SYSTEM\ControlSet002\Enum\DISPLAY\GSM5776\5&48c6b31&0&UID258\Device Parameters') then
    begin
      ReadBinaryData('EDID', EDID, SizeOf(EDID));
    end;
  end;
 end;
 reg.Free;

 memo.Clear;
 memo.Lines.Add(IntToStr(EDID.VendorID));
 memo.Lines.Add(IntToStr(EDID.ProductID));
 memo.Lines.Add(IntToStr(EDID.SerialNo));
end;

Все работает, но есть две проблемы :

- адрес Device Parameters может меняться (как это решить ?)

- как определить (какой добавить параметр в record) имя (модель) монитора ?


Время: 03:37.

Время: 03:37.
© OSzone.net 2001-