Jump to content

Making Nero 8 a silent install


xavier73

Recommended Posts

Hi artbio!

You get this error because you have a pending file operation that needs to be taken care of before Nero continues the installation process. Nero8 is pretty strict when it comes to the installation part. :}

Try to place this Nero installer as your first priority in your setup environment to see if you can overcome this error message. It's not recommended to delete the registry entries as givanoff posted. Windows needs to restart to be able to update currently used files.

I will look into your suggestions and release a new version when ready. ;)

Link to comment
Share on other sites


Hi artbio!

You get this error because you have a pending file operation that needs to be taken care of before Nero continues the installation process. Nero8 is pretty strict when it comes to the installation part. :}

Try to place this Nero installer as your first priority in your setup environment to see if you can overcome this error message. It's not recommended to delete the registry entries as givanoff posted. Windows needs to restart to be able to update currently used files.

I will look into your suggestions and release a new version when ready. ;)

Actually I tried that. It didn´t work. I changed the parameter /qb- to /qn. It might be that. When I use /qn your script can't see the reboot prompt, that's my theory.

Or your script can't handle the reboot prompt on the latest version of Nero. I took a look on your script. On the Prompt() function:

; Handle reboot prompt
Func Prompt()
If WinExists("Nero") Then
$CL = WinGetClassList("Nero")
$SL = StringLen($CL)
If $SL = 21 Then
(...)
EndFunc

I checked and $SL is equal to 28.

However it installs fine on vmware. The difference is that on my machine, drivers specific to it are installed.

I included an option to force the install of Nero, on your script. It's based on givanoff's information. Tested an working. Actually there isn't a problem with that, since the registry is backed up and restored on AutoIt exit.

And added some other options. I will send you the script so you can look at it and keep the options you want, if you are willing to.

Regards.

Edited by artbio
Link to comment
Share on other sites

Hi CEoCEo. I tried your script many times. It works well, but doesn't delete NMIndexingService.exe and

NMIndexStoreSvr.exe files. After I changed Delete Media Indexing Services section to look like this:

; Delete Media Indexing Services
If $MIS = 0 Then
    RegDelete("HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "BgMonitor_{79662E04-7C6C-4d9f-84C7-88D8A56B10AA}")
    RunWait(@COMSPEC & " /c taskkill /f /im NMBgMonitor.exe", "", @SW_HIDE)
    RunWait(@COMSPEC & " /c taskkill /f /im NMIndexingService.exe", "", @SW_HIDE)
    RunWait(@COMSPEC & " /c taskkill /f /im NMIndexStoreSvr.exe", "", @SW_HIDE)
    Sleep(1000)
    FileDelete(@CommonFilesDir & "\Nero\Lib\NMBgMonitor.exe")
    FileDelete(@CommonFilesDir & "\Nero\Lib\NMIndexingService.exe")
    FileDelete(@CommonFilesDir & "\Nero\Lib\NMIndexStoreSvr.exe")
EndIf

all those files was deleted. Can you update your script with the above code? The only problem is that

taskkill command doesn't work in XP Home Edition.

Edited by radix
Link to comment
Share on other sites

Hi radix!

Actually I have tested this part with great success in the upcoming release of 2.3. More complicated, but it will hopefully work for everyone. :)

