Go Back   FileForums > Game Backup > PC Games > PC Games - CD/DVD Conversions > Conversion Tutorials
Register FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Search this Thread Display Modes
  #1561  
Old 23-09-2023, 08:51
shazzla shazzla is offline
Registered User
 
Join Date: Nov 2010
Location: Hunnia
Posts: 292
Thanks: 523
Thanked 102 Times in 78 Posts
shazzla is on a distinguished road
Thanks,but it only creates folders.
How to implement it in my script? (Above)
(Atm im away from my comp,btw tomorrow will try something with it)
Reply With Quote
Sponsored Links
  #1562  
Old 24-09-2023, 00:09
shazzla shazzla is offline
Registered User
 
Join Date: Nov 2010
Location: Hunnia
Posts: 292
Thanks: 523
Thanked 102 Times in 78 Posts
shazzla is on a distinguished road
tried. i still cant extract the files there.. ( {tmp}\xBIK )

Any solution ? Anyone ?
Reply With Quote
  #1563  
Old 29-09-2023, 16:53
Junior53's Avatar
Junior53 Junior53 is offline
Registered User
 
Join Date: May 2023
Location: Sri Lanka
Posts: 25
Thanks: 23
Thanked 32 Times in 10 Posts
Junior53 is on a distinguished road
Lightbulb :)

Quote:
Originally Posted by Junior53 View Post
01.how to show Component Page before the Select Dir Page (without creating custom forms or anything like that) in Inno setup 5.5.1 ee2 version?

02.how to calculate the required disk space based on the components selected and show in gigabyte on Component page in Inno setup 5.5.1 ee2 version?

I actually found an answer to this. But it doesn't work. If someone gives an answer to these two, it will be a great help <3

Code:
var
  Component1Size: Extended;
  Component2Size: Extended;
  // Add variables for each component as needed

procedure InitializeWizard;
begin
  Component1Size := 1048576;
  Component2Size := 2097152;
  // Assign sizes for other components if needed
end;

function GetTotalSize: String;
var
  TotalSize: Extended;
begin
  TotalSize := 0;
  if WizardForm.ComponentsList.Checked[0] then
    TotalSize := TotalSize + Component1Size;
  if WizardForm.ComponentsList.Checked[1] then
    TotalSize := TotalSize + Component2Size;
  // Add similar lines for other components if needed

  Result := FormatFloat('#,##0.00', TotalSize / 1024 / 1024 / 1024); // Convert bytes to gigabytes
end;

procedure ComponentsPageOnNextButtonClick(Sender: TWizardPage; var Continue: Boolean);
begin
  if Sender.ID = wpSelectComponents then
    WizardForm.DiskSpaceLabel.Caption := 'Required disk space: ' + GetTotalSize + ' GB';
end;
It's Actually 05:20 Am here in sri lanka and i finally found the answer to this LMAO
Reply With Quote
  #1564  
Old 27-06-2024, 00:09
Lord.Freddy's Avatar
Lord.Freddy Lord.Freddy is offline
Registered User
 
Join Date: Apr 2022
Location: ...
Posts: 54
Thanks: 222
Thanked 40 Times in 25 Posts
Lord.Freddy is on a distinguished road
Hello, yesterday I attempted to create a function in Inno Setup to gather file names and their respective sizes, but only a few files were returned. I am currently at a standstill and unsure of how to proceed. Does anyone know where i went wrong?
Code:
[Setup]
AppName=FindFiles
AppVerName=FindFiles
CreateAppDir=no
OutputDir=.\OutPut
OutputBaseFilename=FindFiles

[_Code]
type 
  TAutoString = {#defined(UNICODE) ? "Wide" : ""}String;
  TFileList = array of record
    FileName, FileSize: TAutoString;
  end;

var 
  FileList: TFileList;

function Size64(const Hi, Lo: Integer): Extended;
begin
  Result := Lo;
  if (Lo < 0) then
    Result := (Result + $7FFFFFFF + $7FFFFFFF + 2);
  for Hi := (Hi - 1) downto 0 do
    Result := (Result + $7FFFFFFF + $7FFFFFFF + 2);
end;

function FloatToStrEx(const value: Extended): TAutoString;
begin
  Result := FloatToStr(value);
  while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = '.')) and (Pos('.', Result) > 0) do
    SetLength(Result, (Length(Result) - 1));
