You are not logged in.

Dear visitor, welcome to Win-Lite Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

indyjones

Peitschenmann

  • "indyjones" started this thread

Posts: 1,924

Date of registration: Sep 23rd 2008

Thanks: 123 / 59

  • Send private message

1

Wednesday, April 22nd 2009, 4:44pm

SFX erstellen mit eigenen Einstellungen

Ich bin letztens wieder gefragt worden, wie man Reg-Dateien mit in ein SFX packt. Jetzt will ich das Rad nicht neu erfinden, sondern euch hier meinen Weg aufzeigen, wie man SFX'e erstellen kann, die auch eigene Einstellungen, Verknüpfungen, Zusätze usw. beinhalten.

Hinweis 1: Achtet hier oben auf das Tabmenü bzw. die Registerkarten!
Hinweis 2: Ich gebe keine Links innerhalb der Beschreibung an, dafür gibt es die letzte Registerkarte Links bzw. die Suche bei uns im Board und im Netz.

  • Vorbereitungen

    Vorbereitungen

    Was wird benötigt?
    1. Ein minimalistisch eingerichtetes XP in einer VM (Virtuelle Maschine wie V-Box, VPC, VMWare usw.).
    2. WinRar
    3. RegShot
    4. Johny's Tools
    5. USSF (Universal-Silent-Switch-Finder)
    6. Ein bissl Kenntnisse in der Batchsprache und über die Registry.
    7. Evtl. ein besserer Dateimanager als der Explorer, z.B. der geniale TC (TotalCommander) oder der FreeCommander.

    Wozu brauchen wir das?
    1. Das XP in der VM ist genial zum Testen von Programmen. Wichtig dabei ist, daß das Programm welches wir testen wollen, noch nie vorher in der VM installiert war, sonst sind nämlich evtl. Reste der vorhergehenden Installation vorhanden, die uns das Ergebnis unter Umständen verfälschen können.
    Die VM sollte so eingerichtet sein, daß ein Austausch-Ordner (Netzlaufwerk) mit dem realem System vorhanden ist, und das wir die VM ausschalten können, ohne das Änderungen gespeichert werden, d.h. die VM wird in den Ausgangszustand zurück gesetzt, so als wäre das Testprogramm noch nie installiert gewesen.

    2. Zum Erstellen des SFX. Es geht auch mit 7zip oder anderen SFX-Tools, aber ich bevorzuge WinRar.

    3. Mit RegShot können wir Vorher-Nachher-Schnappschüße der Registry machen, um so Veränderungen bei einer Einstellungsänderung festzustellen.

    4. Johny's Tools ist eine ganze Reihe von kleinen AutiIT-Tools, die ich nicht mehr missen möchte.

    5. Mit USSF können wir von Setupdateien evtl. die Schalter zur Silent-Installation herausfinden, wenn wir vorher nicht in den Schaltertabellen fündig geworden sind.

    6. ohne Worte

    7. Macht sich einfach besser.
  • Testinstallation

    Testinstallation

    Ich beschreibe das hier am Beispiel von CD Burner XP 4.1.2.694 (kurz CDB) (ich weiß, die Version ist nicht Up to Date, spielt aber auch keine Rolle), weil bei dem Programm ist vieles dabei, was eigene Einstellungen betrifft.
    Wir nehmen uns unser Programm und schauen in den Schaltertabellen nach, ob es dort aufgeführt wird. In unserer Datenbank werden wir fündig und sehen, daß es ein Inno-Setup ist. Ideal bei Inno ist es, daß wir uns eine Installation mit

    Source code

    1
    
    /SAVEINF="filename"

    aufzeichnen können. Also VM anschmeißen, Ordner 'test' anlegen, CDB rein kopieren, erste kleine Batch, mit folg. Inhalt, schreiben:

    Source code

    1
    
    cdbxp_setup.exe /saveinf="c:\test\cdburner.inf"

    und Installation starten. Dabei die Installation jetzt ganz normal durchführen. Am Besten ist immer, sofern angeboten, ein benutzerdefiniertes Setup, da man da Einfluß hat welche Sachen installiert werden.
    Nach der Installation finden wir im Testordner eine 'cdburner.inf'. Bei mir sieht die so aus:

    Source code

    1
    2
    3
    4
    5
    6
    7
    8
    
    [Setup]
    Lang=default
    Dir=C:\Programme\CDBurnerXP
    Group=CDBurnerXP
    NoIcons=0
    SetupType=custom
    Components=main,nmsaccess,lang,lang\germany
    Tasks=desktopicon,desktopicon\common,fileassoc

    Ist eigentlich selbsterklärend, wobei ich als Sprache nur 'germany' ausgewählt habe.
    Diese 'cdburner.inf' jetzt schnell sichern (ins reale System kopieren).

    Jetzt kommen die Feinheiten
    Wir starten CDB, spielen ein bissl herum, machen unsere persönlichen Einstellungen und beenden CDB wieder. Irgendwo im System sind jetzt die Einstellungen festgehalten worden. Aber wo?
    Da das von Programm zu Programm verschieden ist, kann hier keine allgemeingültige Aussage getroffen werden. Ich zeige euch hier die mir bekannten Stellen, wo man fündig werden kann (wir suchen nach ini-, xml-, cfg-Dateien o.ä.). Hilfreich ist dabei eine Sortierung nach Datum im Dateimanager (neueste Dateien ganz oben):

    Source code

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    - Programmordner
    - %userprofile%\anwendungsdaten\<Programm- oder Herstellername>
    - %allusersprofile%\anwendungsdaten\<Programm- oder Herstellername>
    - Eigene Dateien\<Programm- oder Herstellername>
    - %systemroot% oder ein Unterordner davon (auch von %systemroot%\system32)
    - in der win.ini (bei ganz alten Proggies)
    - Registry (dort dann unter 'HKEY_CURRENT_USER\Software\<Programm- oder Herstellername>'
       oder 'HKEY_LOCAL_MACHINE\SOFTWARE\<Programm- oder Herstellername>'
       oder mit STRG-F nach Programm- oder Herstellernamen suchen

    Haben wir was gefunden, dann Ort merken oder aufschreiben und entsprechende Datei sichern. Aus der Registry die Werte exportieren. Wenn es dabei mehrere reg-Dateien gibt, kann man diese zu einer Datei zusammenfassen (der Kopf 'Windows Registry Editor Version 5.00' darf aber nur einmal am Anfang stehen).
    Bei CDB finden wir die 'user.config' (eine xml-Datei) in

    Source code

    1
    
    %userprofile%\anwendungsdaten\canneverbe_limited\cdbxpp.exe_url_0kedcsiaoyl4dtq41g23m5npnnskc4it\4.1.2.694\

    Also diese 'user.config' ins reale System kopieren.
    Außerdem gibt es einen Wert in der Registry unter: [HKEY_CURRENT_USER\Software\CDBurnerXP], den wir exportieren.

    Zusätzlich zu den Einstellungen, schaue ich jetzt noch in den Programmordner und an Orten, wo auch immer das Setup was abgelegt haben kann, und überlege was man nach der Installation noch raus schmeißen kann. In Fall CDB finde ich:

    Source code

    1
    2
    3
    4
    
    %programfiles%\cdburnerxp\download.url
    %programfiles%\cdburnerxp\forum.url
    %programfiles%\cdburnerxp\help.url
    %programfiles%\cdburnerxp\homepage.url

    Macht jetzt nicht viel Platzersparnis aus, aber es geht ums Prinzip. Also merken oder aufschreiben.

    Außerdem sortiere ich mir mein Startmenü nach eigenen Vorstellungen. Wir suchen an den bekannten Stellen nach Verknüpfungen und merken oder sichern uns diese.

    Haben wir alles zusammen, können wir die VM beenden OHNE Änderungen der VM zu übernehmen.
  • Batch erstellen

    Batch erstellen

    Wir haben jetzt folgendes (in einem Ordner 'cdburner') zusammen getragen:

    Source code

    1
    2
    3
    4
    5
    
    cdbxp_setup.exe
    user.config
    cdburner.reg
    cdburner.inf
    CDBurnerXP.lnk


    Nun schreiben wir uns im selben Ordner eine Batch, die die ganze Installation von CDB steuert. Als Rohgerüst verwende ich eine Batch, die schon eine ganze Auswahl an Befehlen beinhaltet:

    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
    
    cmdow @ /hid
    @echo off
    
    md "%programfiles%\"
    
    start /wait 
    
    xcopy "" "%programfiles%\\" /s /e /c /i /h /r /d /y
    
    attrib -s -h ""
    attrib -r ""
    
    rd /s /q "%programfiles%\"
    del "%programfiles%\" /f /q >nul
    copy "" "%programfiles%\"
    
    xcopy "" "%userprofile%\anwendungsdaten\\" /s /e /c /i /h /r /d /y
    
    xcopy "" "c:\profile\default user\anwendungsdaten\\" /s /e /c /i /h /r /d /y
    
    rd /s /q "%systemroot%\"
    
    del "%allusersprofile%\desktop\.lnk" /f /q >nul
    del "%allusersprofile%\startmenü\programme\.lnk" /f /q >nul
    del "%userprofile%\desktop\.lnk" /f /q >nul
    del "%userprofile%\startmenü\programme\.lnk" /f /q >nul
    del "%userprofile%\anwendungsdaten\microsoft\internet explorer\quick launch\.lnk" /f /q >nul
    rd /s /q "%allusersprofile%\startmenü\programme\"
    rd /s /q "%userprofile%\startmenü\programme\"
    
    md "%allusersprofile%\startmenü\programme\"
    
    copy ".lnk" "%allusersprofile%\desktop\"
    copy ".lnk" "%allusersprofile%\startmenü\programme\\"
    copy ".lnk" "%userprofile%\desktop\"
    copy ".lnk" "%userprofile%\startmenü\programme\\"
    
    regedit /s .reg
    
    sleep 5
    
    taskkill /f /im msiexec.exe
    
    exit


    Diese braucht man bloß noch mit den spezifischen Einträgen zu ergänzen, überflüssige Sachen löschen und fertig ist unsere Steuerungs-Batch:

    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
    
    cmdow @ /hid
    @echo off
    
    md %programfiles%\cdburnerxp
    
    start /wait cdbxp_setup_4.1.2.694.exe /silent /loadinf="cdburner.inf"
    
    del "%programfiles%\cdburnerxp\download.url" /f /q >nul
    del "%programfiles%\cdburnerxp\forum.url" /f /q >nul
    del "%programfiles%\cdburnerxp\help.url" /f /q >nul
    del "%programfiles%\cdburnerxp\homepage.url" /f /q >nul
    
    rd /s /q "%allusersprofile%\startmenü\programme\cdburnerxp"
    
    md "%userprofile%\anwendungsdaten\canneverbe_limited\cdbxpp.exe_url_0kedcsiaoyl4dtq41g23m5npnnskc4it\4.1.2.694\"
    md "c:\profile\default user\anwendungsdaten\canneverbe_limited\cdbxpp.exe_url_0kedcsiaoyl4dtq41g23m5npnnskc4it\4.1.2.694\"
    
    copy "user.config" "%userprofile%\anwendungsdaten\canneverbe_limited\cdbxpp.exe_url_0kedcsiaoyl4dtq41g23m5npnnskc4it\4.1.2.694\"
    copy "user.config" "c:\profile\default user\anwendungsdaten\canneverbe_limited\cdbxpp.exe_url_0kedcsiaoyl4dtq41g23m5npnnskc4it\4.1.2.694\"
    
    md "%allusersprofile%\startmenü\programme\Brenner"
    
    copy "CDBurnerXP.lnk" "%allusersprofile%\startmenü\programme\brenner\"
    
    regedit /s "cdburner.reg"
    
    exit

    Was wird in dieser Batch gemacht (Zeilennummern):
    1= DOS-Fenster wird versteckt (wenn die 'cmdow.exe' nicht systemweit erreichbar ist (Path-Variable), dann muß diese mit in unseren Ordner)
    2= Befehlsausgaben werden unterdrückt
    4= leerer Ordner wird angelegt (weil ich Kleinschreibung, wo immer es geht, bevorzuge)
    6= CDB wird Silent installiert, unter Zuhilfenahme unserer 'cdburner.inf'
    8-11= überflüssiger Kram wird gelöscht
    13= von Setup angelegter Startmenüordner wird gelöscht
    15-16= leere Ordner in den Userprofilen werden erzeugt
    18-19= 'user.config' (Einstellungen) werden kopiert
    21= eigener Ordner im Startmenü wird erstellt
    23= Verknüpfung wird in diesen Ordner kopiert
    25= reg-Datei wird silent eingelesen
    27= Batch verlassen
  • Installation testen

    Installation testen

    Um die Sache jetzt zu testen, müssen wir noch kein SFX erstellen. Wir brauchen wieder nur unsere VM zu starten und den Ordner dort rein kopieren.
    Wir starten dann die Batch und warten die Installation ab. Wenn alles, hoffentlich reibungslos, abgelaufen ist, können wir nachsehen ob alles kopiert, gelöscht, eingelesen usw. wurde. Dann starten wir CDB und prüfen ob unsere Einstellungen vorhanden sind.

    Hat alles geklappt können wir das SFX erstellen, wenn nicht, müssen wir die Fehler suchen. Diese können sein:

    Fehlerhafter Code in der Batch
    Prüfen ob alles richtig geschrieben wurde, ob die Schalter für die Befehle korrekt sind, ob alle Datei- und Ordnernamen richtig sind. Für die Syntax von DOS-Befehlen ist es hilfreich wenn man sich eine Verknüpfung erstellt, die folg. Ziel hat:

    Source code

    1
    
    %systemroot%\hh.exe ms-its:%systemroot%\help\ntcmds.chm::/ntcmds.htm

    Diese z.B. als 'cmd-Referenz' auf den Desktop legen.

    Befehle werden nicht oder fehlerhaft ausgeführt
    In der Batch die ersten beiden Zeilen remarken und an kritischen Stellen ein 'PAUSE' einbauen. So kann man lesen wo es hakt.

    Schreibweise der einzelnen Komponenten
    Prüfen ob die Dateinamen auch wirklich so heißen wie in der Batch angegeben. Besonders häufige Fehlerquelle sind die deutsche Umlaute. Deshalb muß man einen Editor verwenden der die Batch im ASCII-Code abspeichern kann. Original Notepad taugt dafür überhaupt nicht, aber in %systemroot%\system32 gibt es immer noch den uralten DOS-Editor 'edit.com', der kann das. Andere Alternativen gibt es auch zu Hauf im Netz.
    Weitere Fehlerquellen sind Leer- und Sonderzeichen in den Dateinamen. Die heruntergeladen Setups müssen nicht unbedingt

    Source code

    1
    
    !Tolles Programm von www.abc.com - progg v1.23.45 beta6 - Hersteller: ABC.exe

    heißen. Es geht auch:

    Source code

    1
    
    progg_setup.exe


    und und und
    Alle möglichen Fehler kann ich hier nicht aufzählen. Da muß jeder dann mal selbst suchen und korrigieren.

    Sind die Fehler bereinigt, wird die VM beendet OHNE Änderungen der VM zu übernehmen und ein neuer Testlauf gestartet. Und immer wieder, bis alles funzt.
  • SFX erstellen und testen

    SFX erstellen und testen

    Wie das SFX jetzt erstellt wird, brauche ich im einzelnen nicht noch einmal darzulegen, das kann man an dieser Stelle im Wiki nachlesen.

    An der Stelle: 'Trage unter "Aufruf nach dem Entpacken" ...' tragen wir nicht das Programmsetup mit Schaltern ein, sondern dort geben wir die Batch an, also 'cdburner.cmd'. Dann im nächsten Tab "Erweitert" brauchen wir keine Verknüpfung, weil das machen wir auch über unsere Batch. Im nächsten Reiter "Modi" stelle ich immer unter Anzeigemodus "Startdialog überspringen" ein, weil man dann beim Installieren auf dem Monitor was sieht (man sitzt nicht ganz so wie ein Depp davor und wartet), das ist aber Geschmackssache.
    Unser Kommentar sollte dann so aussehen:


    Nun können wir das SFX richtig testen. Dazu schmeißen wir wieder unsere VM an und installieren 1-2 Mal (oder auch 3x) das SFX. Wer möchte kann das dann auch noch auf dem realem System oder auf anderen Rechnern testen. Klappt alles, dann Voilá , unser SFX ist fertig.


    Wie das jetzt in die Installations-CD eingebunden wird, ist jedem selbst überlassen. Möglichkeiten dazu gibt es genug. Ich nenne an dieser Stelle bloß RunOneEx, WPI und Comfort-Installer.
    Übrigens können das auch die Addon-Liebhaber gut gebrauchen, denn sehr viele Addons haben als Grundlage ein SFX.
  • Hinweise

    Hinweise

    Das Ganze ist jetzt kein allgemeingültiges Rezept. Bei portablen Programmen sieht die Sache ganz anders aus, da man dort nichts installen braucht.
    Man schiebt einfach den gesicherten Ordner nach %programfiles%, kopiert Verknüpfungen und fertig. Deshalb baue ich mir auch bei größeren portablen Proggs zwei SFX'e:
    - eins, was sich gleich nach %programfiles% entpackt
    - und ein zweites, was den Rest steuert

    Beispiel OpenOffice Portable
    1. SFX: Der gesicherte Ordner '%programfiles%\openoffice' wird nach %programfiles% entpackt. Kommentar des SFX:

    Source code

    1
    2
    3
    4
    5
    6
    7
    
    ;Der folgende Kommentar enthält SFX-Skriptbefehle
    
    Path=%programfiles%
    SavePath
    Silent=2
    Overwrite=1
    Title=SFX by IndyJones


    2. SFX
    Im Quellordner befinden sich folg. gesicherte Dateien:

    Source code

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    01.06.2006  21:06            31.232 cmdow.exe
    27.06.2008  17:57             1.420 OpenOffice Datenbank.lnk
    27.06.2008  17:57             1.420 OpenOffice Excel.lnk
    27.06.2008  17:57             1.420 OpenOffice Formel.lnk
    27.06.2008  17:57             1.433 OpenOffice Präsentation.lnk
    27.06.2008  17:57             1.428 OpenOffice Starter.lnk
    27.06.2008  17:57             1.428 OpenOffice Word.lnk
    27.06.2008  16:19               796 OpenOffice Zeichnung.lnk
    15.01.2009  22:13               415 openoffice.cmd


    Die Batch 'openoffice.cmd' sieht so aus:

    Source code

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    cmdow @ /hid
    @echo off
    
    copy "OpenOffice Word.lnk" "%allusersprofile%\desktop\"
    copy "OpenOffice Excel.lnk" "%allusersprofile%\desktop\"
    copy "OpenOffice Präsentation.lnk" "%allusersprofile%\desktop\"
    
    md "%allusersprofile%\startmenü\programme\OpenOffice"
    copy *.lnk "%allusersprofile%\startmenü\programme\OpenOffice\"
    
    exit

    Dabei werden die wichtigsten Links auf den Desktop gelegt und für alles andere wird ein Ordner OpenOffice im AllUsers-Startmenü erstellt.
    Kommentar des zweiten SFX:

    Source code

    1
    2
    3
    4
    5
    6
    7
    
    ;Der folgende Kommentar enthält SFX-Skriptbefehle
    
    Setup=openoffice.cmd
    TempMode
    Silent=2
    Overwrite=1
    Title=SFX by IndyJones

    Vorteil der Sache mit 2 SFX'e ist, daß das erste gleich an der richtigen Stelle entpackt wird, es muß also nichts mehr kopiert, verschoben oder was auch immer, werden und das zweite, sehr viel kleinere, SFX steuert Einstellungen, Verknüpfungen usw..


    Beispiel Firefox
    Immer wieder wird ein perfekt eingerichteter Firefox, kurz FF, gewünscht. Dazu folg. Vorgehensweise.
    Man installiert sich seinen FF ganz normal, macht seine persönlichen Einstellungen und installiert auch alle benötigten Addons bzw. Erweiterungen. Alle Einstellungen vom FF werden unter:

    Source code

    1
    
    %userprofile%\anwendungsdaten\mozilla

    gespeichert. Der Ordner beinhaltet auch die Lesezeichen. Also diesen Ordner nach perfekter Einrichtung sichern.
    Schiebt man diesen Ordner dann nach einer Installation des FF an die richtige Stelle, hat man immer wieder seinen persönlichen FF.
    Hier folgt mal meine Batch zur Installation des FF:

    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
    
    cmdow @ /hid
    @echo off
    
    md %programfiles%\firefox
    
    start /wait firefox_2.0.0.20.exe /S /D=c:\programme\firefox
    
    rd "%programfiles%\firefox\extensions\talkback@mozilla.org" /s /q
    del "%programfiles%\firefox\searchplugins\amazondotcom-de.xml" /f /q
    del "%programfiles%\firefox\searchplugins\ebay-de.xml" /f /q
    del "%programfiles%\firefox\searchplugins\yahoo-de.xml" /f /q
    
    xcopy "plugins" "%programfiles%\firefox\plugins\" /s /e /c /i /h /r /d /y
    
    del "%allusersprofile%\desktop\mozilla firefox.lnk" /f /q
    del "%userprofile%\anwendungsdaten\microsoft\internet explorer\quick launch\mozilla firefox.lnk" /f /q
    rd "%allusersprofile%\startmenü\programme\mozilla firefox" /s /q
    
    md "%allusersprofile%\startmenü\programme\Internet"
    md "%allusersprofile%\startmenü\programme\Systemprogramme"
    
    copy "Firefox.lnk" "%allusersprofile%\desktop\"
    copy "Firefox.lnk" "%allusersprofile%\startmenü\programme\internet\"
    copy "Firefox (Safe-Mode).lnk" "%allusersprofile%\startmenü\programme\systemprogramme\"
    
    md %userprofile%\anwendungsdaten\mozilla
    xcopy "mozilla" "%userprofile%\anwendungsdaten\mozilla\" /s /e /c /i /h /r /d /y
    
    md "c:\profile\default user\anwendungsdaten\mozilla"
    xcopy "mozilla" "c:\profile\default user\anwendungsdaten\mozilla\" /s /e /c /i /h /r /d /y
    
    regedit /s firefox_default.reg
    
    exit

    Dabei wird in den Zeilen 8-11 (für mich) unnötige Sachen gelöscht. In Zeile 13 werden gesammelte Plugins (Flasch, Shockwave, Acrobat, WMP, usw.) kopiert.
    In Zeile 27 wird dann, ENTSCHEIDEND, das Profil für den aktuellen User kopiert und in Zeile 30 für alle weiteren User, die irgendwann mal angelegt werden.
    Übrigens ist es mit dem Profil von Thunderbird sehr ähnlich.


    Beispiel IrfanView
    Im ersten SFX wird der Ordner 'irfanview' unter %programfiles% angelegt bzw. entpackt (entsprechend zu OpenOffice). Im zweiten SFX verwende ich folg. Batch:

    Source code

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    @echo off
    
    copy ivex.ini "%systemroot%\"
    
    md "%allusersprofile%\startmenü\programme\Grafik"
    
    copy *.lnk "%allusersprofile%\startmenü\programme\grafik\"
    
    regsvr32 /s %programfiles%\irfanview\ivex.dll
    
    regedit /s "irfanview.reg"
    
    exit

    Die 'ivex.ini' ist dabei die Einstellungsdatei für die IV-Shell-Extension. Diese Extension wird dann in Zeile 9 im System registriert. Erfolg ist der, das wir im Kontextmenü von Grafikdateien folg. Optionen haben:

    Wir sehen also, selbst dll-Dateien können wir mit einer Batch im System registrieren.


    Beispiel Studio
    Studio ist ein uraltes Grafik-Proggie (1994), welches sogenannte Symbolbibliotheken (Cliparts in Form von sym-Dateien) zur Verfügung stellt. Diese kann man zur Gestaltung von Dokumenten in allen anderen Programmen verwenden.
    Das ist aber eigentlich egal. Entscheidend ist, das 1994, zu Zeiten von Win 3.1 (oder Windows für Volksgroups 3.11) noch die 'win.ini' zur Speicherung von Einstellungen verwendet wurde.
    Wie bringt man aber heutzutage Einstellungen in die 'win.ini'?
    Ganz einfach. Mithilfe von echo-Anweisungen, die man in eine Datei umleitet bzw. an diese anhängt (sogenanntes Pipelining):

    Source code

    1
    2
    3
    4
    5
    
    echo. >> %systemroot%\win.ini
    echo [GRIPS] >> %systemroot%\win.ini
    echo GripsDir=c:\progra~1\studio >> %systemroot%\win.ini
    echo GripsVer=2.0 >> %systemroot%\win.ini
    echo. >> %systemroot%\win.ini

    In der 1. und 5. Zeile wird jeweils ein Leerzeile angehangen und in den Zeilen 2-4 werden die angegebenen Zeilen in die 'win.ini' geschrieben.


    Beispiel Bootscreens
    Ich habe einmal auf einem 1-Kern-System mit dem TunuUp-Styler einen individuellen Bootscreen erstellt und einmal auf einem Mehr-Kern-System, abgespeichert als 'kernel_1.exe' bzw. 'kernel_2.exe'. Um jetzt jeweils den richtigen Kernel ins System kopieren, frage ich eine der Systemvariablen des Systems ab und entscheide anhand des Ergebnisses, welcher Kernel aktiviert werden muß. Klappt bisher wunderbar. Habe aber auch noch eine Sicherung eingebaut, mit der ich jederzeit zum Original zurückkehren kann. Hier die entsprechende Batch:

    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
    
    cmdow @ /hid
    @echo off
    
    rem sichert originale boot.ini und kopiert den Ori-Eintrag in der boot.ini als Backup
    attrib -s -h "%systemdrive%\boot.ini"
    attrib -r "%systemdrive%\boot.ini"
    copy "%systemdrive%\boot.ini" "%systemdrive%\boot_original.ini"
    attrib +r "%systemdrive%\boot_original.ini"
    attrib +s +h "%systemdrive%\boot_original.ini"
    bootcfg /copy /d "XP Prof. (Original-Kernel)" /id 1
    bootcfg /timeout 5
    
    rem kopiert neue Kernel ins System
    copy "kernel_1.exe" "%systemroot%\system32\"
    copy "kernel_2.exe" "%systemroot%\system32\"
    
    if %number_of_processors%==2 goto dual
    
    rem ----fuer Single-Prozessoren
    bootcfg /raw "/fastdetect /noexecute=alwaysoff /Kernel=kernel_1.exe" /id 1
    goto end
    
    :dual
    rem ----fuer Multi- bzw. Hyperthreadprozessoren
    bootcfg /raw "/fastdetect /noexecute=alwaysoff /Kernel=kernel_2.exe" /id 1
    goto end
    
    :end
    attrib +r "%systemdrive%\boot.ini"
    attrib +s +h "%systemdrive%\boot.ini"
    
    exit



    MSI-Installer
    Viel Installationen setzen auf den MSI-Installer (Prozeßname: msiexec.exe). Dieser Prozeß verbleibt seltsamerweise nach einer Installation im Speicher. Um nun folg. Installationen nicht in die Quere zu kommen, kille ich diesen Prozeß nach eine Wartezeit von 5 sec (Auszug aus meiner Batch zu PaintNet):

    Source code

    1
    2
    3
    
    sleep 5
    
    taskkill /f /im msiexec.exe

    Sleep ist ein Programm aus Johny's Tools und taskkill ist ein internes XP-Proggie.


    Werte aus Registry löschen
    Mit folg. Code kann man auch Werte aus der Registry löschen (Auszug aus meiner k-lite.cmd):

    Source code

    1
    2
    3
    
    reg delete "hklm\software\classes\.rpm" /v "CLSID" /f
    reg delete "hklm\software\classes\aifffile\shell\open" /v "LegacyDisable" /f
    reg delete "hklm\software\classes\asffile\shell\open" /v "LegacyDisable" /f




    So, das wären die Hinweise aus den Streifzügen durch meine SFX'e bzw. Batchdateien. Natürlich habe ich nicht alle Möglichkeiten erfasst, kann ich auch nicht, denn jedes Programm stellt andere Anforderungen. Diese Hinweise sollen nur als Vorlage bzw. als Beispiel für eure eigenen Entwicklungen dienen.
  • Links

    Links
    Hier findet ihr nicht nur Links, die zum Thema gehören, sondern auch ein paar Andere, die euch beim Weg zur eigenen XP-CD hilfreich sein können.

    Links auf German-Winlite
    Name
    Link
    Schalterdatenbank bei uns Klick
    SFX mit "SFX-Maker" Klick
    SFX mit "CreateurSFX" Klick
    SFX mit "WinRAR" Klick
    SFX und ADDON - Was ist der Unterschied? Klick
    SFX'e mit WinRAR Klick
    7Zip SFX-Creator - Erstellt 7zip SFX Archive Klick
    7Zip SFX-Extractor - Liest und ändert SFX-Optionen Klick
    Umlaute in Batchdateien Klick
    Hilfreiche Codeschnippsel für die Erstellung von Batch Scripten Klick
    RegTweaks by IndyJones Klick
    Einstellungen per "ntuser.dat" Klick
    Portable-VirtualBox v2.2.0 (Starter v3.0.7) Klick
    CI - ComfortInstaller Klick
    WPI - Windows Post Install Klick
    Johny's Tools Klick


    Links auf externe Seiten
    Name
    Link
    Schalterdatenbank auf Windows Unattend Klick
    Batch-Kurs Klick
    Batch-Infos Klick
    Windows Unattend Klick
    Unattend Windows Klick
    WPI Klick
    WinFAQ Klick
    Registry-System-Wizard Klick
    WinRar Klick
    RegShot Klick
    USSF (Universal-Silent-Switch-Finder) Klick
    cmdow Klick
    Ari's Toolz Klick
    SysInternals Suite Klick
    Nirsoft-Utilities Klick
    Dienste unter Windows Klick
    MSFN-Board Klick
    WinCert-Board Klick
    Norberts XP-Ressource Klick
    WinBoard Klick
    WinFuture Klick
    Kellys Korner Klick
    WinHelpline Klick
    WinTotal Klick
    WindowsBoard Klick
    Rund um Office Klick
    TotalCommander Klick
    FreeCommander Klick


Ich hoffe das einige von euch dieses kleine Tut gebrauchen können und wünsche viel Erfolg beim Erstellen euer SFX'e.
Gruß IndyJones
Wenn 3 Leute in einen leeren Raum gehen und 5 wieder heraus kommen, dann müssen 2 wieder rein gehen, damit der Raum leer ist.

14 registered users and 9 guests thanked already.

beatmaster

Der Addon fanatische

Posts: 2,326

Date of registration: Jan 19th 2009

Thanks: 691 / 26

  • Send private message

2

Thursday, April 23rd 2009, 5:34am

Ein dickes DANKE
und sieht shr gut aus. Das werd ich mal ausprobieren.

Gruß beatmaster *THUMBS UP* :D
"Können wir das schaffen . Jo wir schaffen das. "
Besucht mich auch in meinem Blog . Da gibts vieles rund ums Thema Tools, Windows und WinLite.

g-force

Gunnar

Posts: 11,672

Date of registration: Sep 23rd 2008

Thanks: 171 / 185

  • Send private message

3

Thursday, April 23rd 2009, 3:28pm

Das sieht wirlich KLASSE aus! *BRAVO*

Fehler habe ich noch keine gefunden.

Posts: 199

Date of registration: Apr 8th 2009

Thanks: 0 / 1

  • Send private message

4

Thursday, April 23rd 2009, 5:29pm

yep, einwandfrei :) Ein dickes Danke auch von mir. Wenn ich mal Zeit finde werde ich meine $OEM$ Struktur mal auf SFX-Archive umstellen. Ich bin übrigens genauso penibel und lasse am Ende meiner Installation die *.url und die unbenötigten Sprachdateien entfernen. $OEM$ hat eben den Vorteil, dass ich neue Programmversionen schneller austauschen kann und nicht immer neue Päckchen packen muss. Aber die SFX-Methode ist eleganter.

