Welcome Guest.   Make a donation to an author on the site April 24, 2014, 04:06:41 AM  *

Please login or register.
Or did you miss your validation email?


Login with username and password (forgot your password?)
Why not become a lifetime supporting member of the site with a one-time donation of any amount? Your donation entitles you to a ton of additional benefits, including access to exclusive discounts and downloads, the ability to enter monthly free software drawings, and a single non-expiring license key for all of our programs.


You must sign up here before you can post and access some areas of the site. Registration is totally free and confidential.
 
The N.A.N.Y. Challenge 2013! Download dozens of custom programs!
   
   Forum Home   Thread Marks Chat! Downloads Search Login Register  
Pages: Prev 1 [2]   Go Down
  Reply  |  New Topic  |  Print  
Author Topic: Choosing an Installer  (Read 3749 times)
Renegade
Charter Member
***
Posts: 10,364



Tell me something you don't know...

see users location on a map View Profile WWW Give some DonationCredits to this forum member
« Reply #25 on: January 30, 2011, 09:01:08 PM »

Well, I've farted around looking at this and that, and finally come up with a mish-mash InnoSetup installer.

If there are any InnoSetup gurus here, would you kindly critique my copy & pasting script (and installer):

Formatted for Pascal with the GeSHI Syntax Highlighter [copy or print]
  1. [code]
  2. function IsDotNetDetected(version: string; service: cardinal): boolean;
  3. // Indicates whether the specified version and service pack of the .NET Framework is installed.
  4. //
  5. // version -- Specify one of these strings for the required .NET Framework version:
  6. //    'v1.1.4322'     .NET Framework 1.1
  7. //    'v2.0.50727'    .NET Framework 2.0
  8. //    'v3.0'          .NET Framework 3.0
  9. //    'v3.5'          .NET Framework 3.5
  10. //    'v4\Client'     .NET Framework 4.0 Client Profile
  11. //    'v4\Full'       .NET Framework 4.0 Full Installation
  12. //
  13. // service -- Specify any non-negative integer for the required service pack level:
  14. //    0               No service packs required
  15. //    1, 2, etc.      Service pack 1, 2, etc. required
  16. var
  17.    key: string;
  18.    install, serviceCount: cardinal;
  19.    success: boolean;
  20. begin
  21.    key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + version;
  22.    // .NET 3.0 uses value InstallSuccess in subkey Setup
  23.    if Pos('v3.0', version) = 1 then begin
  24.        success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install);
  25.    end else begin
  26.        success := RegQueryDWordValue(HKLM, key, 'Install', install);
  27.    end;
  28.    // .NET 4.0 uses value Servicing instead of SP
  29.    if Pos('v4', version) = 1 then begin
  30.        success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount);
  31.    end else begin
  32.        success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount);
  33.    end;
  34.    result := success and (install = 1) and (serviceCount >= service);
  35. end;
  36.  
  37. function InitializeSetup(): Boolean;
  38. var
  39.    downloadit: boolean;
  40.    ErrorCode: Integer;
  41. begin
  42.    if not IsDotNetDetected('v4\Client', 0) then begin
  43.        downloadit := MsgBox('Photo Resizer requires the Microsoft .NET Framework 4.0. It is a free download from Microsoft.'#13#13
  44.            'RECOMMENDED STEPS: '#13#13
  45.            '1) Download .NET 4 from Microsoft by clicking YES below. (This setup will exit - See step #3.)'#13
  46.            '2) Install .NET 4 by running dotNetFx40Fullx86x64.exe (the download).'#13
  47.            '3) Run the Photo Resizer setup program again.'#13#13
  48.            'Do you want to download the .NET 4 framework now?', mbInformation, MB_YESNO) = idYes;
  49.        result := false;
  50.        if downloadit = false then
  51.        begin
  52.         Result:=false;
  53.        end else
  54.        begin
  55.          Result:=false;
  56.          ShellExec('open',
  57.            'http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe',
  58.            '','',SW_SHOWNORMAL,ewNoWait,ErrorCode);
  59.       end;
  60.    end else
  61.        result := true;
  62. end;

The script is modified from here:

http://www.kynosarges.de/DotNetVersion.html


