Solved

InstallShield Pro NEWBIE: How to implement AskPath?

Posted on 2006-06-19
1
442 Views
Last Modified: 2010-07-27
Dear Experts,

I work for a small company, and I'm afraid I'm in way over my head on this one thing:  I need to modify our InstallShield Pro (11.5) setup to allow the user to select the target pack and directory.  So far, we have done only the simplest things with InstallShield (mostly in Express), and I know next to nothing about the more advanced features.

I have found this AskPath example (below) in their Help, but I have no idea how to implement it. (Where do I PUT it?)  I don't know what an "entry-point function" is, or how to "execute the custom action in a sequence".  Could anyone either tell me some step-by-step instructions, or maybe point me to a user-friendly site for beginners?  

Thanks a lot!
--BrianMc1958


NOTE
To call this function in a Basic MSI setup, you must first create a custom action for the entry-point function, execute the custom action in a sequence or as the result of a dialog's control event, and then build the release.
/*-----------------------------------------------------------*\
 * InstallShield Example Script
 * Demonstrates the AskPath function.
 * This script obtains the path to a folder on the
 * end user's computer.  If the path does not exist, it creates
 * a folder at that location if indicated by the
 * end user.  Finally, it displays the selected path.
 *
\*-----------------------------------------------------------*/
// Include Ifx.h for built-in InstallScript function prototypes.

#include "Ifx.h"
      export prototype ExFn_AskPath(HWND);
function ExFn_AskPath(hMSI)
    STRING szMsg, svResultPath[101];
    BOOL bTargetDirOk;
begin
    // Disable the Back button in installation dialog boxes.
    Disable (BACKBUTTON);
    // Create the message to display in the AskPath dialog box.
    szMsg = "Specify a folder for the application.";
    // Initialize valid path indicator.
    bTargetDirOk = FALSE;
    repeat
        // Get a path from the user.  The default path is
        // the current value of the system variable INSTALLDIR.
        if (AskPath (szMsg, INSTALLDIR, svResultPath) = NEXT) then
            // Does the path entered by the user exist on the
            // target system?
            if (ExistsDir (svResultPath) = 0) then
                // If it exists, set indicator to exit the loop.
                bTargetDirOk = TRUE;
            else
                // If the path doesn't exists, ask if it should be created.
                 if (AskYesNo ("Folder does not exist. Create it?",YES) = YES) then
                    // Attempt to create the folder (directory).
                    if (CreateDir (svResultPath) =0) then
                        // If the folder was created, set indicator to exit the loop.
                        bTargetDirOk = TRUE;
                    else
                        // Inform the end user that the folder was not created.
                        MessageBox ("Unable to create " "+ svResultPath, WARNING);
                    endif;
                endif;
            endif;
        endif;
    until bTargetDirOk;
    // Display the name of the target folder.
    MessageBox ("The target folder is " + svResultPath, INFORMATION);
    // You'd also enable the Back button for subsequent dialog boxes.
    Enable (BACKBUTTON);
end;

0
Comment
Question by:BrianMc1958
1 Comment
 
LVL 30

Accepted Solution

by:
ded9 earned 500 total points
ID: 16935642
0

Featured Post

Ransomware-A Revenue Bonanza for Service Providers

Ransomware – malware that gets on your customers’ computers, encrypts their data, and extorts a hefty ransom for the decryption keys – is a surging new threat.  The purpose of this eBook is to educate the reader about ransomware attacks.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I use more than 1 computer in my office for various reasons. Multiple keyboards and mice take up more than just extra space, they make working a little more complicated. Using one mouse and keyboard for all of my computers makes life easier. This co…
Healthcare organizations in the United States must adhere to the guidance of both the HIPAA (Health Insurance Portability and Accountability Act) and HITECH (Health Information Technology for Economic and Clinical Health Act) for securing and protec…
Using Adobe Premiere Pro, the viewer will learn how to set up a sequence with proper settings, importing pictures, rendering, and exporting the finished product.
An overview on how to enroll an hourly employee into the employee database and how to give them access into the clock in terminal.

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question