[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

BeeJ

2/29/2012 1:21:00 AM

From Win XP basic onward ...

What is normally done?
(1) A user does not update the OS and I want to install a VB6 app using
a) Packaged install (say Inno)
b) reg-free com manifest (MMM) or PDW
What do I include or what can I include, how do I know?
(Let's assume the the installer is not smart, or is it?)

e.g. quartz.dll, sapi

(A) probably cannot include in installer.
(B) do I demand that the user pre-intall DirectX or SAPI?
Should I check for the .dlls etc or does the installer do that?

Do any of the installers help do this?
Where do you find the info needed to do any of this?
I think Inno has the ability to run any .EXE during install so is that
where something is done?

I have found that even using an installer for one of my apps that if I
install on a development PC it installs just fine. If I install it on
a clean XP Pro PC the install completes but the app won't start. This
I believe is because the VB6 app.exe checks for or tries to load
missing references etc and just quits without message or warning
leaving me in the dark. So I am having difficulty determining what is
wrong. Unfortunately this app uses a lot of references, some that I
created like ActiveX EXEs and other .dlls from third parties or MS.


10 Answers

GS

2/29/2012 1:58:00 AM

0

BeeJ submitted this idea :
> From Win XP basic onward ...
>
> What is normally done?
> (1) A user does not update the OS and I want to install a VB6 app using
> a) Packaged install (say Inno)
> b) reg-free com manifest (MMM) or PDW
> What do I include or what can I include, how do I know?
> (Let's assume the the installer is not smart, or is it?)
>
> e.g. quartz.dll, sapi
>
> (A) probably cannot include in installer.
> (B) do I demand that the user pre-intall DirectX or SAPI?
> Should I check for the .dlls etc or does the installer do that?
>
> Do any of the installers help do this?
> Where do you find the info needed to do any of this?
> I think Inno has the ability to run any .EXE during install so is that where
> something is done?
>
> I have found that even using an installer for one of my apps that if I
> install on a development PC it installs just fine. If I install it on a
> clean XP Pro PC the install completes but the app won't start. This I
> believe is because the VB6 app.exe checks for or tries to load missing
> references etc and just quits without message or warning leaving me in the
> dark. So I am having difficulty determining what is wrong. Unfortunately
> this app uses a lot of references, some that I created like ActiveX EXEs and
> other .dlls from third parties or MS.

If you do reg-free then MMM will show you what dependancies to
distribute AND copy them to a redistribution folder for you. The whole
idea of reg-free is there's no "DLL Hell" and so you can redistribute
everything your app needs to run, from wherever it's installed. That
includes USB devices if so desired.

I just got started using manifests with MMM last week and I can't tell
you enough about how much better my packaging is now, not to mention
never having to check for, register, and unregister another dependancy
ever, ever again!

There is one caveat you should be aware of, though, using MMM's
dpiAware option. See Mike William's/MM's/Olaf Schmidt's replies under
the subjects "Using a manifest for reg-free OCXs" and "Does Win8
support even matter?" for the dialog we've been engaged in on this very
topic.

--
Garry

Free usenet access at http://www.eternal-sep...
ClassicVB Users Regroup!
comp.lang.basic.visual.misc
microsoft.public.vb.general.discussion


Mayayana

2/29/2012 2:46:00 PM

0

I can answer about SAPI. SAPI 5 is on WinXP.
SAPI 4 is very different. If you need to support
SAPI 5 pre-XP it's a long, crazy story. (SAPI 5
is not a redistributable. It's several files and Registry
settings. Microsoft only supports shipping it as
part of an MSI install, but people have created
3rd-party installers.)
If you only need to support XP+ then you don't
have to worry. Just use it. (Unless you want to
specify voices, which is a separate can of worms.)