guenter

Muss noch dazu lernen

Posts: 18

Date of registration: Feb 6th 2010

Thanks: 8 / 17

  • Send private message

5

Wednesday, June 30th 2010, 11:04pm

Den Thread wieder Ausgrab.

Danke für diesen Thread *GAMER4* , werde versuchen nach Deiner Anleitung mal ein "SXF" zu erstellen. ;D
Gruss Günter :-)

Akron

User

Posts: 47

Date of registration: May 19th 2010

Thanks: 0 / 1

  • Send private message

6

Tuesday, July 20th 2010, 11:35am

Hallo,

ich bin seit paar Tagen am experimentieren und muss sagen die batch-Geschichte ist ja mal was feines. Nur stört mich eine Sache, gibt es irgendwie die Möglichkeit es so einzurichten das beim ausführen kein einziges Fenster startet und alles im Hintergrund abläuft? Am Anfang pop das Fenster ganz kurz auf und ist dann weg bis die Installation kurz vorm Abschluss ist. Dann pop es nochmal kurz auf. Ich möchte das jegliche erscheinen komplett unterdrücken.

indyjones

Peitschenmann

  • "indyjones" started this thread

Posts: 1,924

Date of registration: Sep 23rd 2008

Thanks: 123 / 59

  • Send private message

