![]() |
display device Info API?
Hi,
nochmal eine Frage an die API Profis :) wie kann ich den Namen der eingebauten Grafikkarte erfahren (nicht über Registry auslesen)? Ich habe diese API Funktion gefunden Win32_DisplayConfiguration ![]() aber laut MS geht sie nur mit NT/xp. Kennt einer eine andere Funktion die mir mit allen Win Versionen (win 95 muss es nicht umbedingt sein) den Namen der Grafikkarte anzeigt? |
Guck doch mal im EDH, bzw. in den bekannten Foren, nach der Funktion zum Ändern der Bildschirmauflösung usw. In der dort benutzten Strukur namens "DEVMODE", bzw. "TDeviceMode", gibt es eine "dmDeviceName"-Eigenschaft, die den Namen enthalten müsste.
Ich habe sogar mal ein entsprechendes Beispiel gesehen. Ich weiß bloß nicht mehr wo. Deswegen: schau mal nach. |
danke, werde gleich mal nachschauen
|
also beim suchen habe ich diese Struktur gefunden, aber so recht schlau werde ich nicht damit
typedef struct _devicemode { BCHAR dmDeviceName[CCHDEVICENAME]; WORD dmSpecVersion; WORD dmDriverVersion; WORD dmSize; WORD dmDriverExtra; DWORD dmFields; union { struct { short dmOrientation; short dmPaperSize; short dmPaperLength; short dmPaperWidth; short dmScale; short dmCopies; short dmDefaultSource; short dmPrintQuality; }; POINTL dmPosition; DWORD dmDisplayOrientation; DWORD dmDisplayFixedOutput; }; short dmColor; short dmDuplex; short dmYResolution; short dmTTOption; short dmCollate; BYTE dmFormName[CCHFORMNAME]; WORD dmLogPixels; DWORD dmBitsPerPel; DWORD dmPelsWidth; DWORD dmPelsHeight; union { DWORD dmDisplayFlags; DWORD dmNup; } DWORD dmDisplayFrequency; #if(WINVER >= 0x0400) DWORD dmICMMethod; DWORD dmICMIntent; DWORD dmMediaType; DWORD dmDitherType; DWORD dmReserved1; DWORD dmReserved2; #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400) DWORD dmPanningWidth; DWORD dmPanningHeight; #endif #endif /* WINVER >= 0x0400 */ } DEVMODE; |
Warum nicht? Da steht´s doch:
Code:
BCHAR dmDeviceName[CCHDEVICENAME];
|
also mein Problem ist es den String auszulesen. DevMode irgendwelche werte zuweisen ist kein Thema
function NewRes(XRes, YRes: DWORD; Frequency: Cardinal): Integer; var DevMode: TDeviceMode; begin EnumDisplaySettings(nil, 0, DevMode); DevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT or DM_DISPLAYFREQUENCY; DevMode.dmPelsWidth := XRes; DevMode.dmPelsHeight := YRes; DevMode.dmDisplayFrequency := Frequency; Result := ChangeDisplaySettings(DevMode, 0); end; aber wie schaffe ich es das DevMode.dmDeviceName einen Wert zugewiesen bekommt mit dem ich was anfangen kann? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz