Adding a custom application to XP Embedded

J

Jure

Hi,

since i'm new to XP Embedded, i'll ask some general questions. I hope i
won't ask something obvious.

What's the simplest way to add an application to an embedded image? I
read some articles on MSDN and among them

1)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnxpembed/html/customxpecomp.asp
2)
http://msdn.microsoft.com/library/d.../html/tchDifferentShellsForDifferentUsers.asp

As i understood it's necessary to install the application in the XP Pro
environmet making a snapshot of the system before and after the install
(using tools like InCtrl5, Dumpbin,....). Then it's necessary to make a
component which includes all the modified files, and registry keys.
With that component in place, i should add it to the component
database, and next to the configuration in the Target Designer and then
build the system image. Since i want that application to be also my
shell, i'll have to add a component with the prototype set to "Shell
prototype component" and set its "cmiShellPath" property to the path of
the executable file of my application.
Is there a simpler way to achieve this, or do i need to "convert" an
installed application to a (or to some) component(s)? In the first
article mentioned before, i read that it's possible to install a custom
application directly on the running XP Embedded system. The problem is
however, that the shell to which i boot, shouldn't allow the user to
directly access the filesystem - so how can i install an application if
i preconfigured the shell in such a way that it doesn't allow me to do
that. I thought that a possible solution could be to set up an
additional administrator shell (explained in the second article), where
i could run the setup. I must apologise for not having tried the "two
shell" configuration explained in the second article, but now i'm
asking for some general guidelines. So, does anyone have any suggestion
regarding this problem?

I would also like to say that the setup of the application is quite
complex. It requires an reboot and once the setup is finished, it's
also necessary to run the update, which gets the latest updates from
the internet.

Another question i'd like to ask is, if there is anything wrong with
deploying an image to a customer, where the application wasn't
installed using Target Designer using components, but was installed
directly on the running XP Embedded system? It may seem a strange
question, but, as i said, i'm new to XP.

Also, if there is any article or post with the same or similar
question, i would really appreciate if you could point me to it.

I hope this is the right newsgroup to ask such a question. If it isn't
please apologise, and please point me to where i can ask this question.

Thanx in advance for any answers/comments
 
G

Guest

:

1)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnxpembed/html/customxpecomp.asp


Is there a simpler way to achieve this, or do i need to "convert" an
installed application to a (or to some) component(s)? In the first
article mentioned before, i read that it's possible to install a custom
application directly on the running XP Embedded system. The problem is
however, that the shell to which i boot, shouldn't allow the user to
directly access the filesystem
??? How do u do that ??
is it by ewf or third party file system filters...

- so how can i install an application if
i preconfigured the shell in such a way that it doesn't allow me to do
that. I thought that a possible solution could be to set up an
additional administrator shell (explained in the second article), where
i could run the setup. I must apologise for not having tried the "two
shell" configuration explained in the second article, but now i'm
asking for some general guidelines. So, does anyone have any suggestion
regarding this problem?
Yes..

U can install the component during the FBA irrespective of the shell u use.
U can use FBA generic command for this. U need not componentize if u dont
worry about the footprint.

FBA runs in the system privilage hence it will have access to the filesystem.

Dont forget to delete the installation files after the installation is
compleated...



If u really suceeded in the componentization that's better work.
2)
http://msdn.microsoft.com/library/d.../html/tchDifferentShellsForDifferentUsers.asp


I would also like to say that the setup of the application is quite
complex. It requires an reboot and once the setup is finished, it's
also necessary to run the update, which gets the latest updates from
the internet.

Sorry in this case u have to componentize the Application..
At least componentize the update if it is possible...
Another question i'd like to ask is, if there is anything wrong with
deploying an image to a customer, where the application wasn't
installed using Target Designer using components, but was installed
directly on the running XP Embedded system? It may seem a strange
question, but, as i said, i'm new to XP.


No Probs u can always do it ..
Be careful about the file access privilage..


Srivathsan.A
 
J

Jure

Srivathsan said:
??? How do u do that ??
is it by ewf or third party file system filters...

Maybe i wasn't precise enough. Sorry. By "shouldn't allow the user to
directly access the filesystem" i meant that i'll hide any "entry
point" to access the filesystem - you can't run the command shell, you
can't run the Explorer to browse the filesystem. You are just presented
with the application running and if you minimize it, you should see
only a blank desktop (perhaps with a background image).
 
J

Jure

Sorry for making another post. I forgot to ask another thing in the
previous.
Sorry in this case u have to componentize the Application..
At least componentize the update if it is possible...

Could you please explain why is it necessary to componentize the
application in this case. Previously you said that it's possible to
avoid that. Is it because of the internet update? Well, maybe this
isn't a problem after all. I'll explain what i mean. Once the
application is installed, there will be however the necessity of making
further updates from the internet in it's life cycle. So if i should be
able to update it a month since it's running, i should be able to
update it also at the installation time.

I'll try the FBA Generic Command you suggested and report back what i
found out.