7

Tuesday, July 20th 2010, 6:38pm

Nein.
Die Batch startet erst einmal ganz normal, dann ist der erste Befehl: cmdow @ /hid
und bis dahin bleibt das Fenster, du nimmst das also als kurzez Aufpoppen wahr. Das gleich geschiet am Ende der Batch.
Aber alles in allem sollte das doch nicht stören.
Wenn 3 Leute in einen leeren Raum gehen und 5 wieder heraus kommen, dann müssen 2 wieder rein gehen, damit der Raum leer ist.

Brun

User

Posts: 61

Date of registration: Dec 15th 2008

Thanks: 11 / 10

  • Send private message

8

Wednesday, July 21st 2010, 11:51am

Mahlzeit


Hab gleich mal eine frage, was schreibe ich in der entreis.ini rein für eine Desktopverknüpfung ?



MfG
Brun

indyjones

Peitschenmann

  • "indyjones" started this thread

Posts: 1,924

Date of registration: Sep 23rd 2008

Thanks: 123 / 59

  • Send private message

9

Wednesday, July 21st 2010, 4:34pm

Da bringst du jetzt was durcheinander, eine entries.ini gibt es nur für Addons, hier geht es aber um SFX'e.
Und hierbei sichere ich mir meine Verknüpfungen aus einer Testinstallation und schiebe sie per Batch an die entspr. Stellen.
Wenn 3 Leute in einen leeren Raum gehen und 5 wieder heraus kommen, dann müssen 2 wieder rein gehen, damit der Raum leer ist.

