Scott Ritchie dnes nahrál do repozitáře pro Ubuntu Maverick
gnome-exe-thumbnailer 0.7.
Kromě spousty oprav a podpory tzv. "Vista" ikon (hromádka PNG komprimovaných do jednoho souboru, vyžaduje icoutils >= 0.29.1) přináší tato verze základní podporu náhledů .msi souborů. Základní v tom smyslu, že informace o verzi se berou z výstupu příkazu „file SOUBOR.msi“, což jsou metadata typu Autor, Předmět, atd., připojitelná prakticky k jakémukoli souboru ve Windows. Tato metadata jsou velmi často neúplná, ale hlavně ze své podstaty nespolehlivá, protože mohou být snadno libovolně měněna. Skutečné číslo verze je ukryto v .msi balíčku (což je v podstatě jednoduchá relační databáze) v tabulce Property v klíči ProductVersion. V současnosti mám plně funkční pracovní verzi thumbnaileru, která jej dokáže vytáhnou na světlo boží, má to však dva háčky – ke správné funkci musí mít uživatel nainstalováno a zkonfigurováno Wine a, což je ten větší háček, wsh57, neboli Microsoft Windows Script Host 5.7. ProductVersion totiž prozatím tahám následujícím Visual Basic skriptem:
Dim WI, DB, View, Record
Set WI = CreateObject("WindowsInstaller.Installer")
Set DB = WI.OpenDatabase("$INPUTFILE",0)
Set View = DB.OpenView("SELECT Value FROM Property WHERE Property = 'ProductVersion'")
View.Execute
Wscript.Echo View.Fetch.StringData(1)
Je to bez ošetření chyb atd., aby bylo na první pohled jasno vo co go.
Protože nemůžu bláhově předpokládat, že každý uživatel Wine bude mít nainstalovaný wsh57, hledám zoufale někoho, kdo by toto uměl napsat v C/C++ s msi.dll jako (pokud možno) jedinou závislostí a zkompilovat do univerzálního exe souboru, který by pak thumbnailer mohl využít. Prostě na standardní výstup vypsat ProductVersion daného MSI balíčku, nic víc, nic míň.
Pokud by se mezi návštěvníky fóra našel někdo schopný a ochotný se tohoto ujmout, čeká jej sláva nehynoucí a pocit dobře vykonané práce.
Pro začátek, z pohledu Wine:
http://wiki.winehq.org/MicrosoftInstallerAle zejména:
http://msdn.microsoft.com/en-us/library/aa370133(VS.85).aspxA pro nakouknutí do balíčku:
http://www.technipages.com/download-orca-msi-editor.html (w32 aplikace)
Pokud by snad někdo dokázal vytáhnout ProductVersion z MSI balíčku bez pomoci Wine, mohou mu být s klidem přiznány nadpřirozené schopnosti. Sám jsem to zkoušel po rozbalení balíčku pomocí 7z (schválně si to zkuste, obsah vás nejspíše překvapí stejně jako fakt, že to vůbec jde) a manipulací se syrovými daty, ale nebyl jsem zaboha schopný spárovat správně klíč a hodnotu, které jsou napřeskáčku obsaženy v souboru „!_StringData“ a odkazovány ze „!_StringPool“.
Mnoho štěstí dalším odvážlivcům.