winzip icon

VB6 Add-in :: Inno Setup Toolbar Advanced (UPDATE 07-30-2017)

Email
Submitted on: 7/30/2017 6:24:12 AM
By: Rizalmartin 
Level: Advanced
User Rating: By 8 Users
Compatibility: VB 6.0
Views: 19675
 
     The best alternative or even a successor to Package Deployment Wizard. You can now deploy applications straight from your Visual Basic 6.0 projects via Inno Setup by using this Visual Basic Add-In. It is fork and improved version of Inno Setup Toolbar 2.0 by Coder_Ghost inheriting the characteristics of Package Deployment Wizard. Now the deployment of applications written in Visual Basic 6.0 is now much more easier and less troublesome than before with this toolbar.

Benefits of using Inno Setup Toolbar Advanced
* Easy and Compact installer output for VB6 applications.
* Dependencies is included
* Can install on later Windows versions even on WINE and ReactOS
* Application Virtualization and Desktop App Converter ready

Does MSCOMCTL.OCX of this project failed to load on your VB6 IDE? This tip will fix the problem: Click here

NOTICE: Inno Setup must be installed. (Download link: http://www.jrsoftware.org/isinfo.php)

Update 07-30-2017: Failed to create start menu entry is fixed

Update 09-11-2016:
* Old Crystal Report versions and MSXML is added on the dependency list.
* Some bugfixes.

Update 06-24-2016:
* Internationalization support for output installers. It means the Inno Setup Toolbar Advanced can create localized (such as Spanish, French, Italian, Japanese, etc.) version of installer for an application. (Thanks to GioRock)
* More bugfixes courtesy of GioRock.

Update 02-21-2016:
* Localized VB6 core runtime deployment is now supported. Just select language in application settings in the Wizard. For example if French language is selected vb6fr.dll will automatically added and copied. Make sure that VB6 locale runtime is in system32 (for 32-bit Windows) or syswow64 (for 64-bit Windows) folder.
* Error on parsing DEP Files on a 64-bit environment is fixed.
* Improved handling of DAO files especially on assigning path.
* Equipped with master dependency list (embedded in the addin) which was the same as VB6Dep.ini of Package Deployment Wizard for searching more dependencies.
* More bugfixes.

Update 02-07-2016:
* Ability to parse REG and SRG file. These files are no longer include upon compilation.
* COM DLL detection for proper flagging of dll files.
* Bugfixes on sniffing from DEP files.
* Smarter installer output.
* The MDAC and WSH installation are longer depend on Windows versions. The installation triggers if the MDAC or WSH are not installed or the existing components are older than the setup.
* Compare file versions is implemented on necessary runtime installations (Thanks to AvryDas).

Update 01-28-2016: Improved parsing DEP files. Translation of environment variables implemented. Improved SmartSafe installation. Proper designation of files especially if the library came from common files folder. More bugfixes

Update 01-26-2016: Improved dependency sniffing from DEP files.
Update 10-16-2015: Robust and accurate dependency sniffing (Thanks to OrdoConcept) and more bugfixes.
Update 08-17-2015: Issues on Run as administrator is fixed.
Update 08-16-2015: Some bugfix and improvements.


 
winzip iconDownload code

Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. Afterdownloading it, you will need a program like Winzip to decompress it.Virus note:All files are scanned once-a-day by Planet Source Code for viruses, but new viruses come out every day, so no prevention program can catch 100% of them. For your own safety, please:
  1. Re-scan downloaded files using your personal virus checker before using it.
  2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.
  3. Scan the source code with Minnow's Project Scanner

If you don't have a virus scanner, you can get one at many places on the net including:McAfee.com


Other 7 submission(s) by this author

 


Report Bad Submission
Use this form to tell us if this entry should be deleted (i.e contains no code, is a virus, etc.).
This submission should be removed because:

Your Vote

What do you think of this code (in the Advanced category)?
(The code with your highest vote will win this month's coding contest!)
Excellent  Good  Average  Below Average  Poor (See voting log ...)
 

Other User Comments

7/16/2015 4:29:17 PMBluerose

VB6MF.DLL is missing. When code compiled this message is shown. Visual basic 6.0 Mini Framework dll is not found. Where can we get it ?
(If this comment was disrespectful, please report it.)

 
7/20/2015 8:58:35 AMRizalmartin

@Bluerose VB6MF.DLL is a stray reference which accidentally added on the source code. You can safely remove that reference or download the updated source code. Thank you
(If this comment was disrespectful, please report it.)

 
8/16/2015 11:46:16 PMCrazy Dood

That sounds like a great add-in! I can't wait to try it!!
(If this comment was disrespectful, please report it.)

 
9/2/2015 10:08:52 AMOrdoConcept

Great add-in. Thanks !

ocx files and their dependencies are not always in the system folder. I modified the StripFileName function as follows . This seems to work better
Sincerely
----------------------------

(If this comment was disrespectful, please report it.)

 
9/2/2015 10:09:19 AMOrdoConcept

Function StripFileName(str As String) As String
Dim t() As String
Dim tmp As String, r() As String
Dim sp As String
If InStr(str, "Object=") > 0 Then
t = Split(str, "; ")
'*****
tmp = CreateRegKeyFromVBP(t(0))
StripFileName = GetKeyValue(HKEY_CLASSES_ROOT, tmp, "")
' MsgBox tmp & vbCrLf & "----" & vbCrLf & StripFileName & vbCrLf & "----"
If StripFileName = "" Or InStr(LCase(StripFileName), LCase(t(UBound(t)))) = 0 Then StripFileName = SysDir & t(UBound(t))
'*****
ElseIf InStr(str, "Reference=") > 0 Then
t = Split(str, "#")
tmp = t(UBound(t) - 1)
sp = InStrRev(tmp, ".\")
tmp = Mid(tmp, sp + 2)
tmp = Replace(tmp, ":\", "")
StripFileName = SysDrive & tmp
End If
End Function


(If this comment was disrespectful, please report it.)

 
9/2/2015 10:09:39 AMOrdoConcept

Function CreateRegKeyFromVBP(str As String) As String
Dim tmp As String, t() As String, r() As String, f As Integer
tmp = Replace(str, "Object=", "")
t() = Split(tmp, "#")
For f = 1 To 2
If InStr(t(f), ".") > 0 Then
r() = Split(t(f), ".")
r(0) = Hex(Val(r(0)))
r(1) = Hex(Val(r(1)))
t(f) = Join(r(), ".")
Else
t(f) = Hex(Val(t(f)))
End If
Next f
CreateRegKeyFromVBP = "TypeLib\" & Join(t(), "\") & "\win32"
End Function
(If this comment was disrespectful, please report it.)

 
2/8/2016 4:30:31 PMCyberManin

Bonjour,
it seems that the GetFileVersion can't be found here :
frmWizard/WriteScript in the Section: [Tasks]

Anyway it's a great add-in.

Thanks !


GetFileVersion(SysDir & "msvbvm60.dll")
(If this comment was disrespectful, please report it.)

 
2/21/2016 10:49:15 AMdriscoll

Congratulations !
Splendid project very useful.
(If this comment was disrespectful, please report it.)

 
2/21/2016 4:00:11 PMOrdoConcept

You are the best ! Localized VB6 core runtime deployment was missing before, now this tool is complete ! congratulations
(If this comment was disrespectful, please report it.)

 
2/22/2016 11:56:26 AMwidaynila

run-time error 75
path/file access error

i use inno setup 5.5.8(a)
vb6 sp6
(If this comment was disrespectful, please report it.)

 
4/24/2016 7:18:12 PMLorin

I tried to load this into VB6 IDE and got four error messages logged about missing components.
I am wanting to mod this source so that it remembers the setting of the run for each project so that I do not have to make a pile of entries each time I run it.
Was this done with vb5 components?
ProgressBar, ListView, TreeView, ImageList all out and a nightmare to fix the code! Please update!

P.S. when fixed this will be a really great app!


(If this comment was disrespectful, please report it.)

 
6/1/2016 4:32:25 PMGioRock

Hi, this program is a good idea but has a few bug:
Tested on Windows 7 Pro + INNO SETUP 5.5.9 (a) + VB6 IDE PRO (Run it As Administrator)
1) First I think you must redistribuite VBP Project already modified about MSCOMCTL version and path dependencies
2) Without #OrdoConcept modified code, DLL return an error: index out of bound
3) It's a newbies error writing file using #1, better call a FreeFile function for 287 line of code...
4) Locale it's not implemented and do nothing, setup is always in english
so
Replace #1 with #hff, where hff = FreeFile
(If this comment was disrespectful, please report it.)

 
6/1/2016 4:33:10 PMGioRock