Akron

User

Posts: 47

Date of registration: May 19th 2010

Thanks: 0 / 1

  • Send private message

10

Wednesday, July 21st 2010, 8:37pm

Ein kleines Problem, anscheinend kommt Winrar (SFX) nicht mit .msi Dateien zurecht oder ich weiss nicht was ich bei diesen Dateitypen beachten muss. Wenn ich etwas mittels diesem Installationstyp automatisch installieren will bekomme ich eine Meldung von Windows Installer. Gibt es da irgendeine Möglichkeit mit Winrar oder muss ich auf ein anderes Programm ausweichen?
----------------------------------------------------------------------------
Windows ® Installer. V 5.0.7600.16385

msiexec /Option <Erforderliche Parameter> [Optionale Parameter]

Installationsoptionen
</package | /i> <Produkt.msi>
Installiert oder konfiguriert ein Produkt.
/a <Produkt.msi>
Administrative Installation - Installiert ein Produkt im Netzwerk.
/j<u|m> <Produkt.msi> [/t <Transformliste] [/g <Sprach-ID>]
Kündigt ein Produkt an - m für alle Benutzer, u für den aktuellen Benutzer
</uninstall | /x> <Produkt.msi | Produktcode>
Deinstalliert das Produkt.
Anzeigeoptionen
/quiet
Hintergrundmodus, keine Benutzerinteraktion
/passive
Unbeaufsichtigter Modus - Nur Statusleiste
/q[n|b|r|f]
Legt die Benutzeroberfläche fest.
n - Keine Benutzeroberfläche
b - Einfache Benutzeroberfläche
r - Reduzierte Benutzeroberfläche
----------------------------------------------------------------------------