--
--
"BeeJ" <nospam@spamnot.com> wrote in message
news:jijuij$itr$1@speranza.aioe.org...
| From Win XP basic onward ...
|
| What is normally done?
| (1) A user does not update the OS and I want to install a VB6 app using
| a) Packaged install (say Inno)
| b) reg-free com manifest (MMM) or PDW
| What do I include or what can I include, how do I know?
| (Let's assume the the installer is not smart, or is it?)
|
| e.g. quartz.dll, sapi
|
| (A) probably cannot include in installer.
| (B) do I demand that the user pre-intall DirectX or SAPI?
| Should I check for the .dlls etc or does the installer do that?
|
| Do any of the installers help do this?
| Where do you find the info needed to do any of this?
| I think Inno has the ability to run any .EXE during install so is that
| where something is done?
|
| I have found that even using an installer for one of my apps that if I
| install on a development PC it installs just fine. If I install it on
| a clean XP Pro PC the install completes but the app won't start. This
| I believe is because the VB6 app.exe checks for or tries to load
| missing references etc and just quits without message or warning
| leaving me in the dark. So I am having difficulty determining what is
| wrong. Unfortunately this app uses a lot of references, some that I
| created like ActiveX EXEs and other .dlls from third parties or MS.
|
|


unknown

2/29/2012 6:11:00 PM

0

"BeeJ" <nospam@spamnot.com> wrote in message
news:jijuij$itr$1@speranza.aioe.org...
> From Win XP basic onward ...
>
> What is normally done?
> (1) A user does not update the OS and I want to install a VB6 app using
> a) Packaged install (say Inno)
> b) reg-free com manifest (MMM) or PDW
> What do I include or what can I include, how do I know?

First, like MikeD said, check REDIST.TXT file for files that you can
redistribute. These are usually what came with VB6. Some files have become
part of the OS, so don't include them at all. Example:

msvcirt.dll
msvcrt.dll
msvcrt40.dll

Whenever you use any feature, like DirectX or SAPI, you read the
distribution instructions that came with it. What I do is search MSDN, then
use "Locate", and open up the contents and just read the tiles. I usually
find distribution instructions on a topic by its own. Another way is by
searching MSKB if it came from Microsoft.

For ADO, version 2.5 is preinstalled with Windows 2000 and after. So you
really don't need to redistribute it.

Also, since in the first line you are saying you target XP+, then you don't
have to include the VB6 runtime.