Thanks Srivathsan, you gave me A LOT of help (of course if anybody has
some other ideas, i'll be glad to read them)
 
K

Kevin W

It is not necessary to componentize the application. For the current
XPE image I'm building, our custom application and touch screen driver
is manually installed after FBA. Just point cmiShellPath to your exe
path, nothing happens if the application havn't been installed.

After a few custom modifications, the HD is cloned and distributed to
the Target Machines. You are off to a great start finding this
newsgroup. I wasted 3 days for random searches on the Internet. Good
luck!
 
J

Jure

Thanx for your reply Kevin. May i ask another question regarding your
post?
It is not necessary to componentize the application. For the current
XPE image I'm building, our custom application and touch screen driver
is manually installed after FBA. Just point cmiShellPath to your exe
path, nothing happens if the application havn't been installed.

You said that you manually install the custom application and the touch
screen driver. That's the exact scenario as i have. The big question
is: how can you do that manually? I mean, do you have any icons on the
desktop to access the setup application or do you do this differently,
maybe using an additional shell? Since i don't want the user to be able
to browse the underlying filesystem, and since i have a custom shell, i
have a blank desktop without even the taskbar. (Well, i'll have to
figure out how to restore the application if is minimized, since i
don't expect the user to use the Alt-Tab sequence....that's an off
topic question.) In addition i don't want to bother the user with
logging in to his account (in a two account scenario, being the
administrator's acoount the second one).

So, could you please describe how do you do that and, if i'm not
bothering you too much, your counfiguration of the target image (how
many shells do you have, how do you launch the installer, how do you
perform your "custom modifications" on the running image, and any
other hints that you think may come in handy).


In a previous post Srivathsan suggested to use the FBA Generic Command
resource. I tried to install a simple application with it (Winamp) and
using the installed application as a custom shell. It worked. The
problem is that i'm not able to configure anything out of the scope of
winamp's UI. For the real application that i'll have to install, it
would be nice to do some customizations on the built image.


Thanks to both of you, Kevin and Srivathsan, for your answers. Yet now,
you gave me invaluable aid.
 
G

Guest

Jure said:
Thanx for your reply Kevin. May i ask another question regarding your
post?


You said that you manually install the custom application and the touch
screen driver. That's the exact scenario as i have. The big question
is: how can you do that manually? I mean, do you have any icons on the
desktop to access the setup application or do you do this differently,
maybe using an additional shell? Since i don't want the user to be able
to browse the underlying filesystem, and since i have a custom shell, i
have a blank desktop without even the taskbar. (Well, i'll have to
figure out how to restore the application if is minimized, since i
don't expect the user to use the Alt-Tab sequence....that's an off
topic question.) In addition i don't want to bother the user with
logging in to his account (in a two account scenario, being the
administrator's acoount the second one).

Do u have a global image into which u have to install the custom application
and the touch screen driver...???

Why do u want to install the driver in the runtime and not in the FBA ...??

So, could you please describe how do you do that and, if i'm not
bothering you too much, your counfiguration of the target image (how
many shells do you have, how do you launch the installer, how do you
perform your "custom modifications" on the running image, and any
other hints that you think may come in handy).

Have u tried the RunOnce Request through scripts...
In a previous post Srivathsan suggested to use the FBA Generic Command
resource. I tried to install a simple application with it (Winamp) and
using the installed application as a custom shell. It worked. The
problem is that i'm not able to configure anything out of the scope of
winamp's UI. For the real application that i'll have to install, it
would be nice to do some customizations on the built image.
Hum .....
If the configuration is in the Registry u can write a script/ win32 exe to
do the modifications after the installation of the FBA generic command. This
can be done by another generic command after the previous . same for
modifying the inf file in this case it is somewhat complex..

Microsoft says the FBA generic command are pricise and it occurs at the
exact phase hence put a generic command after the phase of the installation
phase..
 
J

Jure

Srivathsan said:
Do u have a global image into which u have to install the custom application
and the touch screen driver...???

I don't understand what do you mean with "global image". Do you mean
perhaps an image which should be deployed on an generic system with
possibly changing hardware and network settings?

Why do u want to install the driver in the runtime and not in the FBA ...??

Well, i think i would be able to install the driver during FBA and i'll
try it. So during FBA i'll first try to install the driver, then the
application. But the question still remains - as i know (and maybe i'm
completely wrong), it's faster to develop if you have the possibility
to change some system's settings after the image is built. Otherwise,
once you have built your "monolithic" system in TD and once the FBA
executes it's tasks (including custom tasks), you can hardly make any
changes to it, specially if you consider that the user's shell is a
custom shell, so with limited functionality.

A solution could (maybe) be to initially set the user's shell to the
explorer shell, then after the FBA make any desired
configurations/changes to the system, and finally, set in the registry
the shell's path to point to the custom application. Do you think this
is a bad idea? Does it have any drawback that i havent thought of?

Have u tried the RunOnce Request through scripts...
Hum .....
If the configuration is in the Registry u can write a script/ win32 exe to
do the modifications after the installation of the FBA generic command. This
can be done by another generic command after the previous . same for
modifying the inf file in this case it is somewhat complex..

No, i haven't tried that yet. But, as you wrote, it's necessary to
write a script or a win32 exe. If it will be necessary, i'll do it,
but, as i said, i'm new to this kind of development, so i'd like to
keep things the most simple as possible.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top