Jump to content

Clover SFX Installer


Forseti

Recommended Posts

SFX Installer for Clover !

 

If you only use it for yourself, you can just copy the files into program installation directory.

 
And run:
regsvr32 /s "c:\Program Files\Clover\TabHelper32.dll"
regsvr32 /s "c:\Program Files\Clover\TabHelper64.dll"
 
I think you can write a bat file to do it in one minute.
 

UninstallRun

 

regsvr32 /u /s "c:\Program Files\Clover\TabHelper32.dll"
regsvr32 /u /s "c:\Program Files\Clover\TabHelper64.dll"

 

 
who created an installer, Inno or MSI? :help: 
;InnoSetupVersion=5.5.0[Setup]AppName=CloverAppVerName=CloverAppVersion=3.0.258.0AppPublisher=EJIE TechnologyDefaultDirName={pf}\CloverDefaultGroupName=CloverUninstallDisplayIcon={app}\clover.exeOutputBaseFilename=SetupCompression=lzma2/MaxArchitecturesInstallIn64BitMode=x64DisableProgramGroupPage=yesWizardImageFile=embedded\WizModernImage-IS.bmpWizardSmallImageFile=embedded\WizModernSmallImage-IS.bmpAppCopyright=© 2013 EJIE Technology[Files]Source: "{app}\clover.exe"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversionSource: "{app}\clover.dll"; DestDir: "{app}\Readme"; MinVersion: 0.0,5.0; Flags: ignoreversionSource: "{app}\TabHelper32.dll"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversionSource: "{app}\TabHelper64.dll"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversionSource: "{app}\locales\de.pak"; DestDir: "{app}\locales"; MinVersion: 0.0,5.0; Flags: ignoreversionSource: "{app}\locales\en-US.pak"; DestDir: "{app}\locales"; MinVersion: 0.0,5.0; Flags: ignoreversion[Run]Filename: "{win}\System32\regsvr32.exe"; Parameters: "/s"; WorkingDir: "{app}\TabHelper32.dll"; MinVersion: 0.0,5.0;Filename: "{win}\System32\regsvr32.exe"; Parameters: "/s"; WorkingDir: "{app}\TabHelper64.dll"; MinVersion: 0.0,5.0;[UninstallRun]Filename: "{win}\System32\regsvr32.exe"; Parameters: "/u /s"; WorkingDir: "{app}\TabHelper32.dll"; MinVersion: 0.0,5.0;Filename: "{win}\System32\regsvr32.exe"; Parameters: "/u /s"; WorkingDir: "{app}\TabHelper64.dll"; MinVersion: 0.0,5.0;[Icons]Name: "{group}\Clover"; Filename: "{app}\clover.exe"; MinVersion: 0.0,5.0;[CustomMessages]default.NameAndVersion=%1 version %2default.AdditionalIcons=Additional icons:default.UninstallProgram=Uninstall %1default.LaunchProgram=Launch %1default.AssocFileExtension=&Associate %1 with the %2 file extensiondefault.AssocingFileExtension=Associating %1 with the %2 file extension...[Languages];These files are stubs; To achieve better results after recompilation, use the real language filesName: "default"; MessagesFile: "embedded\default.isl";

Please do it right!

 

 

Edited by Forseti
Link to comment
Share on other sites

Try this (make sure you have the latest 7zip sfx to be sure it supports "Delete")

;!@Install@!UTF-8!

RunProgram="Setup.exe /S /NCRC /D=C:\Progra~1\Clover"

RunProgram="hidcon:cmd /c taskkill /f /im clover.exe /t"

Delete="%CommonDesktop%\\Clover.lnk"

GUIMode="2"

;!@InstallEnd@!

Link to comment
Share on other sites

Nice program...

 

Ricktendo Delete="%CommonDesktop%\\Clover.lnk"  works (at least on win7 x86 that I tested, but the taskkill fail to kill process. End up still have clover launched)
 

 

Why not made a request to have an inf addon?

