Jump to content

Recommended Posts

Posted

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. ;)


Posted (edited)
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
Posted (edited)

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
Posted

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

Posted
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")

Posted
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.

Posted (edited)
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
Posted (edited)
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
Posted
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.

Posted

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. ;)

Posted
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.

Posted
Sure it will. :)

My last suggestion might work on all Windows OS.

Thanks for the function artbio.

Posted
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. ;)

Posted (edited)

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

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

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