Paketierungsproblem: Vorher nach geöffneten Browsern suchen

MATSupport
Posts: 66
Joined: 31. Oct 2011, 10:41
Contact:

Re: Paketierungsproblem: Vorher nach geöffneten Browsern suc

Post by MATSupport » 11. Jul 2012, 13:24

Hallo Forum,

ich bin hier am Verzweifeln.
Ich habe nochmal versucht, das zu testen und habe erneut einen kleinen Fehler:

Das schließen des Firefox funktioniert einwandfrei.
Beim IE hingegen zeigt er zwar das Fenster, das IE geschlossen werden muss, schliesst den IE aber nicht.
(Sowohl bei der Installation als auch bei der DeInstallation).
Ich denke es ist eine Kleinigkeit. Aber die Baumstämme werden immer Grösser.

Getestet wurde dies auf einem Windows 7 X64 System.

Der Codeschnippsel:

Code: Select all

[SetupInfo]
Author                  =administrator
CreationDate            =11.07.2012 12:37:46 
InventoryID             =
Description             = 
Method                  = MSI
Tested on               = 
Dependencies            = 
Command line options    =/S2
Last Change             = 
Build                   = 

[VarDefInfo]
; <Variable>, <Type: 0=Computer 1=User>, <Allow NULL values: 0=No 1=Yes>

[Setup]
Version=14.2
ShowCaption=1
BlockInput=0
Platform=*

[Requirements]

[Application]
ProductName=Close Windows Test
DeveloperName=Testing
Version=11.3.300.262
Revision=0
SetupName=%ProductName% %Version% %SetupWizard%
Text1="%ProductName% %Version%",         Arial,           30, , 00FFFF, 4,    , LEFT BOLD ITALIC
Text2="%DeveloperName%",                 Arial,           24, , 00FFFF, 4,    , LEFT BOLD ITALIC
Text8="%Company%",                       Arial,           18, , 00FFFF, 4,  10, RIGHT BOLD ITALIC
Text9="%InstallationFor% %WindowsUser%", Arial,           16, , 007F00, 4, -18, BOTTOM ITALIC LEFT
BackgroundColor=FF0000,000000
CopyDialogRect=0%, 77%, 100%, 100%, HCENTER
UserKeyName=%DeveloperName%\%ProductName%
MachineKeyName=%DeveloperName%\%ProductName%\%Version%
UninstallKeyName=%DeveloperName% %ProductName% %Version%
UninstallDisplayName=%ProductName% %Version%
UninstallString=%ReinstallString% /U
ReinstallString="%CommonSetupDir%\Setup.exe" "%App%\%SetupInfDir%\Setup.inf"
ReinstallMode=1
SrcDir=..
ApplicationDir=%ProgramFilesDir%\Matrix42\%Developername%\%Productname%\%Version%
SetupInfDir=Install
DataDir=%Personal%
AskUninstallOld=1
ShellLinks=1
CommonShellLinks=1
CreateUnresolvableShellLinks=1
UseStringSection=Strings:09
UseSysStringSection=SysStrings:09
DateWarning=1
SizeWarning=0
Reboot=0
PreventExternalReboot=1
StartServicesOnReboot=0
CallTimeOut=3600
AbortAfterCallTimeOut=1
DisableCancelButton=1
ShowEndMessage=1
EndMessage=%EndMessageDesc%


[Strings:07]
Disk1=Installationsmedium 1
EndMessageDesc=Die Installation wurde erfolgreich abgeschlossen!
ErrorLogMessage=Die Installation/Deinstallation wurde mit einer Fehlermeldung abgebrochen!
InstallationFor=Installation für:
InstallerDesc=Dienstprogramm zum Installieren einzelner Komponenten.
InstallerName=Installationsprogramm
SetupWizard=Installations-Assistent
Uninstallation=deinstallieren

[Strings:09]
Disk1=Installation media 1
EndMessageDesc=Installation was completed successfully!
ErrorLogMessage=The installation/uninstallation aborted with an error message!
InstallationFor=Installation for:
InstallerDesc=Service program to install single components.
InstallerName=Setup program
SetupWizard=Installation Wizard
Uninstallation=Uninstallation

[SysStrings:07]
Users=Benutzer

[SysStrings:09]
Users=Users

[Environment]
V_MSIInstallerID=0D0799032E0DBA949B2A084FE82249A7
ReInstSuccessMessage1031=Die Konfiguration wurde erfolgreich abgeschlossen.
ReInstSuccessMessage1031_1=Die Konfiguration wurde abgeschlossen.
ReInstSuccessMessage1033=Configuration completed successfully.
ReInstSuccessMessage1033_1=Configuration completed.
MSILogFile=%Temp%\MSI_%ProductName%.%Version%.%Revision%.log
CommonSetupDir=%CommonFilesDir%\Setup%SetupBits%
V_MachineValuesPath=\\%EmpirumServer%\Values$\MachineValues\%DomainName%
V_UserValuesPath=%HKLM,"Software\matrix42\Software Depot","HomeServer"%\Values$\UserValues\%UserDomain%