end;

function FindFilesEx(FolderPath: TAutoString; var FilesList, FileSize: array of TAutoString): Integer;
var
  FindRec: TFindRec;
begin
  Result := 0;
  if FindFirst(ExpandConstant(AddBackslash(FolderPath)) + '*', FindRec) then
  begin
    repeat
      if (FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0) or
         (FindRec.Attributes and FILE_ATTRIBUTE_HIDDEN <> 0) then
      begin
        SetArrayLength(FilesList, Result + 1);
        SetArrayLength(FileSize, Result + 1);
        FilesList[GetArrayLength(FilesList) - 1] := ExpandConstant(AddBackslash(FolderPath)) + FindRec.Name;
        FileSize[GetArrayLength(FileSize) - 1] := FloatToStrEx(Size64(FindRec.SizeHigh, FindRec.SizeLow));
        Result := Result + 1;
      end;
      if FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY <> 0 then
      begin
        if (FindRec.Name <> '.') and (FindRec.Name <> '..') then
          Result := Result + FindFilesEx(AddBackslash(FolderPath) + FindRec.Name, FilesList, FileSize);
      end;
    until not FindNext(FindRec);
    FindClose(FindRec);
  end;
end;

procedure FindFiles(Dir: TAutoString; var FilesFound: Integer);
var
  TotalFilesFound, Y, S: Integer;
  FilesNameList, FileNameSize: array of TAutoString;
begin
  TotalFilesFound := FindFilesEx(ExpandConstant(Dir), FilesNameList, FileNameSize);
  FilesFound := TotalFilesFound;
  for Y := 0 to totalFilesFound - 1 do
  begin
    SetArrayLength(FileList, GetArrayLength(FileList) + 1);
    S := GetArrayLength(FileList) - 1;
    with FileList[S] do
    begin
      FileList[S].FileName := FilesNameList[Y];
      Delete(FileList[S].FileName, Pos(AddBackslash(Dir), FileList[S].FileName), Length(AddBackslash(Dir)));    
      FileList[S].FileSize := FileNameSize[Y];
    end;      
  end;
end;

function InitializeSetup: Boolean;
var
  TotalFilesFound, I: Integer;
  Dir: TAutoString;
begin
  Dir := ExpandConstant('{src}\..');
  FindFiles(Dir, TotalFilesFound);
  for I := 0 to GetArrayLength(FileList) - 1 do
  begin
    msgbox('FileName: ' + FileList[I].FileName + #13#10 + 'FileSize: ' + FileList[I].FileSize + ' bytes', mbInformation, MB_OK);
  end;
  Result := False;
end;
Update(solution):
I found a solution for the above code, which is as follows.
Code:
[Setup]
AppName=FindFiles
AppVerName=FindFiles
CreateAppDir=no
OutputDir=.\OutPut
OutputBaseFilename=FindFiles

[_Code]
type 
  TAutoString = {#defined(UNICODE) ? "Wide" : ""}String;
  TFileList = array of record
    FileName, FileExt, FileSize, FilePath: TAutoString;
  end;

function Size64(const Hi, Lo: Integer): Extended;
begin
  Result := Lo;
  if (Lo < 0) then
    Result := (Result + $7FFFFFFF + $7FFFFFFF + 2);
  for Hi := (Hi - 1) downto 0 do
    Result := (Result + $7FFFFFFF + $7FFFFFFF + 2);
end;

function FloatToStrEx(const value: Extended): TAutoString;
begin
  Result := FloatToStr(value);
  while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = '.')) and (Pos('.', Result) > 0) do
    SetLength(Result, (Length(Result) - 1));