; Delete Media Indexing Services
If $MIS = 0 Then
RegDelete ( "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "IndxStoreSvr_{79662E04-7C6C-4d9f-84C7-88D8A56B10AA}" )
RegDelete ( "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce", "NeroHomeFirstStart" )
RunWait ( @ComSpec & " /c regsvr32 /u /s MediaLibraryNSE.dll", @CommonFilesDir & "\Nero\Lib", @SW_HIDE )
FileDelete ( @CommonFilesDir & "\Nero\Lib\MediaLibraryNSE.dll" )
RunWait ( @ComSpec & " /c net stop NMIndexingService", "", @SW_HIDE )
RunWait ( @ComSpec & " /c sc delete NMIndexingService", "", @SW_HIDE )
RegDelete ( "HKCR\CLSID\{E8933C4B-2C90-4a04-A677-E958D9509F1A}" )
RegDelete ( "HKCR\AppID\{D55E16BA-BBC9-4F7E-A147-E5DFBCC71480}" )
RegDelete ( "HKCR\AppID\NMIndexingService.EXE" )
RegDelete ( "HKLM\SYSTEM\CurrentControlSet\Services\NMIndexingService" )
FileDelete ( @CommonFilesDir & "\Nero\Lib\NMIndexingService.exe" )
RunWait ( @ComSpec & " /c regsvr32 /u /s NMIndexingServicePS.dll", @CommonFilesDir & "\Nero\Lib", @SW_HIDE )
FileDelete ( @CommonFilesDir & "\Nero\Lib\NMIndexingServicePS.dll" )
ProcessClose ( "NMIndexStoreSvr.exe" )
FileDelete ( @CommonFilesDir & "\Nero\Lib\NMIndexStoreSvr.exe" )
RunWait ( @ComSpec & " /c regsvr32 /u /s NMIndexStoreSvrPS.dll", @CommonFilesDir & "\Nero\Lib", @SW_HIDE )
FileDelete ( @CommonFilesDir & "\Nero\Lib\NMIndexStoreSvrPS.dll" )
EndIf

Link to comment
Share on other sites

Hi CEoCEo. I tried your script many times. It works well, but doesn't delete NMIndexingService.exe and

NMIndexStoreSvr.exe files. After I changed Delete Media Indexing Services section to look like this:

; Delete Media Indexing Services
If $MIS = 0 Then
RegDelete("HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "BgMonitor_{79662E04-7C6C-4d9f-84C7-88D8A56B10AA}")
RunWait(@COMSPEC & " /c taskkill /f /im NMBgMonitor.exe", "", @SW_HIDE)
RunWait(@COMSPEC & " /c taskkill /f /im NMIndexingService.exe", "", @SW_HIDE)
RunWait(@COMSPEC & " /c taskkill /f /im NMIndexStoreSvr.exe", "", @SW_HIDE)
Sleep(1000)
FileDelete(@CommonFilesDir & "\Nero\Lib\NMBgMonitor.exe")
FileDelete(@CommonFilesDir & "\Nero\Lib\NMIndexingService.exe")
FileDelete(@CommonFilesDir & "\Nero\Lib\NMIndexStoreSvr.exe")
EndIf

all those files was deleted. Can you update your script with the above code? The only problem is that

taskkill command doesn't work in XP Home Edition.

Try:

ProcessClose("NMBgMonitor.exe")
ProcessClose("NMIndexingService.exe")
ProcessClose("NMIndexStoreSvr.exe")

Link to comment
Share on other sites

Try:

ProcessClose("NMBgMonitor.exe")
ProcessClose("NMIndexingService.exe")
ProcessClose("NMIndexStoreSvr.exe")

I tried that months ago and doesn't work. It works only with taskkill command applied to NMIndexingService.exe and NMIndexStoreSvr.exe. NMBgMonitor.exe was deleted with the

original code provided by CEoCEo.

Link to comment
Share on other sites

Try:

ProcessClose("NMBgMonitor.exe")
ProcessClose("NMIndexingService.exe")
ProcessClose("NMIndexStoreSvr.exe")

I tried that months ago and doesn't work. It works only with taskkill command applied to NMIndexingService.exe and NMIndexStoreSvr.exe. NMBgMonitor.exe was deleted with the

original code provided by CEoCEo.

Did you try?

$list = ProcessList("NMIndexingService.exe")
For $i = 1 To $list[0][0]
ProcessClose($list[$i][1])
Next

Edited by artbio
Link to comment
Share on other sites

Try:

ProcessClose("NMBgMonitor.exe")
ProcessClose("NMIndexingService.exe")
ProcessClose("NMIndexStoreSvr.exe")

I tried that months ago and doesn't work. It works only with taskkill command applied to NMIndexingService.exe and NMIndexStoreSvr.exe. NMBgMonitor.exe was deleted with the

original code provided by CEoCEo.

Didn't try, but I think my above suggestion will not work. It closes all the running processes with the same name. I don't think it's the situation here. NMIndexingService.exe is running as a service and that's why you need to force the close procedure. CEoCEo's solution looks promissing. However if you want to do it the AutoIt way exclusively, you can do it with an user defined function. Take a look here -> http://www.autoitscript.com/forum/index.ph...&hl=service

Here is a sample from that topic:

;===============================================================================
; Description: Delete a Windows Service
; Syntax: _ServDelete($iName[, $Computer])
; Parameter(s): $iName - The name of the service to delete
; $Computer - The network name of the computer (optional) The local computer is default
; Requirement(s): None
; Return Value(s): Success - Deletes the service
; Failure Sets @Error = -1 if service is not found
; Author(s) GEOSoft
; Modification(s):
; Note(s):
; Example(s):
;===============================================================================

Func _ServDelete($iName, $Computer = ".")
$Service = ObjGet("winmgmts:\\" & $Computer & "\root\cimv2")
$sItems = $Service.ExecQuery("Select * from Win32_Service")
For $objService in $sItems
If $objService.Name == $iName Then
$objService.StopService($objService.Name)
$objService.Delete($objService.Name)
Return
EndIf
Next
Return SetError(-1)
EndFunc ;<==> _ServDelete()

Just download the include file from that topic and include it with your script. As an alternative copy the needed functions to your script and call them when needed. This way you will have a unique file.

Regards.

Edited by artbio
Link to comment
Share on other sites

Hi radix!

Actually I have tested this part with great success in the upcoming release of 2.3. More complicated, but it will hopefully work for everyone. :)

(...)

So, as an alternative I would suggest:

; Delete Media Indexing Services
If $MIS = 0 Then
RegDelete ( "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "IndxStoreSvr_{79662E04-7C6C-4d9f-84C7-88D8A56B10AA}" )
RegDelete ( "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce", "NeroHomeFirstStart" )
RunWait ( @ComSpec & " /c regsvr32 /u /s MediaLibraryNSE.dll", @CommonFilesDir & "\Nero\Lib", @SW_HIDE )
FileDelete ( @CommonFilesDir & "\Nero\Lib\MediaLibraryNSE.dll" )
_ServDelete("NMIndexingService")
RegDelete ( "HKCR\CLSID\{E8933C4B-2C90-4a04-A677-E958D9509F1A}" )
RegDelete ( "HKCR\AppID\{D55E16BA-BBC9-4F7E-A147-E5DFBCC71480}" )
RegDelete ( "HKCR\AppID\NMIndexingService.EXE" )
RegDelete ( "HKLM\SYSTEM\CurrentControlSet\Services\NMIndexingService" )
FileDelete ( @CommonFilesDir & "\Nero\Lib\NMIndexingService.exe" )
RunWait ( @ComSpec & " /c regsvr32 /u /s NMIndexingServicePS.dll", @CommonFilesDir & "\Nero\Lib", @SW_HIDE )
FileDelete ( @CommonFilesDir & "\Nero\Lib\NMIndexingServicePS.dll" )
ProcessClose ( "NMIndexStoreSvr.exe" )
FileDelete ( @CommonFilesDir & "\Nero\Lib\NMIndexStoreSvr.exe" )
RunWait ( @ComSpec & " /c regsvr32 /u /s NMIndexStoreSvrPS.dll", @CommonFilesDir & "\Nero\Lib", @SW_HIDE )
FileDelete ( @CommonFilesDir & "\Nero\Lib\NMIndexStoreSvrPS.dll" )
EndIf

;===============================================================================
; Description: Delete a Windows Service
; Syntax: _ServDelete($iName[, $Computer])
; Parameter(s): $iName - The name of the service to delete
; $Computer - The network name of the computer (optional) The local computer is default
; Requirement(s): None
; Return Value(s): Success - Deletes the service
; Failure Sets @Error = -1 if service is not found
; Author(s) George (GEOSoft) Gedye
; Modification(s):
; Note(s):
; Example(s):
;===============================================================================

Func _ServDelete($iName, $Computer = ".")
$Service = ObjGet("winmgmts:\\" & $Computer & "\root\cimv2")
$sItems = $Service.ExecQuery("Select * from Win32_Service")
For $objService in $sItems
If $objService.Name == $iName Then
$objService.StopService($objService.Name)
$objService.Delete($objService.Name)
Return
EndIf
Next
Return SetError(-1)
EndFunc ;<==> _ServDelete()

I tried the _ServDelete() part with success.

Regards.

Link to comment
Share on other sites

Thx artbio for your effort, but my code from post #109 works just fine. Thanks again.

Hope that CEOCEo's next script will be perfect. ;)

Sure it will. :)

My last suggestion might work on all Windows OS.

Link to comment
Share on other sites

Sure it will. :)

My last suggestion might work on all Windows OS.

Thanks for the function artbio.

I am not the author of that function. I merely suggested it. Just remember that. ;)

Link to comment
Share on other sites

A new release is finally here after great help from AutoIt specialist artbio. After several internal release candidates we now feel our work is complete.

Changelog: 3.0

* Added: Option to extract silently using 7-Zip (artbio)

* Added: Option to install silently with different UI levels (CEoCEo)

* Added: Option to install even if file rename operations are pending (artbio)

* Added: Option to unregister Nero DirectShow filters (artbio)

* Added: Automatic search and use of custom multiple transforms (*.mst) 'Windows SDK Setup Transform Script' (CEoCEo)

* Added: Install of multiple Helpfile Packs and extra helpfiles not included in the original package (artbio) - Extra helpfile support for (*BurnRights*.chm, *ControlCenter*.chm, *Scout*.chm) placed in 'chm' folder

* Added: Removal of unneeded help files and folders (artbio)

* Added: Several error checking improvements (artbio)

* Updated: Major code review specific to the current distribution (CEoCEo & artbio)

* Updated: Removal of 'Media Indexing Services' (CEoCEo)

* Fixed: Silent install with new release of 'Template Packages for Nero Vision 5' (CEoCEo)

This is how to make a transform to enable InCD. Place the mst file together with the script.

In the "Condition" table using Orca, change the feature InCDC9AC4AC7 from

1=1

...to...

CC9AC4AC7=0

This is how to make a transform to enable CopyGadget in Windows XP. Thanks goes to ricktendo64 for this information.

In the "Condition" table using Orca, change the feature NeroCopyGadgetED8C2E75 Level 0 from

NOT(CED8C2E75=1) OR NOT((VersionNT=600 AND (NOT (VersionNT64))))

…to…

NOT(CED8C2E75=1) OR NOT(VersionNT=500 OR (VersionNT=501 AND (NOT (VersionNT64))) OR (VersionNT=502 AND WindowsBuild>2600 AND (NOT (VersionNT64))

Also change the feature NeroCopyGadgetED8C2E75 Level 200 from

(CED8C2E75=0) AND NOT((VersionNT=600 AND (NOT (VersionNT64))))

…to…

(CED8C2E75=0) AND NOT(VersionNT=500 OR (VersionNT=501 AND (NOT (VersionNT64))) OR (VersionNT=502 AND WindowsBuild>2600 AND (NOT (VersionNT64))))

Script is found in my signature ;)

Edited by CEoCEo
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...