; Maschinenabhängige Variablen
; machine dependent variables
;VM_<Variable>=%%%V_MachineValuesPath%\%ComputerName%.ini,%ComputerName%,<Variable>%%

; Userabhängige Variablen
; user dependent variables
;VU_<Variable>=%%%V_UserValuesPath%\%WindowsUser%.ini,%WindowsUser%,<Variable>%%

; !!! Setzen der entsprechenden ReplaceEnv Befehle für die Variablen im Abschnitt [Product] nicht vergessen!!!
; !!! Don't forget to set the appropriate ReplaceEnv instructions for the variables in the section [Product]!!!

[Encryption]

[Disks]
1=%Disk1%

[Options]
Installer = %InstallerName%, COPYALWAYS, Installer, "%InstallerDesc%"
Product   = %ProductName%,   COPYALWAYS, Product,   "%ProductDesc%"

[Installer]
1:..\..\..\..\User\Setup.exe,          %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:..\..\..\..\User\SetupDeu.chm,       %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:..\..\..\..\User\SetupEnu.chm,       %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:..\..\..\..\User\Mx42SynSem.dll,     %System%,         OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP WINDOWS32, 0
1:..\..\..\..\User\x64\Mx42SynSem.dll, %System%,         OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP WINDOWS64, 0
1:%SetupInfDir%\Setup.inf,                             , NORMAL,                                             0
1:%Temp%\Setup64.exe,                  %CommonSetupDir%\Setup.exe, OPTIONAL NOSIZEWARNING SETUP ALWAYS WINDOWS64,      0

[FileCheckMachine]
ReplaceEnv V_MachineValuesPath
If DoesFileExist ("%V_MachineValuesPath%\%ComputerName%.ini") == "0" Then "FileIsntThere" EndIf

[FileCheckClient]
ReplaceEnv V_UserValuesPath
If "%UserDomain%" <> "%ComputerName%" Then "CheckClientFile" EndIf

[CheckClientFile]
If DoesFileExist ("%V_UserValuesPath%\%WindowsUser%.ini") == "0" Then "FileIsntThere" EndIf

[FileIsntThere]
ErrorLogMsg Values$\MachineValues\%DomainName%\%ComputerName%.ini or Values$\UserValues\%UserDomain%\%WindowsUser%.ini not found!
Abort

[Product]
;#FileCheckMachine, MACHINE
;#FileCheckClient, CLIENT
;ReplaceEnv <Variable>

#Set:Installation
#Set:Product, DONTDELETE
#Reg:OnUninstallProduct, DELETE
#Reg:Product, DONTDELETE
#Ini:Product, DONTDELETE
#Security:Product

#Set:Uninstall, DELETE
#Set:Uninstall2, DELETE
#Set:ChangeMSISourcelist, DONTDELETE

[Processes]
; Processe, welche für die Installation geschlossen werden sollen
IEPROC=*Internet*, Close all IE Windows, DESTROYWINDOW
FFPROC=*firefox*, Close all FF Windows, DESTROYWINDOW

[SET:Installation]
; Prüfen, ob die Prozesse IE und FF laufen
If DoesProcessExist ("iexplore.exe") == "1" Then "SET:KillIE32" Endif
If DoesProcessExist ("firefox.exe") == "1" Then "SET:KillFF32" Endif

[SET:KillIE32]
;IE schliessen
AskKillProcesses 5, IEPROC

[SET:KillFF32]
;FF schliessen
AskKillProcesses 5, FFPROC

[Set:Product]

[RepairMSI]

[InstallMSI]

[Set:Uninstall]
If DoesProcessExist ("iexplore.exe") == "1" Then "SET:KillIE32_" Endif
If DoesProcessExist ("firefox.exe") == "1" Then "SET:KillFF32_" Endif
-AddMeter -1

[SET:KillIE32_]
;IE schliessen
AskKillProcesses 5, IEPROC

[SET:KillFF32_]
;FF schliessen
AskKillProcesses 5, FFPROC


[Set:Uninstall2]


[RebootRequired]
SetReboot 1

[AbortMSIInst]
ErrorLogMsg %ErrorLogMessage% ErrorLevel: %ErrorLevel%
Abort

[AbortMSIUnInst]
-Abort
-ErrorLogMsg %ErrorLogMessage% ErrorLevel: %ErrorLevel%