Diveman28

Unwissender

Posts: 761

Date of registration: Sep 23rd 2008

  • Send private message

11

Wednesday, July 21st 2010, 9:04pm

die eintragungen können im kommentar in etwa so aussehen:
Setup=msiexec /i "dein_programm .msi" /qb
TempMode
Silent=1
Overwrite=1

du hats ja schon die entsprechenden parameter für windows installer gepostet, was sie bedeuten, kann man ja daraus entnehmen.
die parameter für winrar findest du in der hilfe.
"Brain 1.0 (die Vollversion, nicht die limitierte Sharewarevariante, die viele im Einsatz haben) ist wohl immer noch der beste Schutz..."
Mein System

Akron

User

Posts: 47

Date of registration: May 19th 2010

Thanks: 0 / 1

  • Send private message

12

Wednesday, July 21st 2010, 10:16pm

Hat funktioniert, vielen Dank! Zum Verständnis, wie kommt es das der Befehl Setup=msiexec /i lautet. Müsste es nicht exakt so lauten wie die Datei auch heisst?

Ist es möglich bzw. gut mehrere .msi Dateien in einem Paket nacheinander zu installieren oder ist in Ordnung wenn ich das mit einzelnen SFX Dateien mache zwecks Einbindung in ein Windows Image?
EDIT: Ok, hab ne Batchdatei erstellt, geht auch so denke ich...

