20.05.2012: Dimpel's Addons für WinXP 32bit (Stand 20.05.2012)
21.05.2012: Unantastbar's SFX-Archive (Stand 21.05.2012)
14.04.2012: Ganesha-UpdatePackSP3-inkl.IE8-2012-04-14
Quoted
Moin.
Slipstreaming ist mein erklärtes Lieblingsthema geworden, wobei ich sagen muss das ich vielleicht nicht der beste Lehrmeister dafür bin.
Der grösste Vorteil ist, das man keine Setup braucht und so viel Platz spart.
Ich hab mir das alles selbst beigebracht und weiß noch lang nicht alles.
Vor allem über den Aufbau von Inffiles gibt es sehr wenig, schon garnicht auf deutsch.
Vorne weg ein paar Links die ich immer nutze:
MS Links: Synthax Regeln für INF files , Inf file sectionen und directiven
Goshs' Homepage - uralt aber gut
Grad noch gefunden und wichtig : Creating an inf file
Verstanden hast du das schon richtig. Es gibt im Prinzip 2 etwas unetrschiedliche Methoden. Jede hat Vor und Nachteile.
1.Alle Dateien und Infs einzeln zu belassen und einzeln über Einträge der entries.ini kopieren lassen (also durch Einträge in dosnet.inf und txtsetup.sif).
Als Beispiel mal mein AudioShellExtension Pack:
Benötigt werden DLLs und eine INF für das Registrieren der DLL und um evtl Verknüpfungen anzulegen. Also muß in der entries folgendes stehen - Kopf spar ich mir :
![]()
Source code
1 2 3 4 5 6 7 8 9 10 11 12 [sysoc] AudioShell=ocgen.dll,OcEntry,AudioExt.inf,HIDE,7 [dosnet_files] d1,AudioExt.inf d1,AudioExt.dll d1,lang_de.ini [txtsetup_files] AudioExt.inf = 1,,,,,,,20,0,0 AudioExt.dll = 1,,,,,,,30,0,0,AudioShellExt.dll Lang_de.ini = 1,,,,,,,30,0,0,language.de.ini
Einträge werden deshalb umbenannt, damit eine 8.3 Dateinamen Kompatibilität erhalten bleibt. So dass die Sourcefiles auf CD immer 8.3 sind. Auch die Länge der Endung ist wichtig z.B. bei *.msstyle.
30 ist die txtsetup ID für system32\ShellExt, wofür mir die genaue DirID nicht bekannt ist, also nutze ich 11 für system32 als Ausgangspfad:
![]()
Source code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 [Version] Signature=$Windows NT$ [Optional Components] AudioExt [AudioExt] OptionDesc ="AudioShellExt" Tip ="AudioShellExt" Modes =0,1,2,3 RegisterDlls =DLLs.Register [DLLs.Register] 11,ShellExt,AudioShellExt.dll,1
2. Die Dateien, gerade wenn es viele sind, in eine CAB zu packen und so nur CAB und INF in der entries angeben zu müssen ist eine weitere Möglichkeit, die ich bei einem speziellen Foxit Pack nutze, das schon etwas komplizierter aufgebaut ist und auch Verknüpfungen sowie Registry Werte erstellt:
![]()
Source code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 [filenames] addonscab =Foxit2.cab addonsinf =Foxit2.inf [sysoc] Foxit=ocgen.dll,OcEntry,%addonsinf%,HIDE,7 [dosnet_files] d1,%addonscab% d1,%addonsinf% [txtsetup_files] %addonscab% =100,,,,,,_x,,3,3 %addonsinf% =100,,,,,,,20,0,0
Das _x bei der CAB bedeutet, das die CAB wärend des XP/w2k/w2k3 Setups nicht entpackt wird, sondern auch dort als CAB liegt. Wichtig! BTW : 100 steht für Service Pack Files und 1 für original Files.
Achja, noch ein Vorteil ist, das innerhalb der CAB keine 8.3 Beschränkung gilt. Jedenfalls nicht das ich wüsste.
Die INF ist wie folgt aufgebaut:
![]()
Source code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91[Version] Signature=$Windows NT$ ;[DefaultInstall]; Wenn eine INF auch per Rechtsklick->installieren ausführbar sein soll, muss dieser Teil hinzu ;OptionDesc ="Foxit 2.0 PDF Reader Pack" ;Tip ="Foxit 2.0" ;Modes =0,1,2,3 ;AddReg =Foxit.AddReg ;CopyFiles =Copyfoxit ;ProfileItems =Foxit.AddShortcut, Eula.AddShortcut [Optional Components] Foxit2 [Foxit2] OptionDesc ="Foxit 2.0 PDF Reader Pack" Tip ="Foxit 2.0" Modes =0,1,2,3 AddReg =Foxit.AddReg;Abschnitt indem regkeys hinzugefügt werden CopyFiles =Copyfoxit ;Abschnitt in dem Dateien kopiert werden ProfileItems =Foxit.AddShortcut, Eula.AddShortcut;Abschnitt in dem Verknüofungen erstellt werden [SourceDisksNames.x86] 1 ="FoxitFiles","Foxit2.cab",,"i386";definiert u.a. Name und Ort der CAB wo die Dateien gesucht werden [DestinationDirs] Copyfoxit =16422,%FOXIT%;definiert Zielort für den kopiervorgang [SourceDisksFiles];definiert inhalt des CAB FoxitReader.exe =1 lang_de_de.xml =1 rd_eula.htm =1 js.dll =1 Foxit_JS_ExObjects.dll =1 foxitpdfreaderctrl.dll =1 fpdfcjk.bin =1 fxdecod1.dll =1 [Copyfoxit];definiert Dateien die kopiert werden sollen Foxit_JS_ExObjects.dll;Javascript foxitpdfreaderctrl.dll;kann in Firefox\plugins als Link zu foxit verwendet werden FoxitReader.exe ;Mainexe fpdfcjk.bin ;Javascript fxdecod1.dll ;Javascript js.dll ;Javascript lang_de_de.xml ;Sprachdatei rd_eula.htm ;Eula ;zielname,temporärname,ursprungsname -> so kann auch umbenannt werden z.B. royale.theme,royale,roy.the ; wobei der temp name auch weggelassen werden kann -> royale.theme,,roy.the [Foxit.AddShortcut] Name ="Foxit";Name der Verknüpfung SubDir ="Foxit Reader";Unterordner, also in diesem Fall Startmenü\Programme\Foxit Reader CmdLine =16422,%FOXIT%,FoxitReader.exe;Befehl der ausgeführt wird bei klick WorkingDir =16422,%FOXIT%; Ordner in dem er ausgeführt wird InfoTip ="Foxit Reader 2.0 - kompakter PDF Reader"; infotip wenn man mit maus über Link fährt [Eula.AddShortcut] Name ="EULA" SubDir ="Foxit Reader" CmdLine =16422,%FOXIT%,rd_eula.htm WorkingDir =16422,%FOXIT% InfoTip ="End User License Agreement" [Foxit.AddReg] HKCR,".pdf",,,"%FXDOC%" HKCR,".pdf","Content Type",,"application/pdf" HKCR,"CLSID\%CLSID%",,,"PDF Document" HKCR,"CLSID\%CLSID%\AuxUserType\2" HKCR,"CLSID\%CLSID%\AuxUserType\3",,,"Foxit Reader" HKCR,"CLSID\%CLSID%\DefaultExtension",,,".pdf, PDF Files(*.pdf)" HKCR,"CLSID\%CLSID%\DefaultIcon",,,"%24%\PROGRA~1\%FOXIT%\FoxitReader.exe,1" HKCR,"CLSID\%CLSID%\InprocHandler32",,,"ole32.dll" HKCR,"CLSID\%CLSID%\LocalServer32" HKCR,"CLSID\%CLSID%\ProgID",,,"%FXDOC%" HKCR,"%FXDOC%",,,"PDF Document" HKCR,"%FXDOC%","BrowseInPlace",,"1" HKCR,"%FXDOC%\CLSID" HKCR,"%FXDOC%\DefaultIcon",,,"%24%\PROGRA~1\%FOXIT%\FoxitReader.exe,1" HKCR,"%FXDOC%\protocol\StdFileEditing\server" HKCR,"%FXDOC%\shell\open\command",,,"""%24%\PROGRA~1\%FOXIT%\FoxitReader.exe"" ""%1""" HKCR,"MIME\Database\Content Type\application/pdf","CLSID",,"%CLSID%" HKCR,"MIME\Database\Content Type\application/pdf","Extension",,".pdf" [Strings] CLSID ="{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}" FXDOC ="FoxitReader.Document" FOXIT ="Foxit2"
Wenn du den [DefaultInstall] Kopf einfach auskommentierst - was problemlos geht - dann kannst du eine erstellte INF mit dazugehöriger CAB per Rechtsklick auf dem laufenden System testen.
Logischerweise wird die CAB dann in I386 gesucht, sodass du dann aufgefordert wirst sie zu suchen. Aber dann läufts.
So, reicht erstmal glaub ich.![]()
Brauchst du nicht, denn ich habe sie eben mal für dich gesucht und hoffentlich die richtige Anleitung gefunden.irgendwo im Archiv müsste eine Art Anleitung von mir sein. Ich finde es leider einfach nicht mehr und das alles neu zu schreiben...
Quoted
Hallo!
Ich geb dir mal nen kleinen Überblick, wenn du's verstehst und dann noch weitermachen willst, sehen wir weiter.
Als erstes muß ich sagen, dass du dir natürlich einfach mal das GnLiteHotfixPack hättest anschauen sollen.
Da steht eigentlich alles drin was man wissen muß...
Der Hauptordner enthält die Dateien der Hoftixes sowie die entries.ini und die GerPack.inf, welche alle Registry Einträge enthält, die sonst bei einer normalen Installation eines Updates gesetzt werden.
Im Ordner svcpack sind alle Katalogdateien ( cat ) drin.
Zuerst musst du alle Updates - die du ja schon hast - extrahieren. Am besten in Unterordner.
Das geht entweder mit Universal Extractor oder mit dem Parameter /x ( bzw /x:C:\hotfixtemp )
Du erhälst eine Ordnerstruktur die folgendermassen aussieht:
Nicht alle Updates enthalten alle diese Unterordner. Wichtig ist sp2qfe welcher in jedem vorhanden ist.
Alle darin enthaltenen Dateien müssen in den Hauptordner des UpdatePacks, welchen du dir vorher anlegen solltest. Wenn du viele Hotfixes hast werden früher oder später Dateien doppelt vorkommen, wobei du darauf achten musst immer die neuste Version zu behalten.
Nun gehts in den Ordner Update :
Hier findest du die CAT Datei welche in den SVCPACK Ordner des Packs muß.
Auf jedenfall solltest du auch einen Blick in die update_SP2QFE.inf werfen, da sie Informationen darüber enthält, ob Dateien gelöscht werden oder zusätzliche Reg Keys hinzukommen oder auch gelöscht werden.
Diese stehen dann meist unter [Product.Add.Reg] oder eben [Product.Del.Reg]
Hierfür benötigst du natürlich ein paar Grundkenntnisse über INF Dateien.
Meist ( aber nicht immer ) ist es aber ausreichend folgende Teile aus der GerPack.inf aus dem Pack für jedes Fix zu duplizieren und eine neue Sektion damit zu erstellen wobei du natürlich die jeweilige KB Nummer tauschen mußt :
![]()
Source code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [KB911280] HKLM,"%SP3%\KB911280","Description",0,"Windows XP Hotfix - KB911280" HKLM,"%SP3%\KB911280","InstalledBy",0,"%NAME%" HKLM,"%SP3%\KB911280","InstalledDate",0,"%VERSION%" HKLM,"%SP3%\KB911280","Type",0,"Update" HKLM,"%SP3%\KB911280\Filelist\0","",0,"" HKLM,"%HF%\KB911280","Backup Dir",0,"" HKLM,"%HF%\KB911280","Comments",0,"Windows XP Hotfix - KB911280" HKLM,"%HF%\KB911280","Fix Description",0,"Windows XP Hotfix - KB911280" HKLM,"%HF%\KB911280","Installed",0x00010001,1 HKLM,"%HF%\KB911280","Installed By",0,"%NAME%" HKLM,"%HF%\KB911280","Installed On",0,"%VERSION%" HKLM,"%HF%\KB911280","Service Pack",0x10001,3 HKLM,"%HF%\KB911280","Valid",0x10001,1 HKLM,"%HF%\KB911280\File 1","Flags",0,"" HKLM,"%HF%\KB911280\File 1","New File",0,"" HKLM,"%HF%\KB911280\File 1","New Link Date",0,"" HKLM,"%HF%\KB911280\File 1","Old Link Date",0,"" HKLM,"%UI%\KB911280","DisplayName",0,"Windows XP Hotfix - KB911280" HKLM,"%UI%\KB911280","HelpLink",0,"[url='http://support.microsoft.com/?kbid=911280']http://support.microsoft.com?kbid=911280[/url]" HKLM,"%UI%\KB911280","ParentDisplayName",0,"Windows XP - Softwareupdates" HKLM,"%UI%\KB911280","ParentKeyName",0,"OperatingSystem" HKLM,"%UI%\KB911280","UninstallString",0,""
Die Variablen stehen in der [Strings] Sektion. %UI% regelt nur ob das Update unter "Software" eingetragen wird, der %HF% Key wird vom Tool HFCheck überprüft und %SP3% wird von Windows-/MicrosoftUpdate ausgelesen
![]()
Source code
1 2 3 4 5 6 7 8 9 10 [Strings] NAME = "German-nLite Hotfix Pack" VERSION = "Version 6.2006" SP3 = "SOFTWARE\Microsoft\Updates\Windows XP\SP3" HF = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix" UI = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" WMP = "SOFTWARE\Microsoft\Updates\Windows Media Player 9\SP0" MP = "SOFTWARE\Microsoft\Updates\Windows Media Player\SP0" MSRT = "SOFTWARE\Microsoft\RemovalTools\MRT" SHELLEX = "SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions"
Damit die jeweilige Sektion [KB123456] berücksichtigt wird, musst du sie ganz oben im Header unter AddReg eintragen:
![]()
Source code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [Version] Signature="$Windows NT$" [Optional Components] GNLiteHotfixPack [GNLiteHotfixPack] OptionDesc = "Hotfix Pack" Tip = "Windows XP Updates für SP2" Modes = 0,1,2,3 AddReg = KB873339, KB885626, KB885835, KB885836, KB885894, KB886185, KB886610, KB887472, KB911567, KB888113 AddReg = KB888302, KB890046, KB890859, KB891781, KB892211, KB893756, KB893803, KB896358, KB896422, KB896423 AddReg = KB896428, KB899587, KB899589, KB899591, KB900725, KB901017, KB901214, KB902400, KB904706, KB905414 AddReg = KB905749, KB896424, KB910437, KB912919, KB908519, KB901190, KB911927, KB911564, KB890830, KB911562 AddReg = KB911567, KB908531, KB898461, KB900485, KB913580, KB916281, KB917734, KB917953, KB914389, KB911280 AddReg = KB917344, KB918439, KB918766 AddReg = RunOnce.AddReg DelReg = del.KB916281 DelFiles = System32.Delfiles
Sorry, eigentlich sollte das nur ein Überblick werden und nicht so ein riesen Vortrag, aber jetzt weißt du worauf du dich einlassen willst und auch, was ich z.B. am Dienstag wieder vor mir hab...
Quoted
flash9c.ocx
FlashUtil9c.exe
NPSWF32.dll
NPSWF32_FlashUtil.exe
flashplayer.xpt
|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
[general] builddate=15.04.2007 description=für Win XP mit SP2 language=Deutsch title=German-nLite HotfixPack version=4.2007 forcelang=Deutsch website= [filenames] GNLinf=GerPack.inf [sysoc] GnLiteHotfixPack=ocgen.dll,OcEntry,%GNLinf%,HIDE,7 [dosnet_files] d1,%GNLinf% d1,FlashUt.exe d1,spcustom.dll d1,spmsg.dll d1,spuninst.exe d1,spupdsvc.exe d1,update.exe d1,updspapi.dll d1,verclsid.exe d1,msxml4.dll d1,msxml4r.dll d1,msxml6.dll d1,msxml6r.dll d1,NPSWF32.dll d1,NPSWF_Ut.exe d1,flashpl.xpt d1,xpsp3res.dll [txtsetup_files] %GNLinf% = 100,,,,,,,20,0,0 flash.ocx = 100,,,,,,,301,0,0,flash9c.ocx FlashUt.exe = 100,,,,,,,301,0,0,FlashUtil9c.exe NPSWF32.dll = 100,,,,,,,301,0,0 NPSWF_Ut.exe = 100,,,,,,,301,0,0,NPSWF32_FlashUtil.exe flashpl.xpt = 100,,,,,,,301,0,0,flashplayer.xpt spcustom.dll = 100,,,,,,,241,0,0,spcustom.dll.ref spmsg.dll = 100,,,,,,,241,0,0,spmsg.dll.ref spuninst.exe = 100,,,,,,,241,0,0,spuninst.exe.ref spupdsvc.exe = 100,,,,,,,241,0,0,spupdsvc.exe.ref update.exe = 100,,,,,,,241,0,0,update.exe.ref updspapi.dll = 100,,,,,,,241,0,0,updspapi.dll.ref verclsid.exe = 100,,,,,,,2,0,0 msxml4.dll = 100,,,,,,,2,0,0 msxml4r.dll = 100,,,,,,,2,0,0 msxml6.dll = 100,,,,,,,2,0,0 msxml6r.dll = 100,,,,,,,2,0,0 xpsp3res.dll = 100,,,,,,,2,0,0 [txtsetup_dirs] 241 = system32\PreInstall\WinSE\wxp_x86_0407_v1 301 = system32\Macromed\Flash [txtsetup_remove] flash.ocx = 100,,,,,,,,3,3 [obsolete_files] plugin.ocx [ExtraFileEdits] ieuinit.inf|%11%\plugin.ocx|;%11%\plugin.ocx|1 |
Dem kann ich mich nur anschließen, vielen DANK!
Quoted
Freudi, du hast mir so manche späte Abendstunde erträglicher gemacht - einen grossen Danke dafür!
Ich weiß aus eigener Erfahrung was für ne Friemelei das ist zu schauen welche Dateien aus welchen Fix denn nun ersetz wurden.
Hmm also langsam : Die "normalen" Packs für nLite brauchen je keinen Installer, sie ersetzen nur Dateien auf der XPCD. Sereby hat sein Pack zusätzlich so aufgebaut das es unter laufendem Win installiert werden kann. Dazu nutzt er im Prinzip die UPDATE.EXE aus den Updates aber diese ist gepatcht, sonst nimmt sie keine veränderten INFs an. Laß das mit Installer lieber erstmal.Danke für den Hinweis.
Ich erstell mir grad so ein Pack mit Windows XP Updates zum üben, was muss ich da eigentlich für einen Installer dann nehmen. Kann ich den Installer aus den Updates nehmen, oder wie sieht das aus?
Du meinst den Ordner in den Updates? In SP3 Updates heissen die SP3 Ordner sp3gdr und sp3qfe. Die QFEs (quick fix engineering) enthalten teilweise mehr Verbesserungen als die GDRs (gerneral distribution release) - nimm also die Dateien aus dem sp3qfe Ordner.Wie heißt der Ordner, den man braucht bei SP3?
Da gibt es leider keine Beschreibung bzw Referenz dazu. Einfach mal genau auf die Namen achten - sie tun meist das was im Namen steht.Ich probier momentan folgende Anleitung aus. Nun such ich eine Beschreibung von der Datei "update.inf" bei den Windows Updates.
|
|
Source code |
1 2 3 |
[DestinationDirs] System32.files=11 ; %windir%\system32 (replace if exist) CopyAlways.Cache.files=65619 ; %windir%\system32\DllCache (copy even if don't exist) |
|
|
Source code |
1 2 |
[System32.files] msxml3.dll,SP3QFE\msxml3.dll |
Du meinst wohl : Also die Datei in der alle Einträge stehen die bei der Updateinstallation abgerufen und ausgeführt werden. Wenn nicht dann kapier ich das nicht.
Quoted
Also die Updates in die alle Einträge gemacht werden, die bei der Update-Installation benötigt werden.
Hits today: 4,979 | Hits yesterday: 3,463 | Hits record: 14,378 | Hits total: 3,131,565
Forum Software: Burning Board® 3.1.7, developed by WoltLab® GmbH