end;

function pFindFiles(const BaseDir, DestDir, FileMask: TAutoString; var OutFileList: TFileList): Integer;
var
  FSR, DSR: TFindRec;
  FindResult: Boolean;
  APath: TAutoString;
  nCount: Integer;
begin
  APath := ExpandConstant(AddBackslash(DestDir));
  FindResult := FindFirst(APath + '*.*', DSR);
  try
    while FindResult do
    begin
      if ((DSR.Attributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY) and not ((DSR.Name = '.') or (DSR.Name = '..')) then
      begin
        pFindFiles(BaseDir, APath + DSR.Name, FileMask, OutFileList);
      end;
      FindResult := FindNext(DSR);
    end;

    FindResult := FindFirst(APath + FileMask, FSR);

    while FindResult do
    begin
      if (FSR.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0) then
      begin
        SetArrayLength(OutFileList, GetArrayLength(OutFileList) + 1);
        OutFileList[GetArrayLength(OutFileList) - 1].FileName := FSR.Name;        
        OutFileList[GetArrayLength(OutFileList) - 1].FileExt  := ExtractFileExt(FSR.Name);
        OutFileList[GetArrayLength(OutFileList) - 1].FileSize := FloatToStrEx(Size64(FSR.SizeHigh, FSR.SizeLow));
        OutFileList[GetArrayLength(OutFileList) - 1].FilePath := ExtractFilePath(ExtractRelativePath(AddBackslash(BaseDir), APath + FSR.Name));
        nCount := nCount + 1;
      end;
      FindResult := FindNext(FSR);
    end;
  finally
    FindClose(FSR);
    FindClose(DSR);
  end;
  Result := nCount;
end;

function InitializeSetup: Boolean;
var
  TotalFilesFound, I: Integer;
  Dir: TAutoString;
  FileList: TFileList;
  OutList: TAutoString;
begin
  Dir := ExpandConstant('{src}\..');
  TotalFilesFound := pFindFiles(Dir, Dir, '*.*', FileList);
  for I := 0 to GetArrayLength(FileList) - 1 do
  begin
    OutList := OutList + 'FileName: ' + FileList[I].FileName + #13#10 + 'FileSize: ' + FileList[I].FileSize + ' bytes' + #13#10 + 'FileExt: ' + FileList[I].FileExt + #13#10 + 'FilePath: ' + FileList[I].FilePath + #13#10 + #13#10;
  end;
  msgbox(OutList, mbInformation, MB_OK);
  Result := False;
end;
__________________
¤ Life good be a Dream ¤

Last edited by Lord.Freddy; 27-06-2024 at 07:57.
Reply With Quote
  #1565  
Old 11-07-2024, 03:23
demon964 demon964 is offline
Registered User
 
Join Date: Feb 2014
Location: Azerbaijan
Posts: 38
Thanks: 4
Thanked 7 Times in 5 Posts
demon964 is on a distinguished road
Root: "HKLM"; Subkey: "SOFTWARE\Wow6432Node\KONAMI\PES2013"; ValueType: string; ValueName: "installdir"; ValueData: "{app}{#MyAppExeName}"; Flags: uninsdeletekey

I added this code to my script, but it duplicates Wow6432Node the folder in regedit.

It should be: SOFTWARE\Wow6432Node\KONAMI\PES2013

But it shows: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Wow6432Nod e\KONAMI\PES2013
Reply With Quote
  #1566  
Old 29-11-2024, 09:51
jakepaulie jakepaulie is offline
Registered User
 
Join Date: Oct 2024
Location: Czech Republic
Posts: 4
Thanks: 1
Thanked 0 Times in 0 Posts
jakepaulie is on a distinguished road
Hello, i have a problem. When i want to do some repacks it normaly works. But when i want to start the wizard the problem starts. It Normally installs, But not really... It just corrupts the file. Please help me with it
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

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



All times are GMT -7. The time now is 23:12.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
FileForums @ https://fileforums.com