Add this on WriteScript function before Setup Section for Languages support:

'Section: Language
'---------------------------------------------------------------------------
If
Me.cbolocale.Text <> "English" Then
Print #hff, "[Languages]"
lng = GetLangCode(Me.cbolocale.Text)
Print #hff, "Name: " + Chr$(34) + lng + Chr$(34) + "; MessagesFile: " + Chr$(34) + "compiler:Languages\" + Me.cbolocale.Text + ".isl" + Chr$(34)
End If


Also you can replace cbolocale.List property contents by these INNO SETUP Lang now supported:

English
BrazilianPortuguese
Catalan
Corsican
Czech
Dani sh
Dutch
Finnish
French
German
Greek
Hebrew
Hungarian
Italian
Japanese
Norwegian
Polish
Portuguese
Russian
ScottishGaelic
SerbianCyrillic
SerbianLatinSlovenian
Spanish
Turkish
Ukrainian

(If this comment was disrespectful, please report it.)

 
6/1/2016 4:34:44 PMGioRock

Then you can replace GetLangCode by this optimized function;

Function GetLangCode(lang As String) As String

Dim tmp As String

Select Case lang
Case "BrazilianPortuguese"
tmp = "pt-br"
Case "Catalan"
tmp = "ca"
Case "Corsican"
tmp = "co"
Case "Czech"
tmp = "cs"
Case "Danish"
tmp = "da"
Case "Dutch"
tmp = "nl"
Case "Finnish"
tmp = "fi"
Case "French"
tmp = "fr"
Case "German"
tmp = "de"
Case "Greek"
tmp = "el"
Case "Hebrew"
tmp = "he"
Case "Hungarian"
tmp = "hu"
Case "Italian"
tmp = "it"
Case "Japanese"
tmp = "jp"
Case "Norwegian"
tmp = "no"
Case "Polish"
tmp = "pl"
Case "Portuguese"
tmp = "pt"
Case "Russian"
tmp = "ru"
Case "ScottishGaelic"
tmp = "gd"
Case "SerbianCyrillic"
tmp = "sr"
Case "SerbianLatin"
tmp = "sr"
Case "Slovenian"
tmp = "sl"
Case "Spanish"
tmp = "es"
Case "Turkish"
tmp = "tr"
Case "Ukrainian"
tmp = "uk"
Case Else
tmp = "??"
End Select