Much smaller size & less fuss. (Don't have to taskkill or manually remove desktop shortcut)

 

I have already made myself a Win7x86 .WA addon using inf.

If it is for x86 win7,  I can upload it for you.

If it is for x64, I suggest you put a request in wtk addon request forum.

Link to comment
Share on other sites

I dont understand why you guys use INF files in Win7 addons to copy files when all you need to do is dump them into the imported image and add the reg (this would take zero install time)

I would like to make a daemon tools addon like this but I dont know how to tell wintk to place the files in program files on 32 bit images and program files (x86) for 64 bit images (same with .REG)

Link to comment
Share on other sites

Hi rick,
On win7 WTK integration, I use inf for registering dll, making registry and perfrom RunPostSetupCommands if necessary.
I make use of WTK integration (for filecopy operation) to reduce installation time. Hence my .WA addon does not perform filecopy.


I use inf for registry entry as using .reg format doesn't really make use of environment variable.

They are basically hardcode to
'C:\Program files' path which I personally do not like. I prefer %programfiles% type of registry entries, which inf offers.

 

I am not familiar with daemon tools as I did not use this tool.


But to tell WTK where to place the file, you need to set WTK- Addon Maker tab 'Architecture' info correctly.
Choose 'x86' for program that goes to %programfiles% in x86 and when slipstream in x64, it will goes to %programfiles(x86)% for x64 system.

Note: can't do it for registry files type in Dual addon type. Have to create x64 only or x86 only type in this case.

 

You can take a look at Everything Search Engine for actual concept, including registry entries for both system.
 

I do make use of WTK Addon maker to make the .WA addon but Reaper don't use this method. Perhaps he uses some batch/7-Zip method.

To execute your inf, use RunOnce key. Hence the .Wa addon need to includes a .reg file to add an entry to RunOnce.
To create a Runonce key, use batch script. See Everything Search tool post 11

 

Frankly, this is just my way of doing things. If my way does not fit your needs, better ask Lego for exact guides.

 

Cheers

Link to comment
Share on other sites

yup! (I forgot mentioning ProfileItems)

 

Just a little info I found.
Because WTK adds it own RunOnce key to run silent installer '!1Wintoolkit', silent Installers always gets executed first, then follow by inf.
I thought by modifying appname (such as !0 infront ) like !0WinTooltest, my inf will install earlier than WTK silent Installer but it still WTK silent installer get to launch first.

Link to comment
Share on other sites

So adding !0 is needed or it is useless?

Can you do me a favor and look at my addon (maybe test it if you can) see if it is done correctly?

http://www.mediafire.com/?ok87o3emwa13c1z

MD5: bdea9fea5348516d47c6b814b0737c55

I don't have any live install sections only DefaultInstall ones, I use INTL Strings sections so the program language should be set automatically and I also use Cleanup=1 to delete the INF after its finished...that reminds me do you know if a PNF with the same name of the INF is created? (I could set it to delete also)

BTW for your rundll32 command you don't have to specify a directory if the INF is in the %WinDir%\inf folder, it assumes its in there by default

Link to comment
Share on other sites

!0 seems useless. (Will try to test again in this coming test)

 

Visual look at your inf looks alright. I will test drive your .WA addon.
But now at work... Will let you know when done.


I checked my own exising inf addon. PNF with same filename not created. So no need to cleanup.

 

Thanks for the rundll32 command tips. Seems simpler.  :)

Probalbly I will use it if addon test is okay.

Link to comment
Share on other sites

Test drive DTLite4.47.1.333_Intl.WA, works fine!
(Tested on win 7 ENU x86 VM only with WTK 1.4.1.22 on XP host)

LyxnLkws.png
Shows the initial RunOnce entry during setup 'Completing installation...'
I observed that !1WinToolkit is not at the top of the entry. So logically, !0DTLite will execute first during RunOnce.

hhGsbpqs.png
I had it pause at RunOnce stage.
At the early stage of WinToolkit Installer running,
I open regedit again to check the RO entries.
!1WinToolkit is still not the 1st entry, meaning !0DFTLite would have already installed.
So I browse to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
and verify whether 'DAEMON Tools Lite' uninstall entry exists.

EnyJnuXs.png
As you can see above, no 'DAEMON Tools Lite' entry. Meaning your inf is not installed at this point while WTK silent installer is running.
So is Everything Search Tool. Reaper's Notepad2 uninstall entry is also not there.
Hence WinToolkit installer will install all silent installer first, no matter how we tweak the key name.

0zGqzFws.png
This screenshot shows DTLite.inf cleaned up!
I was initially taken aback when the program says License activation is required.
I thought need to provide some sort of serial or whatever. Click 'Continue' shown no need to enter serial.
Program is self-activated if user select 'Lite'. ha ha

Uninstall the program from Add/Remove panel works fine.
It would be useful if you also includes the EstimatedSize detail so that it 'looks complete' cosmetically in Add/Remove panel.
It is blank now.

HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\DAEMON Tools Lite","EstimatedSize",0x10001,33,6B,00,00
 

Cheers

 

Link to comment
Share on other sites

THANKS ALLOT!!! for testing...as you can see from the tests you dont have to use %WinDir%\inf and you dont have to list a section in the RunDLL32 cmdline, it calls the DefaultInstall section by default if its your primary install section (you should test this with Install sections, I think it might work as well)

One more thing it needs, how/where do I put SPTDinst*.exe and have it install the x86 for 32 bit machines and the x64 for 64 bit. I'm guessing I will have to make a SFX with x86: and x64: RunProgram's but still, how do I put a SFX installer in my DTLite addon and where do I put the command wintk should add to its silent install phase?

Link to comment
Share on other sites

THANKS ALLOT!!! for testing...as you can see from the tests you dont have to use %WinDir%\inf and you dont have to list a section in the RunDLL32 cmdline, it calls the DefaultInstall section by default if its your primary install section (you should test this with Install sections, I think it might work as well)