This post has been edited 2 times, last edit by "Akron" (Jul 21st 2010, 10:40pm)


Diveman28

Unwissender

Posts: 761

Date of registration: Sep 23rd 2008

  • Send private message

13

Wednesday, July 21st 2010, 11:07pm

@Akron
Setup=
ist ein sfx-befehl von winrar um programme auszuführen, steht auch in der hilfe von winrar.
msiexec
ermöglicht den windows installer per befehlszeile zu installieren und wird dabei vorangestellt.
die syntax hast du ja schon gepostet:
msiexec /Option <Erforderliche Parameter> [Optionale Parameter]
/i
ein schalter, installiert oder konfiguriert ein produkt.
hier kannst du z.b. noch mehr erfahren Msiexec (Befehlszeilenoptionen).
"Brain 1.0 (die Vollversion, nicht die limitierte Sharewarevariante, die viele im Einsatz haben) ist wohl immer noch der beste Schutz..."
Mein System

g-force

Gunnar

Posts: 11,672

Date of registration: Sep 23rd 2008

Thanks: 171 / 185

  • Send private message

14

Wednesday, July 21st 2010, 11:15pm

Ergänzend sei erwähnt, daß viele meiner SFX, die eine .msi enthalten,
auch ohne vorangestelltes "msiexec /i" funktionieren - also nur "mein-programm.msi /qb".
Scheint auch von der Installations-Phase abzuhängen. Bei T-13 scheint es ohne "msiexec /i" Probleme zu geben.
"Von all den Dingen, die mir verloren gegangen sind, habe ich am meisten an meinem Verstand gehangen."

