I'm bewildered by the documentation at
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcesetup/html/_wcesdk_Creating_an_ini_File_for_the_Application_Manager.asp

This states that "the name must match the application's registered Windows
Uninstall key name, which is found in the
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall registry key".

Now there is of course no such thing as **the**
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall registry key,
because we are talking about two different Registries here - one on the
desktop computer and one on the handheld.

Can anyone un-bewilder me? I'm inclining towards the idea that this refers
to the desktop registry but I'm not absolutely sure, and without an explicit
description of what program uses this value, when, and what for, it's hard
to be sure.

To clarify: I'm looking at a model where people download a setup program
which unpacks the .cab and .ini files into a temporary directory, runs
CeAppManager, and deletes the temporary files that it created. In this
scenario, therefore, I suppose that there will be nothing permanent on the
desktop PC and so the value of the Uninstall key won't be relevant. Am I
right?

An alternative would be for the downloaded setup program to unpack the .cab
and .ini files and store them somewhere permanent, to allow for multiple
installations etc. In that case I *imagine* that I should provide an
uninstaller program for the .cab/.ini combination just as I would for
anything else that I installed in Windows. Is this correct? The result would
be that the .cab/.ini combination would appear in the desktop's Settings >
Add/Remove Programs list, just like any other installed program. Is this
correct also?

RE: CeAppManager and Uninstall key by a-nlewis

a-nlewis
Fri May 27 13:42:07 CDT 2005

------=_NextPart_0001_BDC80EAD
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

Hello Joseph,

I agree - that documentation is pretty hard to follow. First, yes it is
referring to the registry on the desktop. The idea is that you would
create a desktop-to-device install program, and point the INI file to the
uninstaller used to remove the application from the desktop.

For example, let's consider what happens when you install a typical desktop
application. Not only does the setup program install the application, it
also adds an entry in the Control Panel Add / Remove Programs applet to let
you un-install it, right? Well, the way that is done is by creating a
registry entry something like:

[HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\YourAppName]
"UninstallString"="C:\Windows\UNINST.EXE C:\Program
Files\YourAppName\YourAppName.log"

So when you click "Remove" in the Control Panel to remove the program,
Windows just reads the registry entry to find the uninstall string the
setup program provided, and calls that to uninstall the program. So to get
this functionality to work within the Windows CE Application Manager, you
would need to set the "Uninstall" entry to the name of the key created by
the setup program - which, in this case, would be "YourAppName".

Regarding your question as to whether or not the Uninstall key is relevant,
the answer is probably yes. After all, you have installed a set of CAB
files and an INI file, right? Wouldn't you, as an end user, like to be
able to automatically remove those files from your desktop PC once you no
longer need them? And it's a lot easier for Average Joe User to remove
them using the Control Panel than by hunting through Windows Explorer
looking for them. And it's easier still if they can tell from the
Application Manager window that there are Windows CE -specific setup files
that can be removed, along with a description of what they are.

Long story short, this is actually a pretty handy feature for the end user,
so I'd recommend that you go ahead and use it. Just set the "Uninstall"
key to the same name that your setup program registers itself with, and you
should be good to go.

I hope this helps!


---

Nathan Lewis
Microsoft Mobile and Embedded Devices Developer Support

This posting is provided "AS IS" with no warranties, and confers no rights.



--------------------
From: "Joseph Bruno" <nobody@nothing.com>
Subject: CeAppManager and Uninstall key

I'm bewildered by the documentation at
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcesetup/ht
ml/_wcesdk_Creating_an_ini_File_for_the_Application_Manager.asp

This states that "the name must match the application's registered Windows
Uninstall key name, which is found in the
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall registry key".

Now there is of course no such thing as **the**
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall registry key,
because we are talking about two different Registries here - one on the
desktop computer and one on the handheld.

Can anyone un-bewilder me? I'm inclining towards the idea that this refers
to the desktop registry but I'm not absolutely sure, and without an
explicit
description of what program uses this value, when, and what for, it's hard
to be sure.

To clarify: I'm looking at a model where people download a setup program
which unpacks the .cab and .ini files into a temporary directory, runs
CeAppManager, and deletes the temporary files that it created. In this
scenario, therefore, I suppose that there will be nothing permanent on the
desktop PC and so the value of the Uninstall key won't be relevant. Am I
right?

An alternative would be for the downloaded setup program to unpack the .cab
and .ini files and store them somewhere permanent, to allow for multiple
installations etc. In that case I *imagine* that I should provide an
uninstaller program for the .cab/.ini combination just as I would for
anything else that I installed in Windows. Is this correct? The result
would
be that the .cab/.ini combination would appear in the desktop's Settings >
Add/Remove Programs list, just like any other installed program. Is this
correct also?



------=_NextPart_0001_BDC80EAD
Content-Type: text/x-rtf
Content-Transfer-Encoding: 7bit

{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fprq2\fcharset0 MS Sans Serif;}}
\viewkind4\uc1\pard\f0\fs20 Hello Joseph,
\par
\par I agree - that documentation is pretty hard to follow. First, yes it is referring to the registry on the desktop. The idea is that you would create a desktop-to-device install program, and point the INI file to the uninstaller used to remove the application from the desktop.
\par
\par For example, let's consider what happens when you install a typical desktop application. Not only does the setup program install the application, it also adds an entry in the Control Panel Add / Remove Programs applet to let you un-install it, right? Well, the way that is done is by creating a registry entry something like:
\par
\par [HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\YourAppName]
\par "UninstallString"="C:\\Windows\\UNINST.EXE C:\\Program Files\\YourAppName\\YourAppName.log"
\par
\par So when you click "Remove" in the Control Panel to remove the program, Windows just reads the registry entry to find the uninstall string the setup program provided, and calls that to uninstall the program. So to get this functionality to work within the Windows CE Application Manager, you would need to set the "Uninstall" entry to the name of the key created by the setup program - which, in this case, would be "YourAppName".
\par
\par Regarding your question as to whether or not the Uninstall key is relevant, the answer is probably yes. After all, you have installed a set of CAB files and an INI file, right? Wouldn't you, as an end user, like to be able to automatically remove those files from your desktop PC once you no longer need them? And it's a lot easier for Average Joe User to remove them using the Control Panel than by hunting through Windows Explorer looking for them. And it's easier still if they can tell from the Application Manager window that there are Windows CE -specific setup files that can be removed, along with a description of what they are.
\par
\par Long story short, this is actually a pretty handy feature for the end user, so I'd recommend that you go ahead and use it. Just set the "Uninstall" key to the same name that your setup program registers itself with, and you should be good to go.
\par
\par I hope this helps!
\par
\par
\par ---
\par
\par Nathan Lewis
\par Microsoft Mobile and Embedded Devices Developer Support
\par
\par This posting is provided "AS IS" with no warranties, and confers no rights.
\par
\par
\par
\par \pard\li720 --------------------
\par From: "Joseph Bruno" <nobody@nothing.com>
\par Subject: CeAppManager and Uninstall key
\par
\par I'm bewildered by the documentation at
\par http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcesetup/html/_wcesdk_Creating_an_ini_File_for_the_Application_Manager.asp
\par
\par This states that "the name must match the application's registered Windows
\par Uninstall key name, which is found in the
\par HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall registry key".
\par
\par Now there is of course no such thing as **the**
\par HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall registry key,
\par because we are talking about two different Registries here - one on the
\par desktop computer and one on the handheld.
\par
\par Can anyone un-bewilder me? I'm inclining towards the idea that this refers
\par to the desktop registry but I'm not absolutely sure, and without an explicit
\par description of what program uses this value, when, and what for, it's hard
\par to be sure.
\par
\par To clarify: I'm looking at a model where people download a setup program
\par which unpacks the .cab and .ini files into a temporary directory, runs
\par CeAppManager, and deletes the temporary files that it created. In this
\par scenario, therefore, I suppose that there will be nothing permanent on the
\par desktop PC and so the value of the Uninstall key won't be relevant. Am I
\par right?
\par
\par An alternative would be for the downloaded setup program to unpack the .cab
\par and .ini files and store them somewhere permanent, to allow for multiple
\par installations etc. In that case I *imagine* that I should provide an
\par uninstaller program for the .cab/.ini combination just as I would for
\par anything else that I installed in Windows. Is this correct? The result would
\par be that the .cab/.ini combination would appear in the desktop's Settings >
\par Add/Remove Programs list, just like any other installed program. Is this
\par correct also?
\par
\par
\par \pard
\par
\par }
------=_NextPart_0001_BDC80EAD--


