Problem INF-Installer und 64Bit

28/12/2014 - 20:40 von christian_dcomwm-ENTF | Report spam
Hi,

ein auf XP und Win7/32 tadellos funktionierendes INF-Script macht auf
Win7/64Bit Probleme.

Rechtsklick auf *.inf/Installieren làuft einwandfrei.

Nicht jedoch die mit iexpress erstellte EXE. Muß an
AppLaunched=RUNDLL32.EXE ADVPACK.DLL,LaunchINFSection script.inf
etwas geàndert werden?

Damit werden die Programmdateien installiert. Jedoch kommt bei der
Installation der _Benutzerdaten_ (nach Ab- und Anmelden) ein falscher
Dialog.

Definiert ist:

[Install.User]
CustomDestination = Install.User.Custom
...

[Install.User.Custom]
49000=install.dir.program,87
49001=install.dir.data,65

[install.dir.program]
HKLM,%Uninstall%%Vendor%.%Product%,InstallDir,"Soll %Product% in das vorhandene Programm-Verzeichnis installiert werden? Das Verzeichnis ""%16422%\%Vendor%\%Product%"" wird empfohlen.","%16422%\%Vendor%\%Product%"
HKLM,nul,,"Wohin sollen die %Product% Programm-Dateien installiert werden? Das Verzeichnis ""%16422%\%Vendor%\%Product%"" wird empfohlen.","%16422%\%Vendor%\%Product%"

[install.dir.data]
HKCU,nul,,"Wo soll %Product% die Daten speichern? Empfohlen: ""%16410%\%Vendor%\%Product%""","%16410%\%Vendor%\%Product%"

Auf 32Bit-Systemen wird für die Benutzerdaten 49001 abgefragt (und 49000
wunschgemàß ohne Abfrage zugewiesen). Nicht jedoch beim 64bit-System, da
kommt die Frage für 49000 <sic> ohne Eingabezeile, der Dialog muß mit OK
geschlossen werden. Keine Möglichkeit, das Datenverzeichnis zu wàhlen.


Bei der Gelegenheit: 16422 bei install.dir.program scheint nicht das
Wahre zu sein. Ich weiß zwar nicht, ob es negative Auswirkungen hat, aber
ein 32Bit-Programm gehört doch IMHO nach c:\Program Files(x86).
Vor langem Trial&Error: wie macht man es korrekt bzw. möglichst einfach?

cu,
Christian

PGP Key available.
 

Lesen sie die antworten

#1 Stefan Kanthak
28/12/2014 - 22:48 | Warnen spam
"Christian @Soemtron" schrieb:

Hi,

ein auf XP und Win7/32 tadellos funktionierendes INF-Script macht auf
Win7/64Bit Probleme.

Rechtsklick auf *.inf/Installieren làuft einwandfrei.

Nicht jedoch die mit iexpress erstellte EXE.


~~~~~~~~ ~~~
Ich habe Dir Deine beiden Fehler unterstrichen!

1. IExpress ist KAPUTT und vor allem UNSICHER, wirf es weg, WEIT weg.

2. man verkauft^Wgibt Kindern keine Einstiegsdrogen!
Klaere Deine Benutzer auf, NIEMALS irgendein als *.EXE daherkommendes
Drexding^WEtwas zu installieren, sondern RICHTIG vorzugehen: bei
Software Rechtsklick auf *.INF oder Doppelklick auf *.MSI/*.MSP/*.MSU,
bei Hardware die *.INF an den Geraetemanager verfuettern.

Drexzeux, das sich nicht daran haelt, wirfst Du weg!

Muß an
AppLaunched=RUNDLL32.EXE ADVPACK.DLL,LaunchINFSection script.inf
etwas geàndert werden?



Ja. Der Aufruf muss 64-bittig erfolgen, d.h. der Aufrufer obiger
Zeile muss ebenfalls 64-bittig laufen!

Damit werden die Programmdateien installiert. Jedoch kommt bei der
Installation der _Benutzerdaten_ (nach Ab- und Anmelden) ein falscher
Dialog.



[ ... ]

Auf 32Bit-Systemen wird für die Benutzerdaten 49001 abgefragt (und 49000
wunschgemàß ohne Abfrage zugewiesen). Nicht jedoch beim 64bit-System, da
kommt die Frage für 49000 <sic> ohne Eingabezeile, der Dialog muß mit OK
geschlossen werden. Keine Möglichkeit, das Datenverzeichnis zu wàhlen.



Die in "StubPath" hinterlegte Kommandozeile wird dort 64-bittig aufgerufen.
Deine *.INF liest die 64-bittige Registry.
Bei der in der falschen (32-bittigen) Umgebung durchgefuehrten Installation
hat die *.INF aber die 32-bittige Registry geschrieben.

Du koenntest die Werte aller %REG_ um 16384 erhoehen, dann greifen 32-
bittige *.INF auf die 64-bittige^Wnative Registry zu.
Aber: Deine 32-bittigen Programme muesstest Du dann auch aendern!

Bei der Gelegenheit: 16422 bei install.dir.program scheint nicht das
Wahre zu sein. Ich weiß zwar nicht, ob es negative Auswirkungen hat, aber
ein 32Bit-Programm gehört doch IMHO nach c:\Program Files(x86).
Vor langem Trial&Error: wie macht man es korrekt bzw. möglichst einfach?



KEIN [DefaultInstall] verwenden, sondern [DefaultInstall.NTx86] und
[DefaultInstall.NTamd64], ggf. [SourceDisksNames.amd64] und
[SourceDisksFiles.amd64] sowie [SourceDisksNames.x86] und
[SourceDisksFiles.x86] statt "undekorierten" [SourceDisksNames] und
[SourceDisksFiles], und in den fuer AMD64 und I386 zu trennenden
Abschnitten die "richtigen" DIRIDs verwenden.

Fuer letzteres siehe resp. installiere
<http://home.arcor.de/skanthak/downl...ID.INF>
Fuer ersteres siehe <http://home.arcor.de/skanthak/downl...ER.INF>
und <http://home.arcor.de/skanthak/downl...ER.INF> (und VIELE
andere meiner Skripts).

Stefan
[
Die unaufgeforderte Zusendung werbender E-Mails verstoesst gegen §823
Abs. 1 sowie §1004 Abs. 1 BGB und begruendet Anspruch auf Unterlassung.
Beschluss des OLG Bamberg vom 12.05.2005 (AZ: 1 U 143/04)


news://freenews.netfront.net/ - complaints:

Ähnliche fragen