This post has been edited 1 times, last edit by "g-force" (Jul 21st 2010, 11:16pm)


Posts: 51

Date of registration: Sep 23rd 2008

  • Send private message

15

Friday, July 23rd 2010, 12:06pm

@indyjones
Hallo,
ich bin ein großer Freund der SFX-Sache. Nur habe ich das Problem, dass einige Programme(meist ältere) Administratorechte brauchen(Win7) wenn sie richtig laufen sollen. Nun habe ich aber keine Lust nach einer Neuinstallation jedem Programm einzeln über den Eigenschaften -Dialog das Häckchen "als Admin ausführen" zu setzen. Gibt es da eine Möglichkeit das per .xml oder Ähnliches Windows beizubringen?

P.S. Ich arbeite viel mit WinRAR.

lg

This post has been edited 1 times, last edit by "DanielCollinet" (Jul 23rd 2010, 12:08pm)


g-force

Gunnar

Posts: 11,672

Date of registration: Sep 23rd 2008

Thanks: 171 / 185

  • Send private message

16

Friday, July 23rd 2010, 12:32pm

"Von all den Dingen, die mir verloren gegangen sind, habe ich am meisten an meinem Verstand gehangen."

Posts: 51

Date of registration: Sep 23rd 2008

  • Send private message

17