Re: CeAppManager and Uninstall key by Joseph

Joseph
Sat May 28 02:56:28 CDT 2005

Nathan, thank you: that makes everything very much clearer!

Two further questions:

1. Is it, therefore, a Bad Thing to put the CAB+INI files in a temporary
directory, run CeAppManager to install them on the Pocket PC, and then erase
them? It sounds as if it is.

2. Where, in that case, should my desktop Setup program put the CAB+INI
files before running CEAppManager? The general convention with Setups is to
put program files in C:\Program Files\MyApp [subject, of course, to
localization of the actual name of C:\Program Files], but I don't know
whether the same convention should apply here. My hesitation is because
neither the CAB nor the INI is actually a program file as far as the desktop
version of Windows is concerned.

"Ask the user" is of course a possible answer to question 2, but (a) one
needs a default anyway and (b) it would be pretty confusing to ask the user
where on the desktop he wants to have some files installed when the one
thing he really knows about this application is that he wants to install it
on his Pocket PC and not on the desktop computer at all!!



Re: CeAppManager and Uninstall key by Claus

Claus
Mon May 30 02:33:42 CDT 2005

Joseph Bruno schrieb/wrote:

> 2. Where, in that case, should my desktop Setup program put the CAB+INI
> files before running CEAppManager? The general convention with Setups is to
> put program files in C:\Program Files\MyApp [subject, of course, to
> localization of the actual name of C:\Program Files], but I don't know
> whether the same convention should apply here. My hesitation is because
> neither the CAB nor the INI is actually a program file as far as the desktop
> version of Windows is concerned.
>
> "Ask the user" is of course a possible answer to question 2, but (a) one
> needs a default anyway and (b) it would be pretty confusing to ask the user
> where on the desktop he wants to have some files installed when the one
> thing he really knows about this application is that he wants to install it
> on his Pocket PC and not on the desktop computer at all!!

We put our software in a "Program Files" directory if the user did not
want another path. We do not only put the .ini and .cab files but a user
manual and an update history, too. And we but an "Install MyApp on a
device" in the short cut menu to put in a device later or into a second,
a third or whatever device. Thus, I think, it is a good idea to suggest
"Program Files" as a default. By the way, what other path would you like
to suggest? There are not many others!

Claus

Re: CeAppManager and Uninstall key by r_z_aret

r_z_aret
Wed Jun 01 23:06:45 CDT 2005

On Fri, 27 May 2005 10:22:48 +0100, "Joseph Bruno"
<nobody@nothing.com> wrote:


clip


>
>To clarify: I'm looking at a model where people download a setup program
>which unpacks the .cab and .ini files into a temporary directory, runs
>CeAppManager, and deletes the temporary files that it created. In this
>scenario, therefore, I suppose that there will be nothing permanent on the
>desktop PC and so the value of the Uninstall key won't be relevant. Am I
>right?

This does not quite agree with my understanding. I believe CeAppMngr
expects to find application installation "stuff" in folders under the
folder containing CeAppMgr.exe. And each folder is supposed to be the
name of the company that provides the app. Also, CeAppMgr is supposed
to delete these files when a user presses the Remove button on
ActiveSync->Tools->Add/Remove Programs, Although I've never seen this
last feature work.