This installer never installs - it just shows the error message above:
http://renegademinds.com/...Resizer/NeverInstalls.exe

This is the installer:
http://renegademinds.com/...er/PhotoResizer-setup.exe



I'm still tweaking the core installer, but the script stuff above I won't be touching.

Any advice/criticism is welcome. I'm new to InnoSetup (more or less as I've only edited them before), so...

(And I determined in 1992 that I hate Pascal. smiley )



Please note that this is a bit of a lazy post as I'm experiencing an odd Windows bug -- Explorer isn't refreshing properly -- This is havoc for me to test the installer because the Start Menu isn't refreshing properly either...

As such, I'm in the process of downloading Windows 7 to install on a VM... However, if you know what the Aussie shinternet is like, this is taking some time, and inordinately more than it should... Hence, my posting ahead of when I should with work I should be doing on my own...

Thank you in advance for your understanding. smiley

EDIT: Updated installers to look a bit better. Still experimenting though...[/code]
« Last Edit: January 31, 2011, 12:17:27 AM by Renegade » Logged

Slow Down Music - Where I commit thought crimes...

Freedom is the right to be wrong, not the right to do wrong. - John Diefenbaker
Ath
Supporting Member
**
Posts: 2,134



see users location on a map View Profile WWW Give some DonationCredits to this forum member
« Reply #26 on: January 31, 2011, 01:35:06 AM »

Hm, sorry you missed my post, earlier in this thread. I pointed to my blog to the script we used for JottiQ, that is modular, and can detect .NET 4, and download and install it during the setup phase if it's missing. I looked at the kynosarges page before, but I missed the automatic download feature, so I upgraded another initiative.

If you can wait a few hours (I'm now at the start of my working day, and I'm busy for the next 10 hours or so) I can update your script to have that incorporated.
The whirlwind at the JottiQ thread shows it's quite tested a few times Wink And it'd be for free ofcourse cheesy
Logged

Renegade
Charter Member
***
Posts: 10,364



Tell me something you don't know...

see users location on a map View Profile WWW Give some DonationCredits to this forum member
« Reply #27 on: January 31, 2011, 01:48:35 AM »

Hm, sorry you missed my post, earlier in this thread. I pointed to my blog to the script we used for JottiQ, that is modular, and can detect .NET 4, and download and install it during the setup phase if it's missing. I looked at the kynosarges page before, but I missed the automatic download feature, so I upgraded another initiative.

If you can wait a few hours (I'm now at the start of my working day, and I'm busy for the next 10 hours or so) I can update your script to have that incorporated.
The whirlwind at the JottiQ thread shows it's quite tested a few times Wink And it'd be for free ofcourse cheesy

Oh! I didn't know that it needed .NET 4 or that you did that in the installer!

And I'd appreciate that. I checked out the stuff at the Code Project, but it was just long, and I wanted to just get it done. I didn't know that it did the install during setup like that.
Logged

Slow Down Music - Where I commit thought crimes...

Freedom is the right to be wrong, not the right to do wrong. - John Diefenbaker
Ath
Supporting Member
**
Posts: 2,134



see users location on a map View Profile WWW Give some DonationCredits to this forum member
« Reply #28 on: January 31, 2011, 01:54:01 AM »

...I checked out the stuff at the Code Project, ...

That's the base I used, indeed.
I'll start at your script tonight, when I'm home.
Logged

Renegade
Charter Member
***
Posts: 10,364



Tell me something you don't know...

see users location on a map View Profile WWW Give some DonationCredits to this forum member
« Reply #29 on: January 31, 2011, 02:01:45 AM »

...I checked out the stuff at the Code Project, ...

That's the base I used, indeed.
I'll start at your script tonight, when I'm home.

Thank you very much~! cheesy
Logged

Slow Down Music - Where I commit thought crimes...

Freedom is the right to be wrong, not the right to do wrong. - John Diefenbaker
Pages: Prev 1 [2]   Go Up
  Reply  |  New Topic  |  Print  
 
Jump to:  
   Forum Home   Thread Marks Chat! Downloads Search Login Register  

DonationCoder.com | About Us
DonationCoder.com Forum | Powered by SMF
[ Page time: 0.081s | Server load: 0.18 ]