Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 341
  • 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
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

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