Has anyone noticed that CPY files don't seem to get processed after Clean Booting an MC9090? My unit is loaded with BSP39...not sure if this just started with BSP39 or if it also occurred with previous BSP's.
If I change this registry value:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\COPYFILES]
"SkipCopy"=dword:00000000
and then do a warm boot, the CPY files get processed.
REG files are still getting processed on a Clean Boot. Is this Engineering's way of slowly closing the door on CPY file support under WM5 or am I just doing something wrong?
Thanks,
Ken
If I change this registry value:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\COPYFILES]
"SkipCopy"=dword:00000000
and then do a warm boot, the CPY files get processed.
REG files are still getting processed on a Clean Boot. Is this Engineering's way of slowly closing the door on CPY file support under WM5 or am I just doing something wrong?
Thanks,
Ken
I've verified the same on BSP39 9094.
By default CPY files are not processed on Coldboot or warmboot and on a clean boot CPY files present in the '\Application' directory is processed.
Points: 1
You voted ‘up’
Issue with CPY file processing.
This problem is solved by copying RunCopyfiles.reg to Application folder, then create a CPY file using Windows subfolder name macro, instead of Windows subfolder name, copy it to Application folder, then re-boot the device.
Windows subfolder macro;
Macro Subfolder name OS
%WSU% Windows\StartUp CE & WM
%WSM% Windows\Start Menu WM
%WSMP% Windows\Start Menu\Programs WM
%WSMS% Windows\Start Menu\Settings WM
%WP% Windows\Programs CE
%WDT% Windows\Desktop CE
Old CPY entry:
\Application\MyApp.exe > \Windows\Programs\MyApp.exe
New CPY entry:
\Application\MyApp.exe > \%WP%\MyApp.exe for CE5.0
\Application\MyApp.exe > \%WSMP%\MyApp.exe for WM5.0
Points: 1
You voted ‘up’
This sounds exactly what the problem is. I took a look at SPR 12189. It doesn't have the RunCopyfiles.REG attached. Do you know what is in this REG file?
Thanks,
Ken
Points: 0
You voted ‘up’
; use the first one in the prog list
[HKEY_CURRENT_USER\Software\Symbol\Startup\Programs\Prog1]
"ColdBootOnly"=dword:00000001
"Continue"=dword:00000001
"Name"=" \\windows\\copyfiles.exe"
"Command"="-q -d \\Application"
Points: 1
You voted ‘up’
Points: 0
You voted ‘up’
.REG and .CPY files have NEVER been processed on a warm boot on ANY device.
That is exactly what the Skip flags are there to achieve.
These are put in the registry when the copy or merge happens and get cleared only manually (as you did) or when the registry is cleared.
On CE5, the registry gets cleared on cold boot. On WM5, the registry gets cleared on clean boot only.
And it is in the cases where the registry gets cleared that the .REG and .CPY files most need to be reprocessed.
If you want them processed on a boot that does not clear the registry, then you need to clear the skip flags before rebooting.
Points: 0
You voted ‘up’
Guys... Please read the SPR again. According to the comments in the PSR, there's nothing wrong with CopyFiles.
Look at the second comment:
If you keep reading, the resolution was to use the macros to get CopyFiles to copy into StartUp and Start Menu\Programs. This has the added benefit of also working on localized terminals.
So, I don't understand if you're saying that CopyFiles isn't running on a Cold boot (It doesn't, out of the box and probably never should) or if it's not running on a Clean Cold Boot (It does -- Perhaps looking at your .cpy file would help solve the problem).
Points: 0
You voted ‘up’
What I'm saying is that CPY files are not being processed correctly on an MC9090 WM5 with BSP35 or BSP39 after a Clean Boot.
I have the following CPY files in the Application folder on a device:
CPY File #1
\Application\FusionUpdate\FusionInstall.lnk > \windows\Startup\FusionInstall.lnk
CPY File #2 (this is the standard AppCenter.CPY provided by Odyssey)\application\appcenter\AppCenter.lnk > \windows\startup\AppCenter.lnk
\application\appcenter\AppCenter.lnk > \windows\start menu\programs\AppCenter.lnk
\application\appcenter\AppCenterAdmin.lnk > \windows\start menu\programs\AppCenterAdmin.lnk
;The next line is needed in order for AppCenter to create the Odyssey Software folder...otherwise it will fail creating the AppCenter folder.
\application\appcenter\junk > \Program Files\Odyssey Software\junk
\application\appcenter\AppCenter.exe > \Program Files\Odyssey Software\AppCenter\AppCenter.exe
\application\appcenter\AppCenterAdmin.exe > \Program Files\Odyssey Software\AppCenter\AppCenterAdmin.exe
CPY File #3
\application\KraftHandheld\KraftHandheld.exe > \Program Files\KraftHandheld\KraftHandheld.exe
\application\KraftHandheld\motorola-sit-conf.xml > \Program Files\KraftHandheld\motorola-sit-conf.xml
\application\KraftHandheld\Symbol.Barcode.Design.dll > \Program Files\KraftHandheld\Symbol.Barcode.Design.dll
;\application\KraftHandheld\Symbol.Barcode.Design.xml > \Program Files\KraftHandheld\Symbol.Barcode.Design.xml
\application\KraftHandheld\Kraft Handheld.lnk > \Windows\Start Menu\Kraft Handheld.lnk
When I Clean Boot the unit, the single file in CPY File #1 is processed, only the first file in CPY File #2 is processed, and none of the files in CPY File #3 is processed. When I install the REG file from SPR #12189 and do a Clean Boot, all three CPY files are processed correctly.
I don't think the problem I had is related to not using macro names since all of the files in CPY File #3 are going to \Program Files. There is no macro name for this folder, correct?
Points: 0
You voted ‘up’
Points: 0
You voted ‘up’
It is possible that CopyFiles has been changed from when this was true but, given the evidence you present, it would seem to be still true.
The easiest way to overcome all of this is to create a cab file to perform the actions you require. Cab files are capable of creating directories as well as copying files into them.
Richard LH
Points: 0
You voted ‘up’
First, when you use the solution posted on the BetaZone you are creating a second version of CopyFiles that runs, still only on Clean Cold Boots, that doesn't exhibit the error you see. A problem with this is that you need to insure that you;re not overwriting an existing Startup entry in the registry. The termional could be configured to place something else in [HKEY_CURRENT_USER\Software\Symbol\Startup\Programs\Prog1]. Second, you're going to be slowing down the already long clean cold boot time, since CopyFiles runs twice.
I've tested this on a number of terminals. I see the issue on an MC70, OEM Version 70.18.0003. I don't see the issue on an MC9090 OEM Version 01.09.0003, an MC70, OEM Verson 04.39.0003 or on a WT4000 terminal running Windows CE. All but the MC70 OS with OEM Version 04.39.0003 should be running the same version of CopyFiles.
What is the OEM version of the OS you are running?
Points: 0
You voted ‘up’
I'm using an MC9090 WM5 with BSP39 (OEM 01.39.0001). I've also seen the problem on the previous version, BSP35. I'm suprised you don't see the problem on the MC70 with BSP39, unless CopyFiles is one of the 12 files that are different between the MC70 and MC9090 (Product Marketing line
Points: 0
You voted ‘up’
I don't know but I may have a related problem. I had a reg file that did not work on a clean boot on my MC7094 using BSP 35. I asked someone in the support center to test the reg file for me and when they clean booted their MC7094 it worked fine for them. The setting was written to the registry correctly. We both clean and blanked our devices and tested this several times and my device consistently failed while his consistenly worked.
Maybe we have a problem that exists on different devices for some reason? Ken have you had other people test this same cpy file to see if it works? Maybe we need to investigate this further.
Tony Ambler
Points: 0
You voted ‘up’
I know what is supposed to have happened. If it quacks like a duck, walks like a duck, ......
The only simple explanation for the observed behaviour is that somehow this is not occurring (creating directories). There are other more complicated explanation but I always try the simple ones first.
Richard LH
Points: 0
You voted ‘up’
Points: 0
You voted ‘up’
I believe we've identified the root cause of the issue.
While CopyFiles does create subdirectories, it won't create sub-directories more than onle level deep. For example, if you have the following CopyFile entries:
and DIR1 doesn't exist, CopyFiles won't create the DIR2 and DIR3 sub-dorectories under DIR1 and the copy will fail. However, the following CopyFile entry will work:
CopyFiles will create DIR1 under Application and copy Test1.dat into it.
I think we can resolve all of our observations with this bug taken into account. So far, we've seen:
In the original issue that Ken posted, this bug would occur randomly, depending on what OS version and product it was tested on. Even though many of these products used the same version of CopyFiles. This occurs because the CopyFile entries that are failing are all copying into sub-directories under \Windows\Start Menu and \Program Files. If the OS hasn't created \Windows\Start Menu or \Program Files, yet, then these CopyFile entries will fail. There's a hint in CPY File #2.
Apparently Odyssey has seen this error and creates an entry for each sub-directory it creates.
Solutions
There are two solutions. The first was the solution provided in SPR 12189. It requires a patched version of CopyFiles to be run. This version will create sub-directories of multiple levels, not just a single level. Both CopyFile entries in the original example above would work correctly.
However, this solution requires that you modify the registry entries for the StartUp application. You have to insure that you don't overwrite any existing entries! Also, CopyFiles will run twice. Once for the original version and once for the new version. This will add some time to the startup process.
The second solution is to follow the example that Odyssey made. Ken's CopyFile entries looked like this:
Following this example, we'd add an entry before line 2 of Copy File #2:
This insures that \Windows\Start Menu is created. The next addition would be to insure that \Program Files is created, by adding an entry to create \Program Files just before the entry that creates \Program Files\Odyssey Software
For CopyFile #3, we would need to insure that \Program Files is created, using the same method above, copying junk into \Program Files.
This solution has the distinct disadvantage of creating extra files in the directory structure. This may not be desirable, especially for the Start Menu directory, since they will show up in the terminal's UI. If that is objectionable, the first solution should be implemented, again, insuring that no other Startup entry is overwritten in the registry.
Points: 0
You voted ‘up’
Thanks for looking into this. I took your findings and did some testing with my CPY files. In order to get all of the files to copy correctly, I had to use the following lines in my CPY files (new lines are in bold):
CPY File #2
;The next line is needed to ensure that the Windows folder is present
\application\appcenter\junk > \windows\junk
\application\appcenter\AppCenter.lnk > \Windows\Startup\AppCenter.lnk
;The next line is needed to ensure that the Start Menu folder is present
\application\appcenter\junk > \windows\Start Menu\junk
\application\appcenter\AppCenter.lnk > \Windows\Start Menu\Programs\AppCenter.lnk
\application\appcenter\AppCenterAdmin.lnk > \Windows\Start Menu\Programs\AppCenterAdmin.lnk
;The next line is needed in order for AppCenter to create the Odyssey Software folder...otherwise it will fail creating the AppCenter folder.
\application\appcenter\junk > \Program Files\junk
\application\appcenter\junk > \Program Files\Odyssey Software\junk
\application\appcenter\AppCenter.exe > \Program Files\Odyssey Software\AppCenter\AppCenter.exe
\application\appcenter\AppCenterAdmin.exe > \Program Files\Odyssey Software\AppCenter\AppCenterAdmin.exe
CPY File #3
;The next line is needed to ensure that the Program Files folder is present
\application\KraftHandheld\junk > \Program Files\junk
\application\KraftHandheld\KraftHandheld.exe > \Program Files\KraftHandheld\KraftHandheld.exe
\application\KraftHandheld\motorola-sit-conf.xml > \Program Files\KraftHandheld\motorola-sit-conf.xml
\application\KraftHandheld\Symbol.Barcode.Design.dll > \Program Files\KraftHandheld\Symbol.Barcode.Design.dll
;\application\KraftHandheld\Symbol.Barcode.Design.xml > \Program Files\KraftHandheld\Symbol.Barcode.Design.xml
\application\KraftHandheld\Kraft Handheld.lnk > \Windows\Start Menu\Kraft Handheld.lnk
It appears as though the CopyFiles utility is run extremely early in the Clean Boot process. I even had to use a CPY file command to put a junk file in \Windows (CPY File #2) to make sure that folder existed. If I didn't include this, the file that goes into \Windows\Startup wasn't created. I tried using the Windows macro names also (i.e. %WSU%) - this didn't help.
There's also another complication - when AppCenter runs, it gives a "This device is not an approved platform for Symbol AppCenter" error message. Warm booting doesn't fix the problem. The only way I'm able to get AppCenter to start up properly is to click on the AppCenter REG file in \Applicaton which re-merges the file to reset the plaform security key.
Given all of these complications, I don't trust using CPY files on WM5 devices. There can be too many device to device variances that may cause things to work on some devices, but not on others. I'm going to stick with using the solution from SPR 12189. From what I've found, it seems to be consistent with its results. As you stated, when each OS update is released I would need to make sure that the REG file for SPR 12189 isn't interfering with a duplicate REG key that the new OS build may be trying to use.
I think we need to roll the fix from SPR 12189 into a BSP. If not, we need to change our product manuals to indicate that CPY file processing on a Clean Boot may not yield the intended results.
Points: 0
You voted ‘up’
"I think we need to roll the fix from SPR 12189 into a BSP. "
I've talked to ECRT and the maintenance team about this issue. I believe this will get rolled up into a future maintenance release.
Points: 0
You voted ‘up’
I would strongly recomend that you stop using CopyFiles altogether ASAP. Move to cab files NOW.
Richard LH
Points: 0
You voted ‘up’
Log in to post comments