• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 342
  • Last Modified:

Question about the Installation.

Hi all,
My project needs to use an OCX component. Now I use the "InstallShield for
D4" make the setup files, At its "Make Registry Changes" property, I add "Regsvr32 Test.ocx" to "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce" key

But the problem is after copy all the files, must reboot the computer. How to avoid this?
0
SupWang
Asked:
SupWang
2 Solutions
 
TOndrejCommented:
There may be several options for you:

1. Tell Installshield to register the OCX. This may not be available in your old version of Installshield Express.

2. Tell Installshield to run regsvr32 (or your own executable, see below) during the installation.
You can register your OCX in code. I'm not sure if you have this option in your version of Installshield.

3. You can register your OCX in code, at startup of your application (if you detect that it's not already registered). Have a look at Demos\ActiveX\TRegSvr.
0
 
SupWangAuthor Commented:
Hi TOndrej,
Not found this option in this version of Installshield.
Can I add some commands to the iwz file?(*.iwz)
0
 
TOndrejCommented:
Sorry, I don't know. I don't have neither Delphi 3 anymore nor the version of Installshield Express that came with it.
IIRC, since Delphi 5 Installshield allows you to check an option to register a COM DLL or OCX during installation.
0
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

 
Lee_NoverCommented:
you can manually register them in your app at startup
get the modules DllRegisterServer procedure and call it
like this :


type
  TRegSvr = procedure; stdcall;

procedure RegisterAX(const FileName: string);
var
  hLib: Cardinal;
  RegSvr: TRegSvr;
begin
  hLib:=LoadLibrary(PChar(FileName));
  if hLib = 0 then exit;
  try
    @RegSvr:=GetProcAddress(hLib, 'DllRegisterServer');
    if @RegSvr = nil then exit;
    RegSvr;
  finally
    FreeLibrary(hLib);
  end;
end;


DllRegisterServer is case sensitive so be careful :)
the code was writen directly in the browser but it should be fine
0
 
CleanupPingCommented:
SupWang:
This old question needs to be finalized -- accept an answer, split points, or get a refund.  For information on your options, please click here-> http:/help/closing.jsp#1 
EXPERTS:
Post your closing recommendations!  No comment means you don't care.
0
 
Lukasz LachCommented:
SupWang,
No comment has been added lately (18 days), so it's time to clean up this TA.
I will leave a recommendation in the Cleanup topic area for this question:

RECOMMENDATION: split points between TOndrej http:#7140745 and Lee_Nover http:#7142176

Please leave any comments here within 7 days.

-- Please DO NOT accept this comment as an answer ! --

Thanks,

anAKiN
EE Cleanup Volunteer
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now