Results 1 to 35 of 35

Thread: C++ VB installer stub comm

  1. #1

    Thread Starter
    Member filburt1's Avatar
    Join Date
    Aug 1999
    Posts
    6,935

    C++ VB installer stub comm

    This thread is for those interesting in developing a Visual Basic installer stub. It will copy the VB runtimes, register any intrinsic control DLLs and OCXs, and shell out a "real" setup program written in VB and kill itself. This is similar to the "Please wait while Setup initializes" in a setup made by the Package and Deployment Wizard/Setup Toolkit.
    Last edited by filburt1; Oct 14th, 2001 at 08:35 PM.

  2. #2
    PowerPoster sail3005's Avatar
    Join Date
    Oct 2000
    Location
    Chicago, IL, USA
    Posts
    2,340
    It's probably gonna start out as c++ console i think.

    Maybe we can add a GUI later if it actually works and stuff

    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA

  3. #3

    Thread Starter
    Member filburt1's Avatar
    Join Date
    Aug 1999
    Posts
    6,935
    It shouldn't need a GUI, except for a big ol' Cancel button.

  4. #4
    PowerPoster sail3005's Avatar
    Join Date
    Oct 2000
    Location
    Chicago, IL, USA
    Posts
    2,340
    ok, what are the exact files that you want it to copy?

    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA

  5. #5

    Thread Starter
    Member filburt1's Avatar
    Join Date
    Aug 1999
    Posts
    6,935
    The VB runtimes and enough dependencies to get a REALLY simple VB program up and running. The setup that I'll make will only use intrinsic controls and stuff. So far I think only MSVBVM50.DLL is needed (this is VB5).

  6. #6
    PowerPoster sail3005's Avatar
    Join Date
    Oct 2000
    Location
    Chicago, IL, USA
    Posts
    2,340
    ok, i see. something we could do is make a text file that the program reads to know which files to copy over. we could name it wahtever we want. But that would allow on;y the files the programmer needs to be copied copied over.

    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA

  7. #7

    Thread Starter
    Member filburt1's Avatar
    Join Date
    Aug 1999
    Posts
    6,935
    Which is fine.

  8. #8
    PowerPoster sail3005's Avatar
    Join Date
    Oct 2000
    Location
    Chicago, IL, USA
    Posts
    2,340
    exactly how much c++ do you know filburt?

    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA

  9. #9

    Thread Starter
    Member filburt1's Avatar
    Join Date
    Aug 1999
    Posts
    6,935
    I know REALLY simple stuff with pointers, and much more about File I/O, string/vector manipulation using the College Board AP Computer Science classes...

  10. #10
    PowerPoster sail3005's Avatar
    Join Date
    Oct 2000
    Location
    Chicago, IL, USA
    Posts
    2,340
    ok, so when do you want to start on this?>

    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA

  11. #11

    Thread Starter
    Member filburt1's Avatar
    Join Date
    Aug 1999
    Posts
    6,935
    I'll really get going tonight (USA EST) when I get home from my mentorship.

  12. #12
    PowerPoster sail3005's Avatar
    Join Date
    Oct 2000
    Location
    Chicago, IL, USA
    Posts
    2,340
    ok, good. i'll be on then, as i am sick and have not much else to do

    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA

  13. #13
    PowerPoster sail3005's Avatar
    Join Date
    Oct 2000
    Location
    Chicago, IL, USA
    Posts
    2,340
    anyone else wanna help?

    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA

  14. #14

    Thread Starter
    Member filburt1's Avatar
    Join Date
    Aug 1999
    Posts
    6,935
    'Kay, I'm ready to start this thang. BTW, I have Borland C++ 5.04 (which crashes under Windows XP ).

  15. #15

    Thread Starter
    Member filburt1's Avatar
    Join Date
    Aug 1999
    Posts
    6,935
    Code:
    // Visual Basic Installer Stub
    // Designed for Visual Basic 5.0 and 6.0
    // Copyright (c) 2001 Arien "filburt1" Talabac, "sail3005"
    
    #include <iostream.h>
    
    int main()
    {
    	cout << "Work!" << endl;
    }
    I'm done!

    I dunno how to shell an outside app, there are like a million exec commands.

  16. #16
    PowerPoster sail3005's Avatar
    Join Date
    Oct 2000
    Location
    Chicago, IL, USA
    Posts
    2,340
    Originally posted by filburt1
    'Kay, I'm ready to start this thang. BTW, I have Borland C++ 5.04 (which crashes under Windows XP ).
    one q...why aren't you using VC++?

    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA

  17. #17

    Thread Starter
    Member filburt1's Avatar
    Join Date
    Aug 1999
    Posts
    6,935
    Don't have it. BTW, the latest (obviously not anywhere near finished):

    Code:
    // Visual Basic Installer Stub
    // Designed for Visual Basic 5.0 and 6.0
    // Copyright (c) 2001 Arien "filburt1" Talabac, "sail3005"
    
    // ap*.h classes are from the College Board; download them at
    // http://www.collegeboard.org/ap/compu...l/classes.html
    
    #include <iostream.h>
    #include <fstream.h>
    #include <windows.h>
    #include <conio.h> // requires Borland compiler
    #include "apstring.h"
    #include "apvector.h"
    
    #define _PROJECT_VERSION_ "1.0.0"
    #define _SCRIPT_FILE_ "script.iss"
    
    apstring WindowsSystemDirectory()
    // Returns a path to the Windows system directory or "" on error.
    {
        UINT i;
        char path[MAX_PATH];
        UINT sz = MAX_PATH;
        i = GetWindowsDirectory(path, sz);
        return apstring(path);
    }
    
    int main()
    {
    	cout << "Visual Basic Installer Stub" << endl;
        cout << "Version " << _PROJECT_VERSION_ << endl;
        cout << endl;
        cout << "Searching for stub script \"" << _SCRIPT_FILE_ << "\"...";
        ifstream in(_SCRIPT_FILE_, ios::nocreate);
        if (in.fail())
        {
            cout << "Failed" << endl;
            return 1;
        }
        cout << "Found" << endl;
        cout << "Loading script commands...";
        apstring currentLine("");
        apvector<apstring> lines;
        while (!in.eof())
        {
            getline(in, currentLine);
            lines.resize(lines.length() + 1);
            lines[lines.length() - 1] = currentLine;
        }
        in.close();
        cout << "Loaded " << lines.length() << " directive(s)" << endl;
        cout << "Executing directives..." << endl;
        for (long i = 0; i < lines.length(); i++)
        {
            currentLine = lines[i]; // cache it for speed
            if (currentLine.find("copytowinsysdir") == 0)
            {
                apstring source;
                int spaceLoc = currentLine.find(' ');
                if (spaceLoc != npos)
                {
                    source = currentLine.substr(spaceLoc + 1,
                            currentLine.length() - spaceLoc);
                    cout << "Copying \"" << source
                            << "\" to \"" << WindowsSystemDirectory() << "\"...";
                    cout << "Done" << endl;
                }
            }
            else if (currentLine.find("copytowinsysdirandregister") == 0)
            {
            }
            else if (currentLine.find("shellprocess") == 0)
            {
            }
            else
            {
                cout << "Unrecognized directive \"" << currentLine << "\"" << endl;
            }
        }
        cout << "Stub execution complete." << endl;
        return 0;
    }

  18. #18
    PowerPoster sail3005's Avatar
    Join Date
    Oct 2000
    Location
    Chicago, IL, USA
    Posts
    2,340
    Cool, looks like a great start. I am gonna go to bed soon, but i will work on what you have there tommarow, and see what i can hack out.

    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA

  19. #19

    Thread Starter
    Member filburt1's Avatar
    Join Date
    Aug 1999
    Posts
    6,935
    Okay. Here's a sample Installer Stub Script (.iss) file.

    Code:
    copytowinsysdir msvbvm50.dll
    copytowinsysdirandregister specialsetupactivexcontrol.ocx
    shellprocess "setup.exe"

  20. #20
    PowerPoster sail3005's Avatar
    Join Date
    Oct 2000
    Location
    Chicago, IL, USA
    Posts
    2,340
    looks great
    one tip...

    lets make the vars like this copyToWinSysDir msvbvm50.dll so it is more readable? is that ok?

    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA

  21. #21

    Thread Starter
    Member filburt1's Avatar
    Join Date
    Aug 1999
    Posts
    6,935
    Sure, I'll just make the code case insensitive.

  22. #22
    Junior Member Fencer5's Avatar
    Join Date
    Oct 2000
    Posts
    18
    Sounds really cool... don't know much in C++, but I would be very interested in using the stub when you're done - with your name on it
    Seth Gannon
    Visual Basic 6 Enterprise SP5

  23. #23

    Thread Starter
    Member filburt1's Avatar
    Join Date
    Aug 1999
    Posts
    6,935
    DIE, Package and Setup Wizard! DIE!

    Note that all this does is get a crutch up for a full-blown VB setup program.

  24. #24
    Junior Member Fencer5's Avatar
    Join Date
    Oct 2000
    Posts
    18
    yeah - i know - i have one that i compiled in my age old version of QB4.5 (those were the days) - wouldn't mindd C++ one
    Seth Gannon
    Visual Basic 6 Enterprise SP5

  25. #25

    Thread Starter
    Member filburt1's Avatar
    Join Date
    Aug 1999
    Posts
    6,935
    QBasic couldn't do all the things we need like getting the system directory and checking if a file exists in a function (error trapping doesn't work in functions in QB ).

  26. #26
    PowerPoster sail3005's Avatar
    Join Date
    Oct 2000
    Location
    Chicago, IL, USA
    Posts
    2,340
    filb can you post the project in a zip file?

    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA

  27. #27

    Thread Starter
    Member filburt1's Avatar
    Join Date
    Aug 1999
    Posts
    6,935
    Here it is so far:

    Code:
    // Visual Basic Installer Stub
    // Designed for Visual Basic 5.0 and 6.0
    // Copyright (c) 2001 Arien Talabac
    
    // ap*.h classes are from the College Board; download them at
    // http://www.collegeboard.org/ap/compu...l/classes.html
    
    #include <iostream.h>
    #include <fstream.h>
    #include <windows.h>
    #include <stdio.h>
    #include <ctype.h>
    #include "apstring.h"
    #include "apvector.h"
    
    #define _PROJECT_VERSION_ "1.0.0"
    #define _SCRIPT_FILE_ "script.iss"
    #define _WAIT_FOR_KEY_PRESS_TERMINATE_ true
    #define _COPYRIGHT_NOTICE_ "Copyright (c) 2001 Arien Talabac"
    
    // Uncomment below if bool is not a keyword in your compiler:
    /*
    #define bool int
    #define true 1
    #define false 0
    */
    
    apstring windowsSystemDirectory()
    // Returns a path to the Windows system directory or "" on error.
    {
        UINT i;
        char path[MAX_PATH];
        UINT sz = MAX_PATH;
        i = GetWindowsDirectory(path, sz);
        return apstring(path);
    }
    
    bool copyFile(const apstring &source, const apstring &dest)
    // Copies source to dest and return true on success.
    {
        long flag = CopyFile(source.c_str(), dest.c_str(), FALSE);
        return (flag != 0);
    }
    
    apstring lowercase(apstring s)
    // Returns a lowercase version of s
    {
        for (int i = 0; i < s.length(); i++)
        {
            s[i] = tolower(s[i]);
        }
        return s;
    }
    
    bool executeScriptCommand(const apstring &s)
    // Executes s and returns true on success.
    {
        if (s.find("copytowinsysdir") == 0)
        {
            int spaceLoc = s.find(' ');
            if (spaceLoc != npos)
            {
                apstring source = s.substr(spaceLoc + 1, s.length() - spaceLoc);
                apstring dest(windowsSystemDirectory() + "\\");
                cout << "Copying \"" << source << "\" to \"" << dest << "\"...";
                if (copyFile(source, dest + "\\"))
                {
                    cout << "Done" << endl;
                    return true;
                }
                else
                {
                    cout << "Failed" << endl;
                    return false;
                }
            }
            else
            {
                cout << "Bad syntax in \"" << s << "\"" << endl;
                return false;
            }
        }
        else if (s.find("copytowinsysdirandregister") == 0)
        {
        }
        else if (s.find("shellprocess") == 0)
        {
        }
        else
        {
            cout << "Unrecognized directive \"" << s << "\"" << endl;
            return false;
        }
        return true;
    }
    
    int main()
    {
    	cout << "Visual Basic Installer Stub" << endl;
        cout << "Version " << _PROJECT_VERSION_ << endl;
        cout << _COPYRIGHT_NOTICE_ << endl;
        cout << endl;
        cout << "Searching for stub script \"" << _SCRIPT_FILE_ << "\"...";
        ifstream in(_SCRIPT_FILE_, ios::nocreate);
        if (in.fail())
        {
            cout << "Failed" << endl;
            return 1;
        }
        cout << "Found" << endl;
        cout << "Loading script commands...";
        apstring currentLine("");
        apvector<apstring> lines;
        while (!in.eof())
        {
            getline(in, currentLine);
            lines.resize(lines.length() + 1);
            lines[lines.length() - 1] = currentLine;
        }
        in.close();
        cout << "Loaded " << lines.length() << " directive(s)" << endl;
        cout << "Executing directives..." << endl;
        long errorCount = 0;
        for (long i = 0; i < lines.length(); i++)
        {
            if (!executeScriptCommand(lines[i]))
            {
                errorCount++;
            }
        }
        cout << "Done executing " << lines.length() << " directive(s) with "
                << errorCount << " error(s)" << endl;
        if (_WAIT_FOR_KEY_PRESS_TERMINATE_)
        {
            getchar();
        }
        return 0;
    }

  28. #28
    PowerPoster sail3005's Avatar
    Join Date
    Oct 2000
    Location
    Chicago, IL, USA
    Posts
    2,340
    thanks

    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA
    USAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSAUSA

  29. #29
    New Member
    Join Date
    Jan 2001
    Posts
    8

    Try it

    Try Inno setup at www.innosetup.com

    That's cool & free (Comes with sources!)

  30. #30

    Thread Starter
    Member filburt1's Avatar
    Join Date
    Aug 1999
    Posts
    6,935
    I know, but that's a full-blown setup package, this is just a stub to get a full-blown setup program written in VB up and running.

  31. #31
    Good Ol' Platypus Sastraxi's Avatar
    Join Date
    Jan 2000
    Location
    Ontario, Canada
    Posts
    5,134
    I may be looking into this... =)
    All contents of the above post that aren't somebody elses are mine, not the property of some media corporation.
    (Just a heads-up)

  32. #32
    PowerPoster eiSecure's Avatar
    Join Date
    Jul 2000
    Location
    Texas
    Posts
    2,209
    Filburt, is it finished yet?

    Secure-It! 2002 SP1 is about to be released, and I want to create my own install.

  33. #33
    Hyperactive Member Hampster's Avatar
    Join Date
    Feb 2001
    Location
    On my hamster wheel.
    Posts
    374
    Hmm, haven't tested this out, but this looks like a way to see if a file exists in QB
    http://www.tek-tips.com/gviewthread....314/qid/191533

  34. #34
    Addicted Member
    Join Date
    Feb 2002
    Posts
    152
    .iss is InnoSetup's extension! (Inno Setup Script) You'll have to get a new extension

  35. #35
    Good Ol' Platypus Sastraxi's Avatar
    Join Date
    Jan 2000
    Location
    Ontario, Canada
    Posts
    5,134
    The project is dead.
    All contents of the above post that aren't somebody elses are mine, not the property of some media corporation.
    (Just a heads-up)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width