Jump to content

Welcome to MSFN Forum
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account



Photo

7z Self extracting

- - - - -

  • Please log in to reply
37 replies to this topic

#26
myselfidem

myselfidem

    Member

  • Member
  • PipPipPipPipPipPipPipPip
  • 2,559 posts
  • Joined 06-January 10
  • OS:Windows 7 x64
  • Country: Country Flag

Hi,
Well let me better explain :


"C:\Program Files\7-Zip\7z.exe" a %zipFileName% %allFromOutputDir%
copy /b "C:\Program Files\7-Zip\7zSD_LZMA.sfx" + config.txt + %zipFileName% %outputFile%

where :
%zipFileName% = "MySetup.7z"
%allFromOutputDir% = all of the items that currentlly exists in the output dir of the setup project. (bin\release\...)
%outputFile% = "MySFX.exe"


In addition to supervision given by submix8c, give the same name inside config.txt you use with 7zip:

config.txt
;!@Install@!UTF-8!
GUIMode="2"
RunProgram="MySFX.exe"
;!@InstallEnd@!


*Edit:
Maybe you can try like this (example): without using %zipFileName% !

config.bat
@echo off
SETLOCAL ENABLEEXTENSIONS
echo.

rem All files needed for drivers 32 or 64-bit OS are inside the folder Scan3970: 
rem C:\Program Files\7-Zip\Scan3970  (or another partition) 
rem D:\Program Files\7-Zip\Scan3970

rem My folder with all my files needed
set AllFileOutputDir=Scan3970

rem MySFX.exe file Name
set OutPutFile=Scan3970.exe

cd /d %~dp0
if exist "%AllFileOutputDir%.7z" del /f /q "%AllFileOutputDir%.7z"
echo.

cd /d "%~dp0%AllFileOutputDir%"

"%~dp07z.exe" a -t7z -mx9 -y "%~dp0%AllFileOutputDir%" 
copy /b /y "%~dp07zsd.sfx" + "%~dp0Scan3970.txt" + "%~dp0%AllFileOutputDir%.7z" "%~dp0%OutPutFile%"
 
pause

Edited by myselfidem, 17 June 2012 - 11:47 AM.

For Windows 7 OS: SetProductKey.rar (fr-FR/en-US. Integrate keys).


How to remove advertisement from MSFN

#27
ipen

ipen

    Newbie

  • Member
  • 11 posts
  • Joined 09-May 12
  • OS:XP Pro x86
  • Country: Country Flag
OK,

1) Why did you decied that " MySetup.msi (NOT WITHIN A FOLDER!!!)" ???
It is in the folder and when checking the zip created after
"C:\Program Files\7-Zip\7z.exe" a %zipFileName% %allFromOutputDir%"
the MSI is present!!!

2) both msi and exe are created from a simple visual studio .net, C# setup project. Framework 3.5..
No problem with that part at all!
More over - and that is the point you keep missing - The self extracting zip works just fine (and run the MSI and all) when i run it on win 7 (extract exe and MSI and execute it all!!!).
The same self extracting zip - will not work on win XP.

SO ???

Edited by ipen, 28 June 2012 - 07:00 AM.


#28
myselfidem

myselfidem

    Member

  • Member
  • PipPipPipPipPipPipPipPip
  • 2,559 posts
  • Joined 06-January 10
  • OS:Windows 7 x64
  • Country: Country Flag

Why did you decied that " MySetup.msi (NOT WITHIN A FOLDER!!!)" ???
It is in the folder and when checking the zip created after
"C:\Program Files\7-Zip\7z.exe" a %zipFileName% %allFromOutputDir%"
the MSI is present!!!

Because, it seems on Windows XP a subfolder is created inside %temp% and the installation fails.
And why did you decide to set "MySetup.msi" inside a folder first?

Like I suggested inside my last post your "MySetup.msi" is present also but inside the same archive 7z !

Have you tried what submix8c asked (DO NOT CLOSE THE message window!):

-To test this - WHEN it Fails with "This installation package could not be opened..." NAVIGATE in EXPLORER to the TEMP folder and SEE IF IT IS INDEED THERE!


Thanks to let us know!

Edited by myselfidem, 28 June 2012 - 08:48 AM.

For Windows 7 OS: SetProductKey.rar (fr-FR/en-US. Integrate keys).

#29
submix8c

submix8c

    Inconceivable!

  • Patrons
  • 4,403 posts
  • Joined 14-September 05
  • OS:none specified
  • Country: Country Flag
OK... let's get this straight...

Your "built" in VisualStudio "SETUP.EXE" is POINTING AT THE WRONG PLACE (folder) !!! Got it? It's the SETUP.EXE!!!

Launching Application.
Running command 'C:\WINDOWS\system32\msiexec.exe' with arguments ' -I "C:\DOCUME~1\...\LOCALS~1\Temp\7zS909.tmp\MySetup.msi" '
-----
Result (according to Your Notes):
"This installation package could not be opened..."
(My Note: OBVIOUSLY a result of NOT FINDING THE MSI FILE!)
(My Note: You APPARENTLY have used "\...\" to keep us from seeing UserID?)

Please NOTICE that "Documents and Settings" are in an ENTIRELY DIFFERENT PLACE between XP and Win7!!! OK???

Microsoft USUALLY creates a SFX package that GENERATES a COMMON FOLDER NAME in the ROOT directory of the "Largest Free Space HDD" BEFORE the "Setup" program is executed and SETUP uses THAT folder name, UNLIKE 7ZIP!!!

Either CHANGE THE SETUP.EXE program
-OR-
CHANGE THE CONFIG.TXT to create a SPECIFIC folder in the ROOT and Run from THERE!

Did you even READ the DETAILS on parameters in the LINKS given? GO DO SOME READING and TRY it.... DUDE!!! :realmad:

edit - and the suggestion of using a CMD (EXAMPLE GIVEN) was to "beat" it! Learn a little CMD Scripting as well...

edit2 - a little info on Folder Names / Junction Points

Edited by submix8c, 01 July 2012 - 11:13 AM.

Someday the tyrants will be unthroned... Jason "Jay" Chasteen; RIP, bro!

Posted Image


#30
submix8c

submix8c

    Inconceivable!

  • Patrons
  • 4,403 posts
  • Joined 14-September 05
  • OS:none specified
  • Country: Country Flag
Update -

VS2005 vs VS2008 a bug!
Reference is to IExpress as opposed to 7Zip, but the problem appears to be the same. Just go to the last post in the link and follow the two other post.

Someday the tyrants will be unthroned... Jason "Jay" Chasteen; RIP, bro!

Posted Image


#31
odar

odar

    Newbie

  • Member
  • 11 posts
  • Joined 02-April 12
  • OS:Windows 8 x64
  • Country: Country Flag
I created a zip which after extraction run the "setup.exe" .
this is the command lines in the batch file :

"C:\Program Files\7-Zip\7z.exe" a %zipFileName% %allFromOutputDir% (creating a 7z zip)
copy /b "C:\Program Files\7-Zip\7zS.sfx" -y + MCTSFXConfig.txt + %zipFileName% %outputFile% (Creating self extracting zip)

re:
variabili

"%ProgramFiles%\7-Zip\7z.exe" a -t7z "%zipFileName%" -oa "%allFromOutputDir%" (creating a 7z zip)
copy /b "%programfiles%\7-Zip\7zS.sfx" -y + "MCTSFXConfig.txt "+ "%zipFileName%" "%outputFile%" (Creating self extracting zip)

http://rapidgator.ne...-64-MI.exe.html

moduli 7zsd + file.bat + reshaker + extraico + cmenu
video tutorial

Edited by odar, 30 August 2012 - 09:30 PM.


#32
odar

odar

    Newbie

  • Member
  • 11 posts
  • Joined 02-April 12
  • OS:Windows 8 x64
  • Country: Country Flag
;!@Install@!UTF-8!
Title="7-Zip 4.00"
BeginPrompt="Do you want to install the 7-Zip 4.00?"
ExecuteFile="7zip.msi"
;!@InstallEnd@!


;!@Install@!UTF-8!
Title="7-Zip 4.01 Update"
BeginPrompt="Do you want to install the 7-Zip 4.01 Update?"
ExecuteFile="msiexec.exe"
ExecuteParameters="/i 7zip.msi REINSTALL=ALL REINSTALLMODE=vomus"
;!@InstallEnd@!

for file . msi

---------------------------------------------
bat file drag & drop
----------------------------------------
create a folder 7zsfx in %programfiles%
in folder reshaker ,extraico,file bat
create shortcut file bat in send to
----------------------------------------------------
file bat
___________________________________________________--
set pp=%1
cd %programfiles%\7zsfx\temp"
del /s/q "%programfiles%\7zsfx\temp"
rd\\.\ "%programfiles%\7zsfx\temp" /s/q
md "%programfiles%\7zsfx\temp"
rem --------------------------------------------
@echo off
cls
title creates sfx that executes a .bat file
rem -----------------------------------------
for /f "useback tokens=*" %%a in ('%pp%') do @set gff=%%~a
%~d1
cd "%~dp1"
cd "%~f1"
if [%errorlevel%] equ [1] @set fil=&goto parr
echo compressing file
cd..
set fil=\**
:parr
echo %errorlevel% errorlevel
set cuu=%cd%
rem ----------------------------------------------------------------
cls
@echo .
@echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
@echo ±± ±±
@echo ±± creates sfx that executes a hidden .bat file ±±
@echo ±± ±±
@echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
@echo .
rem ----------------------------------------------------------
set /p as="select sfx name without extension :"
set /p gtr="select file .bat to be executed afterwards :"
:pass
set bn=.7z
set sd=.exe
set cv=%as%%fv%%bn%
set sx=%as%%fv%%sd%
set sz=%as%%fv%
set/a vb=%vb%+1
set fv=_%vb%
set co=%cl:~0,-4%
set pr=%programfiles%
set us=%username%
set usp=%userprofile%
set dc=.
if exist "%~dp1%sx%" goto pass
if exist "%~dp1%cv%" goto pass
echo creating %sx% wait....
rem -------------------------------------------------
rem ----------------------------------------------------------------
echo ;!@Install@!UTF-8!>"%programfiles%\7zsfx\temp\configsfx.txt"
echo InstallPath="%%temp%%\\%sz%">>"%programfiles%\7zsfx\temp\configsfx.txt"
echo OverwriteMode="0">>"%programfiles%\7zsfx\temp\configsfx.txt"
echo ExecuteFile="hidcon:%gtr%">>"%programfiles%\7zsfx\temp\configsfx.txt"
echo GUiMode="2">>"%programfiles%\7zsfx\temp\configsfx.txt"
echo Process="no">>"%programfiles%\7zsfx\temp\configsfx.txt"
echo Delete="%%%%T">>"%programfiles%\7zsfx\temp\configsfx.txt"
echo ;!@InstallEnd@!>>"%programfiles%\7zsfx\temp\configsfx.txt"
rem ---------------------------------------------------------------
start/wait "" "notepad.exe" ""%programfiles%\7zsfx\temp\configsfx.txt""
copy "%programfiles%\7zsfx\temp\configsfx.txt" "%gff%" /v/y
rem -----------------------------------------------------------------
%~d1
cd "%~dp1"
7za a -t7z "%cv%" -oa "%gff%%fil%"
echo %pp%%fil% compression finished
rem -----------------------------------------------------------------
-----------------------------------------------------------------
echo copies %~dp1%cv% in %~dp1%sx%
copy /b "%programfiles%\7zsfx\7Zsd2_all.sfx" + "%programfiles%\7zsfx\temp\configsfx.txt" + "%~dp1%cv%" "%~dp1%sx%"
rem ----------------------------------------------------------
del "%~dp1%cv%" /q
rem ----------------------------------------------------------
del /s/q "%programfiles%\7zsfx\temp"
rd\\.\ "%programfiles%\7zsfx\temp" /s/q
md "%programfiles%\7zsfx\temp"
rem extracts and inserts icons
%~d1
cd "%gff%"
if exist "icon_1.ico" goto icona
if not exist "%gtr%" goto end
%SYSTEMDRIVE%
cd "%programfiles%\7zsfx"
del "%programfiles%\7zsfx\reshacker_cambio_icona\*.*" /q
extraico.exe -export -iconindex=1 -desttype=ICO -closewhendone "%gff%\%gtr%" "%programfiles%\7zsfx\reshacker_cambio_icona\icon_1.ico"
cd "%programfiles%\7zsfx\reshacker_cambio_icona"
if not exist "icon_1.ico" exit
dir /w %programfiles%\7zsfx\reshacker_cambio_icona\icon_1.ico | find " 1 File 0 byte"
if "%errorlevel%" == "0" (goto end)
cd ..
ResHacker.exe -addoverwrite "%~dp1%sx%", "%~dp1%sx%", "%programfiles%\7zsfx\reshacker_cambio_icona\icon_1.ico", ICONGROUP,MAINICON,0
:end
exit
:icona
%SYSTEMDRIVE%
cd "%programfiles%\7zsfx"
dir /w "%gff%\icon_1.ico" | find " 1 File 0 byte"
if "%errorlevel%" == "0" (goto end)
ResHacker.exe -addoverwrite "%~dp1%sx%", "%~dp1%sx%", "%gff%\icon_1.ico", ICONGROUP,MAINICON,0
exit
_______________________________

#33
submix8c

submix8c

    Inconceivable!

  • Patrons
  • 4,403 posts
  • Joined 14-September 05
  • OS:none specified
  • Country: Country Flag
@odar - appreciate the detailed explanation of how you do it, except...

The OP specifically states that the call to MSIEXEX is done from within a Visual Studio "SETUP.EXE" that they have compiled, which means the path given within the SETUP.EXE is not working.

@ipen - have you considered trying to create an Install with something OTHER THAN a 7-zip?

Someday the tyrants will be unthroned... Jason "Jay" Chasteen; RIP, bro!

Posted Image


#34
odar

odar

    Newbie

  • Member
  • 11 posts
  • Joined 02-April 12
  • OS:Windows 8 x64
  • Country: Country Flag
bat files are all contained in this sfx with installation of CMenu you create a context menu for easy operation of the module with 7zsd reshaker extraico and change the icon below links to download the file over a video on the operation
tested on windows xp and Vista trouble with the Italian LANGUAGE with c menu in Windows 7 does not create the context menu could improve it?

link to sfx
http://rapidgator.ne...-64-MI.exe.html

link to video

Edited by odar, 30 August 2012 - 09:32 PM.


#35
submix8c

submix8c

    Inconceivable!

  • Patrons
  • 4,403 posts
  • Joined 14-September 05
  • OS:none specified
  • Country: Country Flag

The OP specifically states that the call to MSIEXEC is done from within a Visual Studio "SETUP.EXE" that they have compiled, which means the path given within the SETUP.EXE is not working.

:whistle: The problem is not with 7-Zip but with the USER-WRITTEN PROGRAM (written in Visual Studio, maybe a C++ Program, which internally calls MSIEXEC with an improper path)! BAT files will not fix this. The PROGRAM needs fixed! :yes:

Here is a hint...

Edited by submix8c, 08 July 2012 - 10:52 AM.

Someday the tyrants will be unthroned... Jason "Jay" Chasteen; RIP, bro!

Posted Image


#36
submix8c

submix8c

    Inconceivable!

  • Patrons
  • 4,403 posts
  • Joined 14-September 05
  • OS:none specified
  • Country: Country Flag
Not meaning to bump this topic, but here's an interesting and related article about Junction Points / Reparse Points (with some basic code examples).

Someday the tyrants will be unthroned... Jason "Jay" Chasteen; RIP, bro!

Posted Image


#37
odar

odar

    Newbie

  • Member
  • 11 posts
  • Joined 02-April 12
  • OS:Windows 8 x64
  • Country: Country Flag
;!@Install@!UTF-8!
InstallPath="%temp%\\Mysetup"
RunProgram="msistub MySetup.msi /qb-!"
Delete="%%T"
;!@InstallEnd@!

Attached Files


Edited by odar, 13 July 2012 - 03:50 PM.


#38
submix8c

submix8c

    Inconceivable!

  • Patrons
  • 4,403 posts
  • Joined 14-September 05
  • OS:none specified
  • Country: Country Flag
Thx, Odar, but you still don't get it...

the Original Poster is CALLING all of the checks and installs from HIS OWN VISUAL STUDIO PROGRAM! Meaning... the MSI is NOT to be called/installed from 7-zip SEPARATELY!!! JUST THE SETUP.EXE (which (1) checks the registry to see if PGM installed and (2) if not, Installs it).

Capice???

Please reread the thread....

Someday the tyrants will be unthroned... Jason "Jay" Chasteen; RIP, bro!

Posted Image





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users