How can I use a dialog to define the program group name in Installshield 2015 - installshield

I am currently trying to expand our installation program with an option for the user to specify the name of the program group where shortcuts are created under the start menu. (I am aware that this is a somewhat outdated concept)
I am using InstallShield 2015.
I created a localizable property named [PROGRAMGROUP_NAME]. This has automatically created an {ID_STRING46} which I've set to the desired default value. So far so good.
I managed to create a custom dialog with an edit control, which is linked to the above property.
Now comes the tricky part: Under Shortcuts, under "Programs Menu" I first want to add a folder with the program group name, under which to place several shortcuts.
If I enter [PROGRAMGROUP_NAME] that is literally what the name becomes. If I use {ID_STRING46}, it uses the default value, and not what I've entered in the dialog.
Incidentally, when I tried to rename ID_STRING46 to something more meaningful, other things started going wrong so I've left that as is.
What is going wrong here? How do I get the value of the property to be used for the folder name?
EDIT
I am trying to use a custom action now, but I have trouble defining it. My Dialog that sets the property is after CostFinalize, so I assume I have to use SetDirectory - but I have trouble defining it. I get an error stating "could not access network location "
EDIT
I've managed to progress a step. I have manually added a directory with key DIRECTORY_PROGRAM_GROUP (important that it's all caps to make it public) to the directory table. Then, I use a custom action to set that directory to the desired value [ProgramMenuFolder][PROGRAM_GROUP_NAME] after I've run my dialog, and I've modified the shortcut to be created in that folder.
Seems to work great, however, now the program group is no longer removed when uninstalling...

Shortcuts are installed to folders, and the name of the folders below ProgramMenuFolder become the program group as you describe it. So you will need to either build up the Directory table (either directly---note that the DefaultDir column is localizable, and there may already be a string you can update---or through the Files and Folders view) to do what you want, or use custom actions (set property, if before costing; set directory, if after costing) to adjust the location to which your shortcut is installed.
As for the problems renaming ID_STRING46, odds are you didn't update a reference after you changed the name of the string. The simplest way to track down where these are may be to examine differences in the built installer (perhaps using InstallShield's MSI Diff) and then update the relevant references using the direct editor if you can't find them in the normal views.

Related

how to "save" a file/folder in the Node.js app "Universal GUI"

I can't figure out how to add a "save file/folder" input to Universal GUI.
I need to be able to pick a location to pass as a file or folder
to the cli program without the file/folder in question existing already.
Selecting a pre-existing file to pass to the cli command is easy, just use the generic file upload entry.
And Universal GUI already has a "select folder" entry.
Both options require selecting one that already exists.
So all I need is to be able to select a file and/or folder that doesn't exist in a "save" form.
I've never found an alternative to NW.js that doesn't require manually setting up the Node.js launcher.
So that's what I run the app I made in/for Universal GUI.
The folder browser is designed to allow you to select existing folders or create new ones. File select will also allow you to create new files.
It sounds like what you want is to use the folder selector, so the user can select the folder (or create it, then select it) as their output directory. Then give them an input text field to type a file name into. Then you just combine all of that together as an argument for the CLI.
<cmd executable="myexe">
<arg>--save "((outputDirectory))\((fileName)).txt"</arg>
</cmd>
<!--
What would be sent to the command line:
myexe --save "C:\Users\Bob\Desktop\SomeFolder\MyFile.txt"
-->

RPA Blueprism release file Successfully imported but not visible in processes list

I've successfully imported a *.bprelease file to my Blue Prism environment, but the contents are not visible in processes list.
What can I/should I do to have the contents of the package appear in the list after importing?
This problem lies in a bug in new version of Blue Prism. It is actually quite common, I've seen this happen for a few people in my team. There are two things needed to know to fully understand the problem:
Since 6.3 (the multi-team env. upgrade) when you import an object/process that is not in a group, it will be added to a new group called 'Default'
Blue Prism will not allow you to manually add a group with the name of an existing group (under the same parent group)
If a group with a duplicate name gets created anyway (by an import or by DB command), one of the groups will not be displayed
And that is what happened here.
The easiest thing to resolve this problem is to simply rename the 'Default' folder you see to something else and then refresh the view (hit F5). You should see a new folder pop-up, with your invisible objects.
Alternatively, you could achieve the same results with a couple of SQL scripts, but this is much quicker.
Sometimes even renaming the default folder does not work.
It is because there is a previous object (for example) with the same name, but not assigned to any folder.
We have solved the issue importing the object alone, and chosing "renaming the previous version" option instead of overwriting. So, the object is properly imported and placed in the Default folder, from where you can move it to the right one

