none
Building OS in VS2005 RRS feed

  • Question

  • I have created a wince application in 2005 mfc support , and i have installed that application in my smart device (idea6410) . When i on the device , 1st win CE operating system is booting then only my application coming , but my requirement is to run my application alone without booting the wince operating system screen. i m using vs2005, win ce 6.0 mfc application. smart device = idea6410.
    Friday, January 7, 2011 4:23 AM

All replies

  • IF i understood it correctly, you need to launch your application before the shell.

     

    To do this follow the below steps:-

     

    1. Create a launcher application and call the function to launch your exe for eg

    CreateProcess(L"\\Mounted Volume\\Release\\test.exe",\
                    NULL, NULL, NULL, NULL,CREATE_NEW_CONSOLE, NULL, \
                    NULL, NULL, &ProcessInfo);

     

    2. Do the registery settings in project .reg file to launch your application (launcher) which is built with OS dedicated to launch your mfc based exe.

     

    For eg :-

    [HKEY_LOCAL_MACHINE\init]
    "Launch300"="Launcher.exe"
    "Depend300"=hex:xx,yy,zz

    Where xx,yy,zz are order of application which launcher.exe is depended upon.

     

    Make sure that launch order of your launcher.exe is ahead of explorer Shell

     

    In simple words you need to launch your mfc based application before explorer is launched by the OS.

     

    ---Misbah

    • Edited by Misbah Khan Friday, January 7, 2011 6:17 AM Added few lines
    • Proposed as answer by Misbah Khan Monday, January 10, 2011 5:20 AM
    Friday, January 7, 2011 6:12 AM
  • Hi Thanks for your reply. May i know where i will create launcher application. in side my application or any where?????
    Friday, January 7, 2011 6:42 AM
  • There is a bit more involved than simply adding your application to the
    Init key, especially if your application is a compact framework [edit: just re-read your post; you're creating an MFC app to this does not apply to you]
    application or you want to start from a mounted volume. Apart from that
    you really need some sort of a shell to allow several functions of
    Windows CE to keep working correctly.
     
    Basically, what you have to do is the following:
     
    Replace the explorer shell with your own minimalistic shell. An example
    of a minimalistic shell can be found here:
    \WINCE600\PUBLIC\WCESHELLFE\OAK\TASKMAN
     
    If your application is a .NET CF app, you'll need to create and launch
    an application that waits for the window manager and shell API's to be
    ready and use signalstarted to delay load your application.
     
    If you then want to start your application from a mounted volume you
    also have to make sure this volume is fully mounted and operational
    before launching your application.
     
    Finally, you can launch your application through the HKLM\Init Launch
    and Depends registry values, depending on the various launcher apps
    described above.
     
    In short; a lot more than a simple HKLM\Init entry, especially for .NET
    CF apps or apps launched from a mounted volume.
     

    Good luck,

    Michel Verhagen, eMVP
    Check out my blog: http://guruce.com/blog

    GuruCE
    Microsoft Embedded Partner
    http://guruce.com
    Consultancy, training and development services.
    Friday, January 7, 2011 8:33 AM
    Moderator
  • For what its worth, I've seen MFC apps fail to load from the init key too.  It worked when launched  via the startup folder, so I never tracked down the dependency.  The advice to wait for the windowing/shell APIs to be available is still a good idea...
    Dean Ramsier eMVP BSQUARE Corporation
    Friday, January 7, 2011 2:12 PM