Re: WaitForAPIReady CE 6.0



None that we've ever come up with, no. It makes sense that the .NET CF
run-time would wait itself until it was sure that everything it was not
prepared to have fail was ready, but I guess that wasn't high on the
priority list. As for the serial port, of course, you can catch the
exception thrown when the open fails (probably because the serial port
driver isn't loaded and initialized yet). It's the stuff that crashes the
run-time itself that difficult to deal with.

So, you've tried running your application with no shell installed and
everything is fine ("kiosk mode" is sort of generically used to indicate
that there's only one application available to the user, so I just want to
be sure)? Good to know (if surprising).

Paul T.

"Phil" <pclaydon@xxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:28D708A7-E533-4578-B7C3-FE28BA49B2D6@xxxxxxxxxxxxxxxx
Hi Paul

Thanks again for your help. Running with the shell but with the task bar
etc
disabled is of course an option but our c# app runs just fine in kiosk
mode,
and, it has to be said, with a significant improvement in performance;-)

What I do occaisionally get is an IO error (from the serial port, for
which
we use the c# component) on boot-up and I suspect this is because the
framework is not fully 'up' when our c# serial code is autostarted by our
c++
'apploader' code, which is in turn waiting on the various api's. I just
thought there might be a way to tell when it was absolutely safe for our
c#
serial code to start, but it would appear not.

Best Regards

Phil


"Paul G. Tobey [eMVP]" wrote:

I think you're still going to want the shell APIs. I think that
including
the shell, but disabling the task bar and start menu, etc., then waiting
for
the shell API to be ready before launching your managed code is probably
your best bet. Have you tried running your .NET CF application without
the
shell? I think that's a pretty important proof-of-concept.

Paul T.

"Phil" <pclaydon@xxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:15019185-D5BE-4D9A-B418-07C6E78E657E@xxxxxxxxxxxxxxxx
Thanks for your help Dean.

Unfortunately our device will have to run in Kiosk mode when it ships
so
there will be no shell as such, so the start menu approach seems to be
out
of
the picture as well. I am loathe just to wait 'a long time' by sleeping
in
my
thread until everthing 'should' be ready but it seems it might come to
that?

Thanks Again

Phil


"Dean Ramsier" wrote:

Keep in mind that the CF just sits on top of a collection of native
components. There is no single mechanism to determine in general when
a
CF
based app will be able to run because it depends on what underlying
system
component the app might have a dependency on.

I've had trouble with MFC based apps that I tried to start from the
init
key. I found that moving them to the Start menu (launched by the
shell)
always worked. I never did find the dependency, but it wasn't
sufficient
to
just wait on the shell to load...

--
Dean Ramsier - eMVP
BSQUARE Corporation


"Phil" <pclaydon@xxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:A54AF679-BEFE-48C2-A615-C7CD305EB0DA@xxxxxxxxxxxxxxxx
Hi Chris

Thanks for your reply. I actually have a c++ app which is started in
the
Init registry key which in turn then starts the managed apps.
Currently I
am
waiting on SH_GDI, SH_WMGR and SH_COMM (for serial comms?). What
specifically are the other APIS it should wait for to guarantee that
the
managed apps can also run?

Best Regards
--
Phil

Remove the nospam section from my e-mail address.


"Chris Tacke, eMVP" wrote:

There is no check for it, as it's not something in the kernel that
"gets
ready". The issue for running CF apps is knowing if the stuff the
CF
needs
to run is ready, and unfortunately you can't check that inside a CF
app
due
to the obvious Catch-22.


--

Chris Tacke, Embedded MVP
OpenNETCF Consulting
Giving back to the embedded community
http://community.OpenNETCF.com


"Phil" <pclaydon@xxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:37A3EE5A-1DD4-4E27-B046-62FE75B42042@xxxxxxxxxxxxxxxx
Hi All

Does anyone know if there is a value (or constant) of the
dwAPISlotIndex
parameter that I can use with the WaitForAPIReady function in CE
6.0
that
will tell me specifically when the Compact Framework 2.0 is
ready?

Thanks
--
Phil

Remove the nospam section from my e-mail address.











.



Relevant Pages

  • Re: WaitForAPIReady CE 6.0
    ... Running with the shell but with the task bar etc ... serial code to start, ... the shell, but disabling the task bar and start menu, etc., then waiting for ... based app will be able to run because it depends on what underlying ...
    (microsoft.public.windowsce.platbuilder)
  • Re: Reading Serial Port
    ... The problem with reading stale data is that if you have filled up the buffer with old ... every packet, which will help identify the packet sequences that are being lost. ... you program your test app to put data out at a rate ... I've successed to read correctly the serial port through a new ...
    (microsoft.public.vc.mfc)
  • Re: custom shell starts before all services loaded
    ... I created a small app for my custom shell which then starts my main app, ... > Then you should look at WaitForInputIdle API. ...
    (microsoft.public.windowsxp.embedded)
  • Re: custom shell starts before all services loaded
    ... Shell to run the script file. ... > I created a small app for my custom shell which then starts my main app, ... because my main app comes up on the custom display. ... As far as WaitForInputIdle(), ...
    (microsoft.public.windowsxp.embedded)
  • Re: Application starts too soon
    ... each shell internal implementation. ... >>> The application runs froma a batch file. ... >>> shutdown command times out and the computer is ready to be turned off. ... >>> think the app tries to run, encounters an error, and exits. ...
    (microsoft.public.windowsxp.embedded)