Rename individual in Protege

With others types, like classes or properties it works to rename object. But for individual I can't find such option.
Is it possible to rename individual without deleting and recreating it? And if not, why?
In order to rename an individual or any other entity on Protégé you will need to click on the entity and choose: Refactor -> Rename Entity...
This will open the following dialog where you can enter the new name:
Another way of doing this is clicking the entity and then pressing Ctr + U, this shortcut will open the same dialog (and it's way faster if you have to rename many things).
Found a solution
Select the entity and go to the top menu - Refactor > Rename Entity and you'll get a renaming dialogue.
Renaming a named individual is the same as renaming any other entity from OWLAPI, so if you can't find it in the UI it might just be a missing functionality.
If you wish to write Java code with the owlapi, you can use OWLEntityRenamer.
Editing with an XML tool will also work, for XML formats - however the operations will be different for rdf/XML and owl/XML.
Plain text editing will also work. Pay attention to name changes that also change the namespace, though - it might require changes in the declared entities.
Haven't found any capabilities to edit from UI, but it's possible to edit from any XML-editor
Another option is to create a slot "name" then go to the instance you created and give the name you wish.
To display the instance with the name you just gave go to the instance browser->menu->select display slot->choose name.You can see here a screenshot which will make it clear!

Installshield Installscript properties

We have Installshield 2009 for our product. I am trying to muddle my way through it to make some updates (obviously, I am not the original author).
Within, there is a fairly complex arrangement of components and files, plus, there is a script section for some custom work.
I need to accomplish the following, without creating a blank object in the repository.
One of the components needs to create a directory tree (two folders deep).
Within that tree (deepest folder), I need to create a blank file.
Questions:
Do I need to create two components, one for each directory level, or will the tree be created if I specify [INSTALLDIR]folder1\folder2?
I am thinking that the installscript would be the place to create the empty file, based on the CreateFile example in the help. I notice that, in the components page, that, once I typed the value for the Destination property, that a little "tag" of sorts appeared at the start {FOLDER2}. Can I used that tag as an argument to CreateFile and how would I reference it?
Regardless of the project type, I would probably suggest creating the folder structure in the Files and Folders view, and adding the empty file there. It's just simple and you'd be done with fewer chances of error.
As to the questions you asked, neither Basic MSI nor InstallScript projects require components for every folder level on the system. Note that if the folder isn't already there when it executes, the CreateFile approach is unlikely to create the folders for you.
In a Basic MSI project, {FOLDER2} indicates that FOLDER2 is the name of the directory entry, and after CostFinalize there will be a property of the same name that contains its run-time location. You can retrieve it in an InstallScript custom action with MsiGetProperty. In a pure InstallScript project the approach would be a little different, worst case it would be something like TARGETDIR ^ "folder1" ^ "folder2" (my InstallScript is rusty).

Add INSTALLDIR to Product Name in an Add/Remove Programs entry

I have an Installscript MSI project created in InstallShield. I want to be able to append the install directory to the Add/Remove Programs (Programs and Features) entry when my application is installed. This application can be installed on the workstation multiple times to different folder locations, so I want some way to visually separate them in Add/Remove Programs.
Right now, the Add/Remove Programs entry for my product looks like this:
My Application Name
I want it to look like this:
My Application Name - My Application Install Folder (replaced by [INSTALLDIR])
How do I do that?
I don't believe there's a supported way to do this based on the registry entry values and where they come from:
http://msdn.microsoft.com/en-us/library/aa372105(v=vs.85).aspx
that are used to show that data, and the fact that the MSI ProductName property is fixed text that I think you can't change after the install has started. You could test that of course by simply using some script or a custom action to set the ProductName property to [ProductName] plus [INSTALLDIR].
So you'd have to update that Registry item in the Uninstall registry data yourself. At the very end of the install when the entries are there modify them with custom action code by appending the INSTALLDIR value.
It's not something that people do with MSI setups and I wouldn't recommend it. The value will probably overflow the field length because ProductName is limited to 63 characters.
If the issue is that there may be several uninstall entries and you want to verify that the user is uninstalling the right one, you could probably add some dialog to show the actual version somehow if you save that install location somewhere. The ARPNOREMOVE property will prevent direct uninstall, then you can force a Modify dialog to do Change and then Uninstall with more detail. The general idea is here:
http://devdare.blogspot.com/2012/10/how-to-force-gui-uninstall-using.html

Resources