No problem. Members here also help me test in x64 environment for Eveything Search Tool when I need help.

Yes Rundll32 cmdline works fine. Much simpler! Thanks for the tip again. Should work for a specific section too.

Err... Regarding your 2nd question, I don't quite understand regarding SPTDinst*.exe

You mean you need to run a command using SPTDinst*.exe and then delete this SPTDinst*.exe after it?

Sorry I'm not sure how this SPTDinst*.exe work so no idea at the moment.

I'm merrily guessing, perhaps add this RunPostSetupCommands

[DefaultInstall.NTx86]RunPostSetupCommands=SPTDinst:1[SPTDinst]cmd /c pushd %16422%\DAEMON Tools Lite & SPTDinst-x86.exe add /q[DefaultInstall.NTamd64]RunPostSetupCommands=SPTDinst64:1[SPTDinst64]cmd /c pushd %16426%\DAEMON Tools Lite & SPTDinst-x64.exe add /q
Link to comment
Share on other sites

@Forseti, there is a regserver flag that will register the DLLs, and I also added a Check: to only copy the file if it detects you are on x64

 

[Setup]AppName=CloverAppVerName=CloverAppVersion=3.0.258.0AppPublisher=EJIE TechnologyDefaultDirName={pf}\CloverDefaultGroupName=CloverUninstallDisplayIcon={app}\clover.exeOutputBaseFilename=SetupCompression=lzma2/MaxArchitecturesInstallIn64BitMode=x64DisableProgramGroupPage=yesWizardImageFile=embedded\WizModernImage-IS.bmpWizardSmallImageFile=embedded\WizModernSmallImage-IS.bmpAppCopyright=© 2013 EJIE Technology[Files]Source: "{app}\clover.exe"; DestDir: "{app}"; Flags: ignoreversionSource: "{app}\clover.dll"; DestDir: "{app}\Readme"; Flags: ignoreversionSource: "{app}\TabHelper32.dll"; DestDir: "{app}"; Flags: regserver ignoreversionSource: "{app}\TabHelper64.dll"; DestDir: "{app}"; Check: "IsWin64"; Flags: regserver ignoreversionSource: "{app}\locales\de.pak"; DestDir: "{app}\locales"; Flags: ignoreversionSource: "{app}\locales\en-US.pak"; DestDir: "{app}\locales"; Flags: ignoreversion[Icons]Name: "{group}\Clover"; Filename: "{app}\clover.exe";[CustomMessages]default.NameAndVersion=%1 version %2default.AdditionalIcons=Additional icons:default.UninstallProgram=Uninstall %1default.LaunchProgram=Launch %1default.AssocFileExtension=&Associate %1 with the %2 file extensiondefault.AssocingFileExtension=Associating %1 with the %2 file extension...[Languages];These files are stubs; To achieve better results after recompilation, use the real language filesName: "default"; MessagesFile: "embedded\default.isl";
Link to comment
Share on other sites

many thanks ricardo, works great!  (Flags: regserver) :dancing: 

 

 

finished Inno script for Clover (x86 & x64) :

[Setup]AppName=CloverAppVerName=CloverAppVersion=3.0.258.0AppPublisher=EJIE TechnologyDefaultDirName={pf}\CloverDefaultGroupName=CloverUninstallDisplayIcon={app}\clover.exeOutputBaseFilename=SetupCompression=lzma2/MaxArchitecturesInstallIn64BitMode=x64DisableProgramGroupPage=yesWizardImageFile=embedded\WizModernImage-IS.bmpWizardSmallImageFile=embedded\WizModernSmallImage-IS.bmpAppCopyright=© 2013 EJIE Technology[Files]Source: "{app}\clover.exe"; DestDir: "{app}"; Flags: ignoreversionSource: "{app}\clover.dll"; DestDir: "{app}"; Flags: ignoreversionSource: "{app}\TabHelper32.dll"; DestDir: "{app}"; Check: "not IsWin64"; Flags: regserver ignoreversionSource: "{app}\TabHelper64.dll"; DestDir: "{app}"; Check: "IsWin64"; Flags: regserver ignoreversionSource: "{app}\locales\de.pak"; DestDir: "{app}\locales"; Flags: ignoreversionSource: "{app}\locales\en-US.pak"; DestDir: "{app}\locales"; Flags: ignoreversion[Icons]Name: "{group}\Clover"; Filename: "{app}\clover.exe";[CustomMessages]default.NameAndVersion=%1 version %2default.AdditionalIcons=Additional icons:default.UninstallProgram=Uninstall %1default.LaunchProgram=Launch %1default.AssocFileExtension=&Associate %1 with the %2 file extensiondefault.AssocingFileExtension=Associating %1 with the %2 file extension...[Languages]; These files are stubs; To achieve better results after recompilation, use the real language filesName: "default"; MessagesFile: "embedded\default.isl";
Edited by Forseti
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...