Saturday, July 24th 2010, 11:48am

@g-force
Danke für die Antwort, leider ist es nicht das was ich meinte, hätte es besser beschreiben sollen.
Ich arbeite mit Win7 und mit WinRAR.
WinRAR ist selber die .exe, es werden keine setup.exe innerhalb ausgeführt. UAC ist deaktiviert, wird aber beim späteren Arbeiten wieder aktiviert.
WinRAR entpackt mir alles in C:\Program Files (x86), diese Programme kommen auch ohne installation aus, sind aber keine reinen Portables. Z.B. faststone Image Viewer will beim ersten Start eine Art Datenbank anlegen bzw. aktualisieren, nur ohne Adminrechte geht das nicht. Ich benutze auch sehr viel DeskPin, dieses Programm dient dazu ein ausgewähltes Programm immer auf Z-Index = 0 zu halten. Das Programm ist aber noch aus XP Zeiten und ohne Adminrechte geht das Programm dann nicht. Wenn ich dann neu Installiert habe, muss erst mühselig alle Programm abklappern die Adminrechte brauchen und diese dann über den Eigenschaftendialog einstellen ->damit das Programm immer mit Adminrechten ausgeführt wird. Um mir diesen Aufwand zu erparen, frage ich mich ob es nicht eine elegante Möglichkeit gibt, dies einzustellen. Oder wird das im ADS gespeichert, wenn ja, wie erhalte ich diese Enstellungen bei der nächsten Neuinstallation?!

Das mit WPI klappt bei mir.

lg

indyjones

Peitschenmann

  • "indyjones" started this thread

Posts: 1,924

Date of registration: Sep 23rd 2008

Thanks: 123 / 59

  • Send private message

18

Saturday, July 24th 2010, 12:49pm

Ich hänge immer noch mit XP rum, aber ich könnte mir vorstellen, daß die Einstellungen bzw. Adminrechte in der Verknüpfung festgehalten werden.
Und wie ich bereits dargelegt habe, kann man die Verknüpfungen aus einer Testinstallation sichern und innerhalb eines Winrar-SFX'es per Batch ins Startmenü oder auf den Desktop kopieren.
Wenn 3 Leute in einen leeren Raum gehen und 5 wieder heraus kommen, dann müssen 2 wieder rein gehen, damit der Raum leer ist.

Brun

User

Posts: 61

Date of registration: Dec 15th 2008

Thanks: 11 / 10

  • Send private message

19

Monday, July 26th 2010, 2:29pm

Hallo

Ich breuchte mal hilfe bei dem SFX Addons, bin ein bisschen durcheinander im Kopf :'-( . Und zwar will ich ein Portable Programm in ein SFX mit WinRAR verwandeln der mir eine Verknüpfung auf dem Desktop zaubert. Aber leider bekomme ich immer einen leeren Ordner als Desktopverknüpfung statt die Exe Datei.

Beispiel Addon: Sumatra PDF

Der folgende Kommentar enthält SFX-Skriptbefehle

Source code

1
2
3
Setup=SumatraPDF-1.1-install.exe /S /NCRC /D=%programfiles%\SumatraPDF
TempMode
Overwrite=1


Statt: Setup=SumatraPDF-1.1-install.exe /S /NCRC muss ich ja nur den Ordner laut Wiki einfügen Sumatra PDF oder ?

MfG
Brun

g-force

Gunnar

Posts: 11,672

Date of registration: Sep 23rd 2008

Thanks: 171 / 185

  • Send private message

20

Monday, July 26th 2010, 2:45pm

Da fehlt die Erweiterung. Das sollte ungefähr so aussehen:

Source code

1
2
3
4
5
6
;Der folgende Kommentar enthält SFX-Skriptbefehle

Path=%programfiles%\SumatraPDF
Silent=2
Overwrite=1
Shortcut=D, "%programfiles%\SumatraPDF\SumatraPDF.exe", "", "", "SumatraPDF", ""
"Von all den Dingen, die mir verloren gegangen sind, habe ich am meisten an meinem Verstand gehangen."

Brun

User

Posts: 61

Date of registration: Dec 15th 2008

Thanks: 11 / 10

  • Send private message

21

Tuesday, July 27th 2010, 3:16pm

Danke schön an g-force für die hilfestellung und beatmaster für das Beispiel Addon, hat wunderbar funktioniert. :-D