> (Let's assume the the installer is not smart, or is it?)
>
> e.g. quartz.dll, sapi

Before I use any reference listed in VB, I search for who made that
component, and what is required to distribute it. Not doing so would make me
reliant on that component, and who knows how much it costs, and how big the
redistribution package is. If it's not redistrubutable, then I must require
the user to install something from Microsoft, or the third party software.
Some companies don't have a license for you to use the DLL/OCX in your
product even if it's listed in VB. So searching for alternatives beforehand
saves a lot of time and effort later on.

>
> (A) probably cannot include in installer.
> (B) do I demand that the user pre-intall DirectX or SAPI?
> Should I check for the .dlls etc or does the installer do that?

Check the installer documentation. For Inno, see "Remarks" at the end of
this web page:

http://www.jrsoftware.org/ishelp/index.php?topic=fi...

> Do any of the installers help do this?
> Where do you find the info needed to do any of this?
> I think Inno has the ability to run any .EXE during install so is that
> where something is done?
>
> I have found that even using an installer for one of my apps that if I
> install on a development PC it installs just fine. If I install it on a
> clean XP Pro PC the install completes but the app won't start. This I
> believe is because the VB6 app.exe checks for or tries to load missing
> references etc and just quits without message or warning leaving me in the
> dark. So I am having difficulty determining what is wrong. Unfortunately
> this app uses a lot of references, some that I created like ActiveX EXEs
> and other .dlls from third parties or MS.

For your own ActiveX DLL's/OCX's, install them and register them like below
if you are using Inno Setup:

[Files]
Source: MyActiveXDLL.dll; DestDir: "{cf}\BeeJ\" ; Flags: sharedfile
restartreplace uninsrestartdelete uninsnosharedfileprompt regserver

This installs the file in a sub folder under "C:\Program Files\Common
Files", which is the recommended location and registers it. It also allows
you to use the DLL/OCX in more than one application if you needed to do that
in the future.

For ActiveX EXE's, you can't use "regserver" flag, so you have to use a
[Run] entry with /regserver parameter. Example:

[Files]
Source: MyActiveXEXE.exe; DestDir: "{cf}\BeeJ\" ; Flags: sharedfile
restartreplace uninsrestartdelete uninsnosharedfileprompt
[Run]
Filename: "{cf}\BeeJ\MyActiveXEXE.exe"; Parameters: "/regserver"
[UninstallRun]
Filename: "{cf}\BeeJ\MyActiveXEXE.exe"; Parameters: "/unregserver";
RunOnceId: "UnregAxEXE1"; Flags: skipifdoesntexist



BeeJ

2/29/2012 10:27:00 PM

0

SAPI 5 is what I use.

What about voices? There are severl MS voices out there but for some
reason MS parses them out. I did collect several from MS and have them
on one PC and they all work fine. What do you know?


BeeJ

2/29/2012 10:30:00 PM

0

Good info. Thanks.


Mayayana

2/29/2012 11:22:00 PM

0

| What about voices? There are severl MS voices out there but for some
| reason MS parses them out.

There are different voices on different versions. I think
XP only has Sam by default. You can install Mike and Mary,
but I think there's only an MSI version. See here:

http://blogs.msdn.com/b/robertbrown/archive/2005/04/21/4...

Microsoft has designed the whole SAPI 5 system for MSI
installs. It's unusually awkard and poorly designed. The other
options would be to get an installer from a 3rd-party.
(They're available online.) Or write your own. There are
several files to install plus a number of Registry settings
required.

If it's for you then you can just find a Mike/Mary installer.
If you want to distribute it without using an MSI then you
need to do your own custom install. I've got tools to parse
MSMs/MSIs in order to find out exactly what the install requires:

http://www.jsware.net/jsware/ms...

But I'm guessing that's more work than you want to
get into. In which case you'll probably want to just
accept whatever default voice is on a given PC. But
part of the SAPI5 system is the ability to enumerate
voices, so you could write code to do that and pick
the voice you want. (I'm not sure about Vista/7. I
think it's got "Ann".) One could make the case that
you should respect peoples' choice of voice, but I
think that most people have no idea that they even
have that choice.


BeeJ

2/29/2012 11:29:00 PM

0

Thanks for the link.
I have also installed AT&T voices that are quite good. There are lots
of others out there. Love some of the accents too: British,
Australian, etc.
And yes my app does enumerate all voices on the PC and allows the user
to select.


BeeJ

2/29/2012 11:31:00 PM

0

Oops. Looks like the links in the
http://blogs.msdn.com/b/robertbrown/archive/2005/04/21/4...
are dead.


ralph

3/1/2012 12:23:00 AM

0

On Wed, 29 Feb 2012 15:31:23 -0800, BeeJ <nospam@spamnot.com> wrote:

>Oops. Looks like the links in the
>http://blogs.msdn.com/b/robertbrown/archive/2005/04/21/4...
>are dead.
>

Works for me.

You need to chase the birds off the antenna.

-ralph

BeeJ

3/1/2012 12:29:00 AM

0

ralph presented the following explanation :
> On Wed, 29 Feb 2012 15:31:23 -0800, BeeJ <nospam@spamnot.com> wrote:
>
>> Oops. Looks like the links in the
>> http://blogs.msdn.com/b/robertbrown/archive/2005/04/21/4...
>> are dead.
>>
>
> Works for me.
>
> You need to chase the birds off the antenna.
>
> -ralph

Tried many time.
Finally got there through a MSDN route.