Go Back   FileForums > Game Backup > PC Games > PC Games - CD/DVD Conversions > Conversion Tutorials

 
 
Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
  #11  
Old 28-10-2013, 15:14
ayateknik ayateknik is offline
Registered User
 
Join Date: Dec 2012
Location: turkey
Posts: 19
Thanks: 4
Thanked 0 Times in 0 Posts
ayateknik is on a distinguished road
Quote:
Originally Posted by altef_4 View Post
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



How can I do like the picture

Last edited by ayateknik; 28-10-2013 at 15:18.
Reply With Quote
 

Tags
inno setup, installer, script, source code

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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
Conversion Designer/Installer Creator Razor12911 Conversion Tutorials 1613 03-10-2024 01:24
Carldric Installer (Compact Version) Carldric Clement Conversion Tutorials 4 20-01-2023 01:43
Game Installer Designer by altef_4 altef_4 Conversion Tutorials 236 28-05-2021 02:54
INDEX - Conversion Tutorial Index Razor12911 Conversion Tutorials 5 11-06-2020 02:05
Tutorial using CI 8.0.0 yener90 Conversion Tutorials 424 21-10-2014 09:49



All times are GMT -7. The time now is 19:51.


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