Using Scheduled Tasks we start our actual application "When I log on". This
seemed to be fine - ethernet/display/keyboard/mouse/opengl all working [we
had tried making the application the shell but it always just raised a memory
access violation error].
When we power up with a USB Memory Stick inserted (if present our app should
read data files from it, not from the local hard disk). We can see the light
on the stick flash (app accessing it) but the app fails to use the files on
If we close the app and re-run it (via opening an Explorer window, then
double-clicking on the app's .exe file), the app reads and uses the USB-based
files, as required!
Does anyone have any idea what could be happening???
www.sjjmicro.com / www.seanliming.com
Book Author - XP Embedded Advanced, XP Embedded Supplemental Toolkit
"Martin Dowie" <Marti...@discussions.microsoft.com> wrote in message
...I've been hunting high and low (well mostly Google-ing!) for anything
that might give us some clues as to how long the USB device is likely to take
to be "installed" into the System.
I don't know the source code of the application at all, but from what I've
seen of it so far it looks like it might try to copy the files across once
(and only once) and fairly early on in it's initialisation.
I guess I'm relieved that you haven't come back saying "Ah, you need an
Explorer shell because X, Y and Z will be missing if you don't". There isn't
anything *that* special about the Explorer shell/.exe is there?!?!
Can it really take /that/ long for the OS to spot / mount the disk?
There is a light that is flashing as if being accessed by the application (2
times, perhaps once for each file it is trying to read?)...
>Can it really take /that/ long for the OS to spot / mount the disk?
Yes, it can. To improve this, we plug the USB stick into every USB
port during creation of the image, so the system has the proper driver
at hand, and the drive shows up faster.
Ralph A. Schmid
I think we may need to take a hit, make a mod to the application and 'poll'
for the drive, say, every 10 seconds until files are found (or not). Once
they are found we can stop polling but we have no way of knowing if there
isn't a drive there or just one with no files (the copy's are done using the
"system" function call with a DOS-like COPY command in it - not via some
file/directory library). Keeps it simple but perhaps too simple! ;-)
Thanks for all the replies.
We have a requirement which matches with yours. We have an Applicaiton as
custom shell. when the machine is started, if a USB mem stick is connected it
has to launch a FTP application. Here are the possible steps which can be
used in the logic. I am not sure whether i will be able to solve your problem
with this but you can look into it.
1) In OnitinDialog or the main function of the Application, call a routine
which checks for the USB mem stick on the system. You can wait for 10 secs
for the USB mem stick to be recognized (Normally it is recognized immediately
as soon as the boot process is complete). Use a wait with a message loop so
that you are not blocking any messages.
2) If Mem stick is present, then you can read the files from the thumb drive.
If you need the logic for USB detection, do let me know.