1. Tobias Roth
  2. PowerBuilder
  3. Saturday, 3 February 2024 10:11 AM UTC

Hi,

We currently use some ActiveX controls in Powerbuilder. To be able to use the ActiveX controls without registering them at runtime, we decided to add manifest entries for the corresponding DLL files. The DLLs are deployed by us relative to the EXE in the program directory.

Now the question arises, is there a way or a trick that we are not forced to register the ActiveX files on the developer's computer?
Can we do this for the pb220.exe in the form of a manifest file? Maybe as an external manifest file to pb220.exe.

This would save us a lot of hassle when updating ActiveX components, as there would be no need to unregister and register for ActiveX updates.

What are your experiences? Do you have a special method to simplify the process? :-)

Thanks and Best Regards
Tobi

Bruce Armstrong Accepted Answer Pending Moderation
  1. Monday, 5 February 2024 15:24 PM UTC
  2. PowerBuilder
  3. # 1

You can do the same thing with the PowerBuilder IDE exe.  The same issue applies in that the existing EXE contains a manifest and if you do an external manifest file Windows will ignore that.  The solution is to use MT.exe (https://learn.microsoft.com/en-us/windows/win32/sbscs/mt-exe) to update the internal manifest in the exe with the file you generate.

Not this same process will *not* work for the executables that you generate with PowerBuilder.  A PowerBuilder generated EXE has a stub standard EXE but then contains additional information beyond the stub.  The MT.exe tool doesn't know anything about that extra information, so if you run it on a PowerBuilder generated EXE it will output the modified stub EXE without the additional information and the EXE will no longer run the application.

Unfortunately, the MT tool can't be used to removed the internal manifest, at which point you could just an external manifest.  There are ways to do that, but they involved writing some C++ code.

Comment
  1. Tobias Roth
  2. Monday, 5 February 2024 21:54 PM UTC
Hi Bruce,

Thanks for the detailed answer, I think one approach would be if Appeon could provide an external manifest for the pb***.exe in the future.

Then the necessary information could easily be added there.

I am currently considering whether this would necessarily be less effort than unregistering/registering the ActiveX components when updating them.

Best Regards Tobi
  1. Helpful
There are no comments made yet.
Tobias Roth Accepted Answer Pending Moderation
  1. Sunday, 4 February 2024 16:28 PM UTC
  2. PowerBuilder
  3. # 2

Thank you very much for your answers. We have already used Manifest Maker. Great tool.
Do you know a way to use a manifest file within the IDE to avoid registering ActiveX components on the developers machine?

Comment
There are no comments made yet.
Bruce Armstrong Accepted Answer Pending Moderation
  1. Sunday, 4 February 2024 14:37 PM UTC
  2. PowerBuilder
  3. # 3

What Miguel said.  We use Side by Side Manifest maker (http://www.mazecomputer.com/) to greatly simplify the manifest file generation.  Also, you have to ensure that PowerBuilder does *not* create an internal manifest file.  It does that by default to add the Windows common control ActiveX.  You need to select "No Manifest" in the project painter and include the common control information in the external manifest.  The Side by Side Manifest maker has a page specifically dedicated on how to use it with PowerBuilder:  http://www.mazecomputer.com/sxs/help/pbdotnet.htm

Comment
There are no comments made yet.
Miguel Leeuwe Accepted Answer Pending Moderation
  1. Saturday, 3 February 2024 18:02 PM UTC
  2. PowerBuilder
  3. # 4

Bruce Armstrong commented in some post to use http://www.mazecomputer.com/ to generate the manifest file. Not sure if that's helpful.

regards.

Comment
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.