hi folks,
wie findet man eigentlich die installierte directx version heraus, ohne die registry abrufen zu müssen?? gibt es da eine totsichere methode?!
vielen dank im vorraus!
c ya,
nco2k
DirectX Version ohne Registry herausfinden??
- Andre
- PureBasic Team
- Beiträge: 1755
- Registriert: 11.09.2004 16:35
- Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10 - Wohnort: Saxony / Deutscheinsiedel
- Kontaktdaten:
Eigentlich sollte die Version von DirectX doch auch aus den entsprechenden DLLs zu ermitteln sein. Dafür könnte dann folgender Code nützlich sein:
Musst jetzt "bloß" noch die richtige(n) zu prüfende(n) DLL herausfinden...
Code: Alles auswählen
; English forum: http://purebasic.myforums.net/viewtopic.php?t=10723&highlight=
; Author. MrCoder
; Date: 03. May 2004
; Get the version of a Windows DLL.
; Made by Chris Way (03/05/2004)
; More informations here:
; http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/structures/dllversioninfo.asp
; Works if the DLL contains a function called "DllGetVersion", like all/most of the MS ones...
Structure DllVersionInfo
cbSize.l
dwMajorVersion.l
dwMinorVersion.l
dwBuildNumber.l
dwPlatformID.l
EndStructure
dll.DllVersionInfo\cbSize = SizeOf(DllVersionInfo)
OpenLibrary(0,"Shell32.dll") ; The DLL to get the version of
CallFunction(0,"DllGetVersion",@dll)
OpenConsole()
PrintN(Str(dll\dwMajorVersion))
PrintN(Str(dll\dwMinorVersion))
PrintN(Str(dll\dwBuildNumber))
PrintN(Str(dll\dwPlatformID))
Input()
CloseConsole()
- Falko
- Admin
- Beiträge: 3531
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.0 - Kontaktdaten:
Dies müßte die Funktion sein, die du suchst.
Hab zwar versucht, das in PB zu machen, aber da bekomme ich schlichtweg einen Linkerfehler angezeigt. Wenn du es hinkriegst, würde ich mich freuen, wenn du ein Beispiel mit Direktx posten könntest.
MfG Falko
Ein Beispiel in C sieht dann so aus.INT DirectXSetupGetVersion( DWORD *pdwVersion,
DWORD *pdwRevision
);
Code: Alles auswählen
DWORD dwVersion;
DWORD dwRevision;
if (DirectXSetupGetVersion(&dwVersion, &dwRevision))
{
printf("DirectX version is %d.%d.%d.%d\n",
HIWORD(dwVersion), LOWORD(dwVersion),
HIWORD(dwRevision), LOWORD(dwRevision));
}
Hab zwar versucht, das in PB zu machen, aber da bekomme ich schlichtweg einen Linkerfehler angezeigt. Wenn du es hinkriegst, würde ich mich freuen, wenn du ein Beispiel mit Direktx posten könntest.
MfG Falko