FileForums

FileForums (https://fileforums.com/index.php)
-   Conversion Tutorials (https://fileforums.com/forumdisplay.php?f=55)
-   -   altef_4's installer (https://fileforums.com/showthread.php?t=93899)

Razor12911 19-10-2013 14:22

1 Attachment(s)
I used the DXDiag exmaple and look what I got.

amin fear 24-10-2013 05:57

@altef_4

Thanks for sharing your amazing script...

Nice to hear again from you after a long period...;)

Works flawlessly on my system and every provided information are correct...

http://s4.picofile.com/file/79811546...DxDiag_Web.jpg

amin fear 28-10-2013 09:18

Quote:

Originally Posted by altef_4 (Post 424862)
hi guys, and again i need a liitle of your help, i create a siple "plugin" for BASS.dll that allows to play music from memory location (not from temporary folder), please test it, you must have bass.dll 2.4.10 and sound.mp3 in folder with script and bp.dll (bass protect)

I have tested your script with latest & newest version of bass.dll (2.4.10) from www.un4seen.com...

The script compiles without any error but when testing the created setup ( pressing F9 ) , i am getting this error in Setup program startup...

http://s2.picofile.com/file/79853560...s_Idea_Web.jpg

I have the inno setup v 5.5.1 enhanced edition...

hope to help you...;)

ayateknik 28-10-2013 15:14

Quote:

Originally Posted by altef_4 (Post 424625)
i use Windows DxDiag to check the system, its easy but long, hare are code:
Code:

[Code]
//XML module 1.0
type
TTagPoint = record Name: String; BeginPos, EndPos, Level: Integer; end;

const
 
CP_ACP = 0; CP_UTF8 = 65001;

Function MultiByteToWideChar(CodePage: UINT; dwFlags: DWORD; lpMultiByteStr: PAnsiChar; cbMultiByte: integer; lpWideCharStr: PAnsiChar; cchWideChar: integer): longint; external '[email protected] stdcall';
Function WideCharToMultiByte(CodePage: UINT; dwFlags: DWORD; lpWideCharStr: PAnsiChar; cchWideChar: integer; lpMultiByteStr: PAnsiChar; cbMultiByte: integer; lpDefaultChar: integer; lpUsedDefaultChar: integer): longint; external '[email protected] stdcall';

function AnsiToUtf8(strSource: string): string;
var
nRet, nRet2: integer; WideCharBuf, MultiByteBuf: AnsiString;
begin
 
SetLength(WideCharBuf, Length(strSource) * 2);
  SetLength(MultiByteBuf, Length(strSource) * 2);
  nRet:= MultiByteToWideChar(CP_ACP, 0, strSource, -1, WideCharBuf, Length(WideCharBuf));
  nRet2:= WideCharToMultiByte(CP_UTF8, 0, WideCharBuf, -1, MultiByteBuf, Length(MultiByteBuf), 0, 0);
  MultiByteBuf:=Copy(MultiByteBuf, 1, nRet2-1);
  Result:= MultiByteBuf;
end;

function GetExists(TagArr: array of TTagPoint): Boolean;
var Part1, Part2, Temp: Boolean; n: integer;
begin
if
(GetArrayLength(TagArr) > 1) then begin
 
Temp:= True;
  for n:= GetArrayLength(TagArr)-1 downto 1 do begin
   
Part1:=False; If TagArr[n].BeginPos > TagArr[n-1].BeginPos then Part1:=True;
    Part2:=False; If TagArr[n].EndPos < TagArr[n-1].EndPos then Part2:=True;
    Temp:=Temp and (Part1 and Part2);
  end;
  If Temp then Result:= True;
end else begin
 
Result:=False; if (TagArr[0].BeginPos > 0) and (TagArr[0].EndPos > 0) then Result:= true;
end;
end;

function ExpandTags(const sFileText, sTagName: string): array of TTagPoint;
var i: integer; sTags: array of TTagPoint;
begin
SetArrayLength(Result, 0);
If Pos('\', STagName) > 0 then try
  repeat
   
i:= GetArrayLength(sTags); SetArrayLength(sTags, i+1);
    sTags[i].Name:= Copy(sTagName, 1, Pos('\', sTagName)-1);
    sTags[i].Level:= i; Delete(sTagName, 1, Pos('\', sTagName));
  until Pos('\', STagName) = 0;
  finally begin i:= GetArrayLength(sTags); SetArrayLength(sTags, i+1); sTags[i].Level:= i;
                  sTags[i].Name:= Copy(sTagName, 1, Length(sTagName));
          end;
end else begin
 
SetArrayLength(sTags, 1); sTags[0].Name:= sTagName;
end;
Result:= sTags;
end;

function XMLChangeValue(sFileName, sTagName, sTagParam: string): Boolean;
var sFileText: Ansistring; i: Integer; Tags: array of TTagPoint;
begin
Result:= False
if LoadStringFromFile(sFileName, sFileText) then begin
 
Tags:= Expandtags(sFileText, sTagName);
  for i:=0 to GetArrayLength(Tags)-1 do begin
   
Tags[i].BeginPos:= Pos('<'+Tags[i].Name, sFileText);
    if (Tags[i].BeginPos <> 0) then while sFileText[Tags[i].BeginPos] <> '>' do Tags[i].BeginPos:=Tags[i].BeginPos+1;
    Tags[i].EndPos:= Pos('</'+Tags[i].Name+'>', sFileText)
  end;
  If GetExists(Tags) then begin
   
i:= GetArrayLength(Tags)-1;
    Result:= SaveStringToFile(sFileName, Copy(sFileText,1,Tags[i].BeginPos) + AnsiToUtf8(sTagParam) + Copy(sFileText,Tags[i].EndPos,Length(sFileText)), False);
  end;
end;
end;

function XMLWriteValue(sFileName, sTagname, sTagType, sTagParam: string): Boolean;
var sFileText: AnsiString; sSpace, sText: string; i, k, n, CopyPos: Integer; Tags: array of TTagPoint;
begin
Result:= False;
if not FileExists(sFileName) then
 
SaveStringToFile(sFileName, '<?xml version="1.0" encoding="utf-8" standalone="yes"?>', False);
if LoadStringFromFile(sFileName, sFileText) then begin
 
Tags:= Expandtags(sFileText, sTagName);
  for i:=0 to GetArrayLength(Tags)-1 do begin
   
Tags[i].BeginPos:= Pos('<'+Tags[i].Name, sFileText);
    if (Tags[i].BeginPos <> 0) then while sFileText[Tags[i].BeginPos] <> '>' do Tags[i].BeginPos:=Tags[i].BeginPos+1;
    Tags[i].EndPos:= Pos('</'+Tags[i].Name+'>', sFileText)
  end;
  i:= GetArrayLength(Tags)-1; sText:='';
  if ((i-1)<>0) then for n:=0 to i-1 do begin
   
sSpace:= #13#10; if (Tags[n].Level-1>=0) then for k:=0 to Tags[n].Level-1 do sSpace:=sSpace+#9;
    if (Tags[n].BeginPos=0)and(Tags[n].EndPos=0) then sText:= sText+sSpace+'<'+Tags[n].Name+'>';
  end;
    sSpace:=#13#10; for k:= 0 to Tags[i].Level-1 do sSpace:= sSpace+#9; if (i+1=1) then sSpace:=#13#10;
    if (i+1=1)or(Tags[i-1].BeginPos=0) then begin CopyPos:= 1; while sFileText[CopyPos] <> '>' do CopyPos:=CopyPos+1; end else CopyPos:=Tags[i-1].BeginPos;
    if (sTagParam <> '')and(sTagType <> '') then sText:= sText+sSpace+'<'+Tags[i].Name+' type="'+sTagType+'">'+AnsiToUtf8(sTagParam)+'</'+Tags[i].Name+'>';
    if (sTagParam = '')and(sTagType = '') then sText:= sText+sSpace+'<'+Tags[i].Name+'>'+sSpace+'</'+Tags[i].Name+'>';
  if ((i-1)<>0) then for n:=i-1 downto 0 do begin
   
sSpace:= #13#10; if (Tags[n].Level-1>=0) then for k:=0 to Tags[n].Level-1 do sSpace:=sSpace+#9;
    if (Tags[n].BeginPos=0)and(Tags[n].EndPos=0) then sText:= sText+sSpace+'</'+Tags[n].Name+'>';
  end;
  Result:= SaveStringToFile(sFilename, Copy(sFileText, 1, CopyPos)+sText+Copy(sFileText,CopyPos+1,Length(sFileText)), False)
end;
end;

function XMLReadValue(sFileName, sTagName: string; var sData: string): Boolean;
var sFileText: ansistring; i: Integer; Tags: array of TTagPoint;
begin
Result:= False
if LoadStringFromFile(sFileName, sFileText) then begin
 
Tags:= ExpandTags(sFileText, sTagName);
  for i:=0 to GetArrayLength(Tags)-1 do begin
   
Tags[i].BeginPos:= Pos('<'+Tags[i].Name, sFileText);
    if (Tags[i].BeginPos <> 0) then while sFileText[Tags[i].BeginPos] <> '>' do Tags[i].BeginPos:=Tags[i].BeginPos+1;
    Tags[i].EndPos:= Pos('</'+Tags[i].Name+'>', sFileText);
  end;
  If GetExists(Tags) then begin
   
i:= GetArrayLength(Tags)-1;
    sData:= Copy(sFileText, Tags[i].BeginPos+1, Tags[i].EndPos-Tags[i].BeginPos-1);
    Result:= True;
  end;
end;
end;

function XMLDeleteValue(sFileName, sTagName: string): Boolean;
var b,e,i: Integer; sFileText: ansistring; Tags: array of TTagPoint;
begin
Result:= False;
if LoadStringFromFile(sFileName, sFileText) then begin
 
Tags:= ExpandTags(sFileText, sTagName);
  for i:=0 to GetArrayLength(Tags)-1 do begin
   
Tags[i].BeginPos:= Pos('<'+Tags[i].Name, sFileText);
    if (Tags[i].BeginPos <> 0) then while sFileText[Tags[i].BeginPos] <> '>' do Tags[i].BeginPos:=Tags[i].BeginPos+1;
    Tags[i].EndPos:= Pos('</'+Tags[i].Name+'>', sFileText)
  end;
  If GetExists(Tags) then begin
   
i:= GetArrayLength(Tags)-1;
    b:= Tags[i].BeginPos-1; e:= Tags[i].EndPos;
    while (b-1<>1)and(sFileText[b-1] <> '>') do b:=b-1;
    while (e+1<>Length(sFileText))and(sFileText[e-2] <> '>') do e:=e+1;
    Result:= SaveStringToFile(sFileName, Copy(sFileText,1,b) + Copy(sFileText,e,Length(sFileText)), False);
  end;
end;
end;
//END

function InitializeSetup: Boolean;
var res:integer;
  tra,ara,pro,dxv,dxw,vnm:string;
begin
Exec(ExpandConstant('{win}\system32\dxdiag.exe'),'/whql:off /x '+ExpandConstant('{tmp}')+'\dxdiag.xml',ExpandConstant('{tmp}'),0,ewWaitUntilTerminated,res);
XMLReadValue(ExpandConstant('{tmp}\dxdiag.xml'),'DDIVersion',dxv); //video dx
XMLReadValue(ExpandConstant('{tmp}\dxdiag.xml'),'DirectXVersion',dxw); //OS dx
XMLReadValue(ExpandConstant('{tmp}\dxdiag.xml'),'Processor',pro); //Processor
XMLReadValue(ExpandConstant('{tmp}\dxdiag.xml'),'Memory',tra); // All RAM
XMLReadValue(ExpandConstant('{tmp}\dxdiag.xml'),'AvaliableOSMem',ara); //Avaliable RAM
XMLReadValue(ExpandConstant('{tmp}\dxdiag.xml'),'CardName',vnm); //Videocard name
if MsgBox('Processor name: '+pro+#13+'Videocard Name: '+vnm+#13+'OS DirectX Ver: '+dxw+#13+'VideoCard DirectX Ver: DirectX '+dxv+#13+'Ram All/Avaliable: '+tra+'/'+ara,mbInformation,MB_OK) = MB_OK then Result:=False;
end;

totally main part is XML module xD

my project this code example. iss but I can not just add to the code to add anything else Do I need to add an extra dll jpg or png image

http://i40.tinypic.com/2qi7q1g.jpg

How can I do like the picture

altef_4 30-10-2013 08:15

Quote:

Originally Posted by ayateknik (Post 424951)
my project this code example. iss but I can not just add to the code to add anything else Do I need to add an extra dll jpg or png image

http://i40.tinypic.com/2qi7q1g.jpg

How can I do like the picture

Ask Razor12911, the screen of his script

altef_4 30-10-2013 08:17

Quote:

Originally Posted by amin fear (Post 424937)
I have tested your script with latest & newest version of bass.dll (2.4.10) from www.un4seen.com...

The script compiles without any error but when testing the created setup ( pressing F9 ) , i am getting this error in Setup program startup...

http://s2.picofile.com/file/79853560...s_Idea_Web.jpg

I have the inno setup v 5.5.1 enhanced edition...

hope to help you...;)

yes, library isn't finished

altef_4 12-11-2013 01:33

Preview of 2.3.1.3
 
1 Attachment(s)
new beta, many small bugs (easy fixable), added ReDrawText module 1.5e by Shegorat (v4 edited by me), new system check, updated my bp.dll (check temp folder for music.mp3) and script size is 265 kb.

y_thelastknight 12-11-2013 04:01

Quote:

Originally Posted by altef_4 (Post 425753)
new beta, many small bugs (easy fixable), added ReDrawText module 1.5e by Shegorat (v4 edited by me), new system check, updated my bp.dll (check temp folder for music.mp3) and script size is 265 kb.

cant run it dude.

http://img198.imageshack.us/img198/999/70m0.png

Razor12911 13-11-2013 04:37

Quote:

Originally Posted by ayateknik (Post 424951)
my project this code example. iss but I can not just add to the code to add anything else Do I need to add an extra dll jpg or png image

http://i40.tinypic.com/2qi7q1g.jpg

How can I do like the picture

I used my script then added Altef's example in it.

altef_4 17-11-2013 11:04

Inno Setup With AlphaSkins support
 
1 Attachment(s)
i find something interesting, it is modified Inno Setup 5.5.1 with alphaskins support (by tlama)
try it.

altef_4 22-11-2013 02:11

BASS Protect
 
1 Attachment(s)
new version of bp.dll
UPD
version without Runtime Packages, this will fix errors on computers without installed Delphi 2009 (thanks for Ne0N for info)

amin fear 22-11-2013 04:49

Quote:

Originally Posted by altef_4 (Post 426186)
new version of bp.dll
UPD
version without Runtime Packages, this will fix errors on computers without installed Delphi 2009 (thanks for Ne0N for info)

Hi @altef_4...

I have Delphi XE3 installed on my Windows 8 64 bit & it works like a charm !

PS : I have tested your setup also on a clean Windows 8.1 64Bit on VirtualBox & still works like a charm !:D;)

**********************************
You are genius , there is no extracted MP3 file in temp !:D

altef_4 22-11-2013 06:13

Image Animator (edited)
 
1 Attachment(s)
here is edited version of Inno ImageAnimator.dll from tlama , i added ANSI support, if you have Inoo Setup Enhanced Edition, graphics will be loaded from memory if not - then from folder "Resource" (yes, again protection :D) so, test it.

altef_4 22-11-2013 09:07

New Futures
 
1 Attachment(s)
Here is another preview, is not mine, based on new library - layered.dll by David.D.Rocco, i will use it in future in my installer

download library and examples

altef_4 30-11-2013 04:01

New Protection
 
1 Attachment(s)
hello again, i'm working on new protection method, that will allow to protect graphics, allow to use internal instalation and also allows to use b2p.dll in original Inno Setup (and other libraries like a b2p), here is an preview, try replace any image in Data.zip (password is Password) and run installer again (proof), also, check TEMP folder for finding this images (or any other folder :D)


All times are GMT -7. The time now is 04:08.

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