>
>An alternative would be for the downloaded setup program to unpack the .cab
>and .ini files and store them somewhere permanent, to allow for multiple
>installations etc. In that case I *imagine* that I should provide an
>uninstaller program for the .cab/.ini combination just as I would for
>anything else that I installed in Windows. Is this correct? The result would
>be that the .cab/.ini combination would appear in the desktop's Settings >
>Add/Remove Programs list, just like any other installed program. Is this
>correct also?
>

-----------------------------------------
To reply to me, remove the underscores (_) from my email address (and please indicate which newsgroup and message).

Robert E. Zaret, eMVP
PenFact, Inc.
500 Harrison Ave., Suite 3R
Boston, MA 02118
www.penfact.com

Re: CeAppManager and Uninstall key by r_z_aret

r_z_aret
Wed Jun 01 23:06:45 CDT 2005

On Fri, 27 May 2005 18:42:07 GMT, a-nlewis@online.microsoft.com
(Nathan Lewis) wrote:

>Hello Joseph,
>
>I agree - that documentation is pretty hard to follow. First, yes it is

Definitely


clip


>
>Regarding your question as to whether or not the Uninstall key is relevant,
>the answer is probably yes. After all, you have installed a set of CAB
>files and an INI file, right? Wouldn't you, as an end user, like to be
>able to automatically remove those files from your desktop PC once you no
>longer need them? And it's a lot easier for Average Joe User to remove
>them using the Control Panel than by hunting through Windows Explorer
>looking for them. And it's easier still if they can tell from the
>Application Manager window that there are Windows CE -specific setup files
>that can be removed, along with a description of what they are.
>
>Long story short, this is actually a pretty handy feature for the end user,
>so I'd recommend that you go ahead and use it. Just set the "Uninstall"
>key to the same name that your setup program registers itself with, and you
>should be good to go.

Unfortunately, my experience is that the uninstaller started by
ActiveSync does _not_ remove the associated files from the desktop.
Certainly not for my application. And I'm pretty sure about other apps
also. If my application is the odd failure, then I sure would like to
know what I did wrong.

>
>I hope this helps!
>
>
>---
>
>Nathan Lewis
>Microsoft Mobile and Embedded Devices Developer Support
>
>This posting is provided "AS IS" with no warranties, and confers no rights.
>
>
>
>--------------------
>From: "Joseph Bruno" <nobody@nothing.com>
>Subject: CeAppManager and Uninstall key
>
>I'm bewildered by the documentation at
>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcesetup/ht
>ml/_wcesdk_Creating_an_ini_File_for_the_Application_Manager.asp
>
>This states that "the name must match the application's registered Windows
>Uninstall key name, which is found in the
>HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall registry key".
>
>Now there is of course no such thing as **the**
>HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall registry key,
>because we are talking about two different Registries here - one on the
>desktop computer and one on the handheld.
>
>Can anyone un-bewilder me? I'm inclining towards the idea that this refers
>to the desktop registry but I'm not absolutely sure, and without an
>explicit
>description of what program uses this value, when, and what for, it's hard
>to be sure.
>
>To clarify: I'm looking at a model where people download a setup program
>which unpacks the .cab and .ini files into a temporary directory, runs
>CeAppManager, and deletes the temporary files that it created. In this
>scenario, therefore, I suppose that there will be nothing permanent on the
>desktop PC and so the value of the Uninstall key won't be relevant. Am I
>right?
>
>An alternative would be for the downloaded setup program to unpack the .cab
>and .ini files and store them somewhere permanent, to allow for multiple
>installations etc. In that case I *imagine* that I should provide an
>uninstaller program for the .cab/.ini combination just as I would for
>anything else that I installed in Windows. Is this correct? The result
>would
>be that the .cab/.ini combination would appear in the desktop's Settings >
>Add/Remove Programs list, just like any other installed program. Is this
>correct also?
>

-----------------------------------------
To reply to me, remove the underscores (_) from my email address (and please indicate which newsgroup and message).

Robert E. Zaret, eMVP
PenFact, Inc.
500 Harrison Ave., Suite 3R
Boston, MA 02118
www.penfact.com