GetLangCode = tmp

End Function

(If this comment was disrespectful, please report it.)

 
6/1/2016 4:35:41 PMGioRock

or you can totally replace this function with this newer piece of code:

Function GetLangCode(lang As Integer) As String
GetLangCode = Choose(lang + 1, "??", "pt-br", "ca", "co", "cs", "da", "nl", "fi", "fr", "de", "el", "he", "hu", "it", "jp", "no", "pl", "pt", "ru", "gd", "sr", "sr", "sl", "es", "tr", "uk")
End Function

lng = GetLangCode(Me.cbolocale.Index)
(If this comment was disrespectful, please report it.)

 
6/2/2016 9:49:15 AMGioRock

Sorry, this is the right code to call:

lng = GetLangCode(Me.cbolocale.ListIndex)

Sometimes saving modified code in VB6 IDE on Win7, I get corrupted frx data on frmWizard.
Almost txtFields position and dimensions assume different values so, better change code manually before loading project, nothing else was wrong in other forms.

Anyway, you can try locking objects on frmWizard to prevent further issues.


Good project man!!!
(If this comment was disrespectful, please report it.)

 
6/24/2016 2:48:26 AMRizalmartin

Thank you @ GioRock for your bug reporting and suggestions. It is now integrated to the latest release of Inno Setup Toolbar Advanced
(If this comment was disrespectful, please report it.)

 
6/26/2016 2:25:32 AMFederico

Excelent! very good project, saves a lot of work!!
you mentioned * Application Virtualization and Desktop App Converter ready , how is that can add more info?
best regards!
(If this comment was disrespectful, please report it.)

 
7/10/2016 8:23:50 PMLorin

Since you do not seem to want to add a save and load for a project's settings I have modified the code to do so BUT when you make updates, PLEASE annotate the source code with an update date at each source code line and a note so I can transfer those changes to my code! That is how I do it, annotate with a date marker and notes at each line of source change.


(If this comment was disrespectful, please report it.)

 
8/28/2016 2:43:19 AMLorin

Although this Add-In is handy there are additional problems. The add-in includes files in the Inno setup.exe that must not be there. If your add-in used the information generated by the Package and Deployment Wizard (PDW) then the included files should be correct. Currently, for example, if Shell32.dll is in References it is now but should not be included in the Inno Setup.exe.
Please fix this discrepancy.
Perhaps the PDW source code includes a list of files to exclude. Those that should not be included in Setup.exe.

(If this comment was disrespectful, please report it.)

 
9/12/2016 4:58:22 AMDivyasavi

* suggestion if it possible

1- when it create 1st time then work perfectly but when upgrade setup that time file not copy which is updated like program exe its use old exe in setup, i mean if is possible update program exe and updating script then copy program exe and make setup

2- if is possible when make setup automatically add custom dll,ocx and other file which is use in program


(If this comment was disrespectful, please report it.)

 
9/12/2016 12:42:28 PMLuxzz

Can you add VB6 Service Pack 6 ? Please
(If this comment was disrespectful, please report it.)

 
9/14/2016 7:28:45 AMLuxzz

Ops sorry wrong comment :D... UP

I mean this project http://www.mediafire.com/download/6n7gkidz40tpuy6/VS6+SP6+setup.exe
(If this comment was disrespectful, please report it.)

 

Add Your Feedback
Your feedback will be posted below and an email sent to the author. Please remember that the author was kind enough to share this with you, so any criticisms must be stated politely, or they will be deleted. (For feedback not related to this particular code, please click here instead.)
 

To post feedback, first please login.