[SET:ChangeMSISourcelist]
ReplaceRegValue (HKCR,"Installer\Products\%V_MSIInstallerID%\Sourcelist","LastUsedSource","\\%EmpirumServer%","\\%%EmpirumServer%%", 1)
ReplaceRegValue (HKCR,"Installer\Products\%V_MSIInstallerID%\Sourcelist\Net","1","\\%EmpirumServer%","\\%%EmpirumServer%%", 1)

[Reg:OnUninstallProduct]

[Reg:Product]


[Ini:Product]

[Security:Product]

[Shell:Product]

Hat jemand einen Tip? Kann mir wer eine Brille leihen?

Gruesse
MATSupport

User avatar
r.wiegel
Posts: 903
Joined: 05. Feb 2010, 13:45
Location: Regensburg
Contact:

Re: Paketierungsproblem: Vorher nach geöffneten Browsern suc

Post by r.wiegel » 11. Jul 2012, 13:52

Nehmen Sie bitte iexplore.exe statt *Internet*, das wird auch unter Winx64 funktionieren, also

Code: Select all

IEPROC=iexplore.exe, Close all IE Windows, DESTROYWINDOW
Das hier muss nicht sein, da AskKillProcesses selbst prüft, ob die am Laufen sind, wenn nicht - kein Fehler:

Code: Select all

    ; Prüfen, ob die Prozesse IE und FF laufen
    If DoesProcessExist ("iexplore.exe") == "1" Then "SET:KillIE32" Endif
    If DoesProcessExist ("firefox.exe") == "1" Then "SET:KillFF32" Endif
wenn es bei DESTROYWINDOW und Timeout mit 5 Sekunden bleiben soll, dann lieber gleich den Befehl KillProcess nehemen.

UPD:
evtl. Timeout auf ca. 300 sekunden setzen und als Aktion "KIllProcess Continue" nehmen. In IE könnte auch was Wichtiges laufen (WebSession, Heldesk usw.)
Last edited by r.wiegel on 11. Jul 2012, 13:58, edited 1 time in total.
Viele Grüße
Roman Wiegel
IT-Consultant

MR Datentechnik - Vertriebs- und Service GmbH

Phadda
Posts: 654
Joined: 18. Jun 2009, 14:53
Contact:

Re: Paketierungsproblem: Vorher nach geöffneten Browsern suc

Post by Phadda » 11. Jul 2012, 13:57

Code: Select all

IEPROC=*Internet*, Close all IE Windows, DESTROYWINDOW
Schonmal versucht NICHT auf den Fenstertitel "*internet*" zu suchen, sondern auf den Prozess "iexplore.exe"? Evtl gibt es ja noch verstecke Fenster mit dem Titel ?! Am besten mal mit dem Systernals Process Explorer schauen ... http://technet.microsoft.com/de-de/sysi ... 96653.aspx

MATSupport
Posts: 66
Joined: 31. Oct 2011, 10:41
Contact:

Re: Paketierungsproblem: Vorher nach geöffneten Browsern suc

Post by MATSupport » 11. Jul 2012, 14:34

Hallo Forum,
hallo r.wiegel, hallo phadda

auch in folgenden Kombinationen bleibt der IE geöffnet:

Code: Select all

IEPROC=*Internet*, Close all IE Windows, DESTROYWINDOW

oder

IEPROC=iexplore.exe, Close all IE Windows, DESTROYWINDOW

oder 

IEPROC="iexplore.exe", Close all IE Windows, DESTROYWINDOW

oder 

IEPROC="*iexplore.exe*", Close all IE Windows, DESTROYWINDOW

oder

IEPROC=iexplore, Close all IE Windows, DESTROYWINDOW

oder

IEPROC=*iexplore*, Close all IE Windows, DESTROYWINDOW

sehr merkwürdig.

Gruss MATSuupport

User avatar
r.wiegel
Posts: 903
Joined: 05. Feb 2010, 13:45
Location: Regensburg
Contact:

Re: Paketierungsproblem: Vorher nach geöffneten Browsern suc

Post by r.wiegel » 11. Jul 2012, 14:41

da wir beim Processnamen sind, müssen wir statt DESTROYWINDOW KIllProcess nehmen:

Code: Select all

IEPROC=iexplore.exe, Close all IE Windows, KILLPROCESS CONTINUE
das wird funktionieren
Viele Grüße
Roman Wiegel
IT-Consultant

MR Datentechnik - Vertriebs- und Service GmbH

MATSupport
Posts: 66
Joined: 31. Oct 2011, 10:41
Contact:

Re: Paketierungsproblem: Vorher nach geöffneten Browsern suc

Post by MATSupport » 11. Jul 2012, 15:15

Hallo Herr Wiegel,

perfekt. Jetzt läufts.
Ein Bier wenn man sich mal sieht.

Gruss
MATSupport

Post Reply

Return to “Paketierung”

Who is online

Users browsing this forum: No registered users and 11 guests