Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Jak zjistit verzi DirectX na instal CD Windows bez nutnosti instalace?

Hola,
Potřebuju vědět, kde (z ceho) zjistím verzi integrovaného DirectX na install CD Windows 2000( bez i s SP)a XP bez nutnosti jejich instalace,.. když všechny soubory integrovaného DX mají jako verzi uvedeno číslo odvozené od verze OS. Nainstalované to není, takže dxdiag.exe, sonda v registrech apod je v tomhle případě k ničemu.

(třeba integrovaný dxdiag.exe ve W2000 má jako verzi souboru uvedeno 5.0.2134.1, d3dim.dll má verzi souboru 5.0.2180.1) a přitom verze DX má být 4.07.00.0700 čili DirectX 7.0 ze 17.2.2000 - existuje snad nějakej převodní vzorec?

Předpokládám, že je číslo verze DX, tak jak se zobrazi v dxdiag na úvodní obrazovce , zapsaný v nějakým souboru , ale nevím v kterým ( přesněj řečeno jsem na něj zatím nenarazil ) a patrne neumim hledat na netu, protože jsem se k této věci nikde výsledku nedopídil.
Nepotřebuji vědět verzi integrovaného DirectX - to si najdu lehce na netu, potřebuju jen vědět, v kterém souboru ji najdu zapsanou nebo kde a podle čeho se na instalačce dozvím, o jakou verzi DX se tam jedná.

Díky za rady.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Je to jednoduchý - všechno je založený na inf souborech. Stáhnul jsem si: ftp.stahuj.cz Uložil a ot…
kmochna 03.01.2010 01:51
kmochna
Ök, díky,ale dxver.inf ani dxnt.inf na instalačce nejsou(ani v komprimovanem tvaru dxver.in_, dxnt.i…
hrom99 03.01.2010 03:01
hrom99
Tyhle historický verze už u sebe nemám. Instalace by měli proběhnout pomocí inf souborů. Co cab soub…
kmochna 03.01.2010 03:50
kmochna
Projel jsem to celý (CABy i zkomprimovaný archivy *.zi_(zip),CABy obsažený v zkomprimovaných *.ms_(m…
hrom99 04.01.2010 08:51
hrom99
vo w2k bola integrovaná dx7.0a verzia,ktorá sa volne nedistribuovala a na tom nič nezmenila žiadna v… nový
audax 04.01.2010 13:06
audax
w2k nemám. na mých XP: E:\I386\HIVESFT.INF HKLM,"SOFTWARE\Microsoft\DirectX","InstalledVersion",0x… nový
kmochna 04.01.2010 13:40
kmochna
:puff::beer: Takže začnu tímhle: 1/gameport.inf, ksfilter.inf a další: DriverVer=03/08/2000,5.00.219… nový
hrom99 05.01.2010 03:44
hrom99
Není zač. ;-) inf tím klíčem zapisuje do registry. Takže jestli bys hledal aktuální verzi nainstalov… poslední
kmochna 05.01.2010 13:12
kmochna

Je to jednoduchý - všechno je založený na inf souborech.

Stáhnul jsem si: ftp.stahuj.cz
Uložil a otevřel v 7zip
otevřu si v notepadu soubor dxnt.inf
a dole čtu:

[Strings]
Msft = "Microsoft"
ExceptionClassDesc = "DirectX 8.1 for Windows 2000"
DiskName = "DirectX 8.1 Installation Disk"

ev. dxver.inf

HKLM,"%DX%","Version",,"4.08.01.0881"

viz první link na wiki

Pokud máš instalačku systému, tak pokoukni po inf souborech (seznam máš třeba v uvedený instalačce)
Verze knihoven v tomto případě není důležitá, důležitý jsou text. instalátory (inf), tam to bude napsaný.

Ök, díky,ale dxver.inf ani dxnt.inf na instalačce nejsou(ani v komprimovanem tvaru dxver.in_, dxnt.in_)- je možný, že se vytvoří až po instalaci a že jsou na CD někde důkladnou microsoftí kompresí zkomprimovány-tedy před instalací nečitelné. Ve verzi DirectX, která je volně ke stažení zjistit verzi DirectX jde normálně, ale v implementované verzi bude asi se zjištěním problém, protože každej sobor DX se tam tváří, jako kterejkoliv jinej soubor dané verze OS.

Instalačku W2000 mám, ale jediný,co jsem na instalačce našel při hledání textu ve všech souborech za použití klíčovýho slova "DirectX"(ostatní klíčový slova jako d3d,dx, 4.07,..taky bez úspěchu) a při zapnutým prohledávání archívů bylo tohle:

\I386\WIN9XUPG\Migdb.inf

[OsFiles]
Microsoft DirectX Diagnostics,, dxdiag.exe , COMPANYNAME("Microsoft Corporation"), PRODUCTVERSION("4.06.00.0318")
Microsoft DirectX Drivers

a to neni ono, protože tohle je verze DirectX 6.0 pro W98 a přímo W2000 se netýká. Na CD by měla být verze 4.07.00.0700, čili DirectX7.0 z února 2000 (datum vydání W2000),ale BILL ji asi solidně zamaskoval.:-)
Nějakej další nápad? Taky si myslím, že to tam někde musí být zapsaný,ale kde ještě?

Tyhle historický verze už u sebe nemám. Instalace by měli proběhnout pomocí inf souborů. Co cab soubory, nejsou tam? Mohlo by to být v nich (je to archiv). Ten odkaz se týká dxdiag - co si pamatuju na XP bez SP, tak tam taky byla stařičká verze dxdiag.

No zkus to přímočaře. Stáhni DX7, mrkni po souborech a jdi je vyhledávat, inf by tam měli být taky. Zahrň hledání i na cab soubory a samorozbalovací exe. Taky můžeš použít Start/Spustit/msconfig a tlačítko rozbalit soubor. Na starých w9x, kdy se to řešilo cab archivy bylo v rootu instalačky soubor se seznamem souborů v archivech, jak je to na w2k nemám tucha. Každopádně verze DX obsažená v instalačce bude v textu a ideálně v instalátoru = inf

Projel jsem to celý (CABy i zkomprimovaný archivy *.zi_(zip),CABy obsažený v zkomprimovaných *.ms_(msi) souborech MSI instalátoru), dekomprimoval všechny *.in_(inf) soubory co jsem našel a ostatní ms archívy, který se mi povedlo nějak otevřít a nic, kde by byla verze uvedena. Dxver.inf tam neni a právě v tomto souboru je uvedena verze v normálním balíku DirectX7. Opravdu je to tam asi integrovany jako kterejkoliv jinej soubor OS a v průběhu či na závěr instalace W2000 se patrně informace / či inf soubor / o implementované verzi DX odněkud vygeneruje a zapíše do registru. Verze DX na instalačce Windows 2000 asi manuálně zjistit nepůjde / dekompilovat to určitě nebudu :-D/.

vo w2k bola integrovaná dx7.0a verzia,ktorá sa volne nedistribuovala a na tom nič nezmenila žiadna verzia service packu,verzie jednotlivých integrovaných dx súčastí sú v samostatných *.inf súboroch[bda.inf,ks.inf,kscaptur.inf,gameport.inf, ksfilter.inf,dshowext.inf......],nie v jednom alebo nejakom súhrnnom súbore/súboroch,ako to má kompletná directX redistributable/redistributable SDK inštalačka,súhrnné *.inf súbory pribudnú do systému až po inštalácii nejakej novšej verzie directX,ktorá inovuje pôvodnú integrovanú a informačné súbory pribudnú v INF zložke a v zložkách DRIVERS/DriverStore,okrem toho korektné verzie súborov sa vygenerujú a kontrolujú aj pomocou systémových certifikátov a *.man/*.cat súborov,z ktorých sa certifikáty extrahujú pri inštalácii a ukladajú do registrov a systému a zapisujú aj do súborov INFCACHE.*

w2k nemám. na mých XP:

E:\I386\HIVESFT.INF

HKLM,"SOFTWARE\Microsoft\DirectX","InstalledVersion",0x00030001,\00,00,00,09,00,00,00,00
HKLM,"SOFTWARE\Microsoft\DirectX","Version",0x00000000,"4.09.00.0904"

Jestli to hledáš ručně, tak to tě lituju: PSPad - hledat v souborech / DirectX

Každopádně verze DX obsažená v instalačce bude v textu a ideálně v instalátoru = inf

tož tak. Neříkal jsem že to bude v dxver.inf ale v nějakým inf.:-p

:puff::beer:
Takže začnu tímhle:
1/gameport.inf, ksfilter.inf a další: DriverVer=03/08/2000,5.00.2195.1 => tudy cesta nevedla, protože to nejsou verze DX, ale verze OS
2/DirectX 7.0 tam opravdu je:

HKLM,"SOFTWARE\Microsoft\DirectX","Version",0x0000 0000,"4.07.00.0700"
(verze 7.0a by měla číslo 4.07.00.0716 (RC0))

a verze OS tak sedí
Prodspec.ini:
[SMS Inventory Identification]
Version=1.0
[Product Specification]
Product=Windows 2000 Professional

Version=5.0
Localization=Czech
ServicePackNumber=0
BitVersion=40
[Version]
DriverVer=03/08/2000,5.00.2195.1
(teda až na to datum, ale je to CZ verze, tak předpokládám, že vyšla o něco pozděj než verze EN)

3/S těmi certifikáty a extrakcí verze do souborů až v průběhu instalace jsem si to myslel taky - zkusím w2k někdy až bude čas nahodit a uvidíme.

4/A teď k tomu, jak jsem dříve hledal a nenašel a proč jsem nenašel a ani najít nemohl...:-)

Zkusil jsem na kmochnovu radu ten PSPad a hledaný text byl ve zmíněném souboru objeven téměř okamžitě...Kde byl tedy problém?
Používal jsem k hledání textu Total Commander (hledat to manuálně soubor po souboru,...asi bych u toho zešedivěl - v \I386 je celkem 4004 souboru ) a zapomněl jsem (lépe řečeno nenapadlo mě) zatrhnout v okně u voleb hledání textu, volbu "unicode". Při zadání čísla verze DX ve tvaru(bez uvozovek): "4.07.00.0700" to nic takovýho v souborech nenašlo,když jsem číslo hodil do uvozovek, tak taky ne, s klíčovým slovem "directx" to bylo taky mimo....po zatrhnutí "unicode" to hned vyhodilo v případě zadaného čísla verze jedinej soubor - HIVESFT.INF, ve kterým opravdu zápis čísla verze DirectX byl. Se slovem "directx" se to taky hned našlo .Kódování UNICODE!
Všechno zlý je ale k něčemu dobrý - taková zkušenost navíc se hodí.

Takže kmochna, díky moc za trpělivost a za rady - hlavně za tu poslední, protože kdyby tady ještě dnes nebyla, tak jsem se už na to chystal s konečnou platností vy*** :)):beer: Díky!

Není zač. ;-) inf tím klíčem zapisuje do registry. Takže jestli bys hledal aktuální verzi nainstalovaného DX v nainstalovaném systému bude to podle hodnoty:
¨

HKLM,"SOFTWARE\Microsoft\DirectX","Version",0x0000 0000,"4.07.00.0700"

v registry HKLM\SOFTWARE\Microsoft\DirectX hodnota Version.

Zpět do poradny Odpovědět na původní otázku Nahoru