|
#1441
|
||||
|
||||
|
Does anyone know any way to send a text from one Inno Setup executable to another?
Similar to the SendMessage function. Is there any way to use WM_COPYDATA with SendMessage in Inno Setup? It is not possible to configure WindowProc without pointers in innoSetup (It is not possible to type for TCopyDataStruct). |
| Sponsored Links |
|
#1442
|
||||
|
||||
|
I've a problem. How to fix this?
![]() ![]() Example: Code:
Load.ini [Form] ; Language cache1=En_us ; Position: X cache2=$DeskWidth$ - 95% ; Position: Y cache3=$DeskHeight$ - 90% ; Form Width cache4=450 ; Form Height cache5=450 ; Form Border cache6=no cache7, cache8, ... Code:
Test.iss
{Code]
#define public i
#define public FCacheMax 26
#dim public FCache[5]
#sub CheckFCache
#define FCache[i] ReadIni(AddBackSlash(SourcePath) + "load.ini", "Form", StringChange("cacheInt","Int", Str(i)), "")
#endsub
#if ReadIni(AddBackSlash(SourcePath) + "load.ini", "Form", "cache1", "") != ""
#redim FCache[Int(FCacheMax)]
#for {i = 1; ReadIni(AddBackSlash(SourcePath) + "load.ini", "Form", StringChange("cacheInt","Int", Str(i)), "") !=""; i++} CheckFCache
#endif
function InitializeSetup(): Boolean;
begin
MsgBox('{#FCache[1]}', mbConfirmation, MB_OK);
end;
__________________
- All life is an experiment. The more experiments you make the better. - |
|
#1443
|
||||
|
||||
|
Change the lines:
Code:
#define public FCache[i] ReadIni(... ... #redim public FCache[Int(FCacheMax)] Last edited by Cesar82; 18-03-2021 at 04:01. |
|
#1444
|
||||
|
||||
|
Quote:
__________________
- All life is an experiment. The more experiments you make the better. - |
|
#1445
|
|||
|
|||
|
I know there's an if/else but is there an if/else for ifdef?
Example: Code:
#define example
#ifdef example
ExtractTemporaryFile('def.txt')
#else
ExtractTemporaryFile('notdef.txt')
#endif
|
|
#1446
|
||||
|
||||
|
__________________
Haters gonna hate
|
|
#1447
|
||||
|
||||
|
Quote:
Code:
#define example 5
#if defined(example)
#if Example == 5
ExtractTemporaryFile('def5.txt')
#elif Example == 4
ExtractTemporaryFile('def4.txt')
#elif Example == 3
ExtractTemporaryFile('def3.txt')
#elif Example == 2
ExtractTemporaryFile('def2.txt')
#elif Example == 1
ExtractTemporaryFile('def1.txt')
#else
ExtractTemporaryFile('def.txt')
#endif
#else
ExtractTemporaryFile('notdef.txt')
#endif
|
|
#1448
|
|||
|
|||
|
Help with Progress Bar
Hello everyone, I am trying to add a progress bar to a script.
Code:
Progress:= TNewProgressBar.Create(WizardForm); with Progress do begin Parent := WizardForm; SetBounds(10, 150, 200, 0); Max:=1000; end; Code:
function ProgressCallback(OveralPct,CurrentPct: integer;CurrentFile,TimeStr1,TimeStr2,TimeStr3:PAnsiChar): longword; begin if OveralPct <=1000 then Progress.Position := OveralPct; Result := ISDoneCancel; end; Code:
if CurPageID = wpInstalling then
begin
ExtractTemporaryFile('unarc.dll')
Progress.Show;
DesktopIconCheckBox.Enabled := false;
WizardForm.DirEdit.Hide;
WizardForm.DirBrowseButton.Hide;
ISDoneCancel:= 0
ISDoneError := true;
if ISDoneInit(ExpandConstant('{src}\records.inf'), $F777, 0, 0, 0, MainForm.Handle, 512, @ProgressCallback) then begin
ChangeLanguage('English')
begin
repeat
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\*.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), false) then break;
ISDoneError := false;
until true;
ISDoneStop;
end;
end;
end;
I'm not entirely sure why the progress bar isn't showing up during installation. I click "Install" to trigger wpInstalling. THe directory box and the browse button disappear and the desktop icon checkbox is frozen. However, the progress bar does not appear. Why could this be? Thanks! |
|
#1449
|
||||
|
||||
|
Quote:
Maybe it's because you set Parent = WizardForm. If you are a native installer, the parent should be the wpInstalling page. If you are an installer that uses the native interface, try setting the ProgressBar Parent to: Code:
Parent: = WizardForm.ProgressGauge.Parent; or Parent: = WizardForm.InstallingPage; |
|
#1450
|
|||
|
|||
|
Quote:
|
| The Following 2 Users Say Thank You to DiCaPrIo For This Useful Post: | ||
Cesar82 (07-05-2021), Masquerade (08-05-2021) | ||
|
#1451
|
|||
|
|||
|
Is there any way I can use ExtractTemporaryFile with the * wildcard?
Currently I have this: Code:
[Files]
Source: Include\*; DestDir: {tmp}; Flags: dontcopy
|
|
#1452
|
|||
|
|||
|
Quote:
HTML Code:
#define Resources "Files\*"
[Files]
Source: {#Resources}; DestDir: {tmp}; Flags: dontcopy
[Code]
function InitializeSetup:boolean;
begin
#define FHandle
#define FRst
#define Mask Resources
#sub ProcessFiles
#define FileName FindGetFileName(FHandle)
ExtractTemporaryFile('{#FileName}');
#endsub
#for {FHandle = FRst = FindFirst(Mask, 0); FRst; FRst = FindNext(FHandle)} ProcessFiles
Result:=True;
end;
Last edited by DiCaPrIo; 09-05-2021 at 06:52. |
| The Following 2 Users Say Thank You to DiCaPrIo For This Useful Post: | ||
El.Amigos (22-05-2021), Masquerade (09-05-2021) | ||
|
#1453
|
||||
|
||||
|
Quote:
Code:
[Files]
Source: Include\*; DestDir: {tmp}; Flags: dontcopy
[ code]
function InitializeSetup(): Boolean;
begin
ExtractTemporaryFiles('{tmp}\*.*');
Result := True;
end;
So I recommend you change to {tmp} in the DLL functions, or specify a destination other than {tmp} for them using the dontcopy flag. Code:
function ISArcExtract(CurComponent: Cardinal; PctOfTotal:double; InName, OutPath, ExtractedPath: AnsiString; DeleteInFile: Boolean; Password, CfgFile, WorkPath: AnsiString; ExtractPCF: boolean ):boolean; external 'ISArcExtract@files:ISDone.dll stdcall delayload';
change to:
function ISArcExtract(CurComponent: Cardinal; PctOfTotal:double; InName, OutPath, ExtractedPath: AnsiString; DeleteInFile: Boolean; Password, CfgFile, WorkPath: AnsiString; ExtractPCF: boolean ):boolean; external 'ISArcExtract@{tmp}\ISDone.dll stdcall delayload';
Last edited by Cesar82; 09-05-2021 at 10:53. |
|
#1454
|
||||
|
||||
|
Can anyone tell me if it is necessary to call these IsDone functions below if I do not use the ISFindFiles e and ISPrecompExtract and ISSRepExtract functions.
Code:
if not SrepInit(ExpandConstant('{app}\'), 512, 0) then
Break;
if not PrecompInit(ExpandConstant('{app}\'), 128, 0) then
Break;
if not FileSearchInit(True) then
Break;
I will only use IsArcExtract, IsRarExtract, IS7ZipExtract and ISxDeltaExtract. |
![]() |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| INNO TROUBLESHOOT - Tutorials and Answers about INNO Setup | REV0 | Conversion Tutorials | 129 | 21-05-2021 05:51 |
| INNO TUTORIAL - Using Unicode and ANSI Versions of INNO Setup | REV0 | Conversion Tutorials | 51 | 26-03-2015 06:57 |
| Frequently Asked Questions | Joe Forster/STA | PC Games - Frequently Asked Questions | 0 | 29-11-2005 09:48 |