CEoCEo Posted May 6, 2008 Posted May 6, 2008 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.
artbio Posted May 6, 2008 Posted May 6, 2008 (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 promptFunc Prompt() If WinExists("Nero") Then $CL = WinGetClassList("Nero") $SL = StringLen($CL) If $SL = 21 Then (...)EndFuncI 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 May 6, 2008 by artbio
CEoCEo Posted May 6, 2008 Posted May 6, 2008 WOW!!! Great job artbio! I'll look into the changes and compare with my current script.
radix Posted May 6, 2008 Posted May 6, 2008 (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 ServicesIf $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")EndIfall those files was deleted. Can you update your script with the above code? The only problem is thattaskkill command doesn't work in XP Home Edition. Edited May 6, 2008 by radix
CEoCEo Posted May 6, 2008 Posted May 6, 2008 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 ServicesIf $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
artbio Posted May 6, 2008 Posted May 6, 2008 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 ServicesIf $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")EndIfall those files was deleted. Can you update your script with the above code? The only problem is thattaskkill command doesn't work in XP Home Edition.Try:ProcessClose("NMBgMonitor.exe")ProcessClose("NMIndexingService.exe")ProcessClose("NMIndexStoreSvr.exe")
radix Posted May 6, 2008 Posted May 6, 2008 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.
artbio Posted May 6, 2008 Posted May 6, 2008 (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 May 6, 2008 by artbio
artbio Posted May 6, 2008 Posted May 6, 2008 (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=serviceHere 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 May 6, 2008 by artbio
artbio Posted May 6, 2008 Posted May 6, 2008 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 ServicesIf $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.
radix Posted May 6, 2008 Posted May 6, 2008 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.
artbio Posted May 6, 2008 Posted May 6, 2008 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.
radix Posted May 6, 2008 Posted May 6, 2008 Sure it will. My last suggestion might work on all Windows OS.Thanks for the function artbio.
artbio Posted May 6, 2008 Posted May 6, 2008 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.
CEoCEo Posted May 12, 2008 Posted May 12, 2008 (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=0This 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 fromNOT(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 May 12, 2008 by CEoCEo
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now