DK-Update System for Developers ( Delphi Req. ) beta 1.0 *UPDATED

10/14/2009 17:01 Nosferatu.#1
Attachmend was deleted thanks to janvier123. Project CLosed!

Tipp: Get Delphi Personal 2005 .. 4Free! No warez, 100% working, your own orginal (Non Trial) key! Simple Programing language (like lua Scripting lang), easy to learn!

Update: New version of the manager, they works fully! DKUtils and Exampe Project are includes, have fun!

Hello i have writen an Update Engine for Dekaron!

Only for Developers with Delphi or another language, with this engine u can Make ur Own Luncher without .div files!

No need the dkutilspack.exe anymore, you can Pack your files now with the Manager, its simple and secure,(NEW) Delphi Code for an example launcher:

(You can create sure ur own Code!! No Problem. This Example Works Fully i think i have test it 99%, if this not working full on your pc let me know. The Manager and DKUtils is Absolute working 101%)


Update 17 October 2009 : The code works now Perfect. There was an error by checking md5 hash from new files, the variable md5n was always empty! Now its work! I have Re-Upload the DKupManager.rar with working Example + Example Source Code

Code:
Function GetPickData(name,cmd:string):string;
begin
 ScriptCreate(Pchar(name));
 if not (CMD = '') then
  Result:=ReadScript(Pchar(CMD));
 ScriptFree;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  DekaronBin,SetupTo:TStringlist;
  md5o,md5n,newfs:String;
  TxT:TExtFile;
  I:Integer;
begin
  DekaronBin:=TStringList.Create;
  SetupTo:=TStringList.Create;
  try
    LoadAResFile('update.dat',DekaronBin);
  finally
    SetupTo.LoadFromFile(LoadResByname(DekaronBin,'Setup.log'));
    Progressbar1.MaxValue:=DekaronBin.Count -1;
 end;
 for I := 0 to DekaronBin.Count - 2 do
  begin

  if FileExists(ExtractFilePath(SetupTo.Strings[i])+'\'+ExtractFilename(DekaronBin.Strings[i])) then
   begin
    AssignFile(txt,ExtractFilePath(SetupTo.Strings[i])+'\'+ExtractFilename(DekaronBin.Strings[i]));
     Reset(Txt);
     ReadLn(Txt,md5o);
     md5o:=lowerCase( md5.StrMD5(md5o));
    closefile(txt);
   end
     else exit;

  newfs:=ExtractFilePath(SetupTo.Strings[i])+'\'+ExtractFilename(DekaronBin.Strings[i]);
  newfs:=StringReplace(NewFs,'\\','\',[rfReplaceAll]);
  md5n:=GetPickData(LoadResByname(DekaronBin,'Setup.log'),newfs);

  if (md5n = md5o) then
   begin
      Label3.Caption:='Status: no need to update the file '+ExtractFilePath(SetupTo.Strings[i])+'\'+ExtractFilename(DekaronBin.Strings[i]);
      Application.ProcessMessages;
      sleep(100);
    end else
    begin
      sleep(150);
      DeleteFile(newfs);
      Label3.Caption:='Status: Update file '+newfs;
      movefile(Pchar(DekaronBin.Strings[i]),Pchar(StringReplace(StringReplace(SetupTo.Strings[i],',','',[rfReplaceAll]),md5n,'',[rfReplaceAll])));
    end;
      Progressbar1.Progress:=Progressbar1.Progress+1;
     if Progressbar1.Progress = Progressbar1.MaxValue then
       form6.Show;
   end;
   SetupTo.Free;
   DekaronBin.Free;
end;


This version is the 2. one of dkutils.dll ! I release it Soon!
If you have questions or want to report bugs, I would be glad if you send me a PN

The Manager put Automatically the .log file in the Archiv!

You can let view the Setup.log or other file with: Memo1.LoadFromFile( LoadResByname(DekaronBin,'setup.log')); u can do it with all files in the Archiv

You can pack all files with same name , but u cant pack Folders, its not RAR or ZIP like its a Game Archiv System of my MMOG!!!


If u dont know Delphi or other languages, i can make an Launcher for u if u need one, pls contact me then via PN ! example: [Only registered and activated users can see links. Click Here To Register...]

I have Create a Manager with the "Main Engine" from my Old Project "UPPACK".



Files:

Project1.exe <- Manager



unpack.exe <- instant extract files (Parameters: ewf , need to extact update.upa in folder "update" will auto create it)

deltemp.exe <- Delete "Auto" Temp files from any archiv after closing!
upcrypt.dll <- Crypt Engine
uppack.dll <- Pack Engine

lib/libupcar.dll <- Only checking the Application if allredy Running
lib/libupexf.dll <- Execute Library
lib/libupfty.dll <- To get FileTyp of any file in archiv
lib/libupgshuff.dll <- Need to get random filename for Temp - Files


Add 1 File to Pack List
[Only registered and activated users can see links. Click Here To Register...]

Add xx Files to Pack List
[Only registered and activated users can see links. Click Here To Register...]


You can Sort ur Files easy, right - click on the field and click on "Your own Mask"
now you can sord your files like this: ( channellist.csv;loginlist.csv;servantlist.csv )

[Only registered and activated users can see links. Click Here To Register...]




The manager will now create a Setup.log!


Language Files want help u to navigate with few Languages ,English ,German ... in the new version! want help me to translate? You can do it with the new version and Post the lang files here

I hope it help you to manage ur updates with DKUtils!

i have scan with Virustotal [Only registered and activated users can see links. Click Here To Register...] you can do it again if u want.
10/14/2009 17:47 janvier123#2
sweet and can you make it in something i can understand ?
like a simple exe with some config files plz ?
Thx
10/14/2009 17:51 Zombe#3
Why delphi..? :facepalm: It uses pascal language, which I hate... Any chance you would rewrite that to c++? Or will I have to try to understand that?
10/14/2009 17:55 Nosferatu.#4
Quote:
Originally Posted by Zombe View Post
Why delphi..? :facepalm: It uses pascal language, which I hate... Any chance you would rewrite that to c++? Or will I have to try to understand that?
u need only the DLL not my example code, idont know ... try to use the DLL with c++

Try this: [Only registered and activated users can see links. Click Here To Register...]

Quote:
Originally Posted by janvier123 View Post
sweet and can you make it in something i can understand ?
like a simple exe with some config files plz ?
Thx
u can find a example.exe in the example folder, i want to create a Manage tool to make it simple :mofo:

OFFTOPIC:
i have try to register an account on your DKveterans to play, but on register page is an error.
10/14/2009 19:01 janvier123#5
Quote:
Originally Posted by darnus84 View Post

OFFTOPIC:
i have try to register an account on your DKveterans to play, but on register page is an error.

ok, when i get a member saying "i cant register, i get a error" i just ignor him
i need to know the code or i dont help sorry
10/14/2009 19:09 Nosferatu.#6
Quote:
Originally Posted by janvier123 View Post
ok, when i get a member saying "i cant register, i get a error" i just ignor him
i need to know the code or i dont help sorry
config.inc.php is missing, the register.php cant connect to database i think , if u need help ask me (icq: 281877194)

Here a way to check version of all files with MD5 Hash

Code:
const
  DLL_EXT01='gpdata.dll';

Procedure ScriptCreate(Filename:Pchar); stdcall; external DLL_EXT01;
Function ReadScript(ident:Pchar):Pchar; stdcall;  external DLL_EXT01;
Function ScriptIndex:Real; stdcall;  external DLL_EXT01;
Function ScriptList:TStringList; stdcall;  external DLL_EXT01;
Procedure WriteScript(Ident,Value:Pchar); stdcall; overload; external DLL_EXT01;
Procedure WriteScript(Ident,Value:Pchar; OverWrite:Boolean); stdcall; overload; external DLL_EXT01;
Procedure ScriptFree; stdcall; external DLL_EXT01;


Function GetPickData(name,cmd:string):string;
begin
 ScriptCreate(Pchar(name));
 if not (CMD = '') then
  Result:=ReadScript(Pchar(CMD));
 ScriptFree;
end;

Example:
setup.log

data\share\test.txt,DC9F121B2963AE360AB3D7A660D502C7

Code:


AssignFile(txt,data\share\test.txt);
  Reset(Txt);
  ReadLn(Txt,md5o);
  md5o:= md5.StrMD5(md5o);
closefile(txt);

[U]Now Load MD5 string from update.dat and check if the same or not:[/U]

md5n:= GetPickData(LoadResbyName(DekaronBin,'Setup.log'),'data\share\test.txt');

if not (md5o <> LowerCase(md5n)) then
 begin
  // what ever u do .. Prozess ...
 end;
10/15/2009 10:17 trane.#7
#Double posts merged

Don't multiple post darnus
10/15/2009 14:52 antondude#8
Woot people using delphi, pascal is crappy mm :(
Zombe take 1-2 week and you can learn delphi language easy.

Nice darnus, a new updating method good stuff.
10/15/2009 15:01 Nosferatu.#9
Quote:
Originally Posted by antondude View Post
Woot people using delphi, pascal is crappy mm :(
Zombe take 1-2 week and you can learn delphi language easy.

Nice darnus, a new updating method good stuff.
Thank you antondude.

I will make a ready-made tool to disposal but do any of the data is so easy to come by uppack because no Advanced crypt can be used, why did I put code to free disposal

u all can use now "Advanced Cryp Options" with the new dll

use this if the archiv got Advanced Cryp Options to get files:

Code:
LoadAResFileWPW('update.dat',DekaronBin,'Your Password');

[U]u can use this too:[/U]

LoadAResFile('update.dat',DekaronBin);
10/15/2009 17:39 trane.#10
#Stickied
10/17/2009 06:57 Nosferatu.#11
A new Launcher Design: DKAdel

CLick here:
[Only registered and activated users can see links. Click Here To Register...]

I will create for all edittable Launcher version!
If anyone has ideas or wishes, please write it here! I will then try to realize
10/17/2009 08:44 bellydaniel#12
outstanding. do anyone can make a launcher on a website or webpage, like many new generation laucher only launch from a web site -.-"
10/17/2009 09:21 Nosferatu.#13
Quote:
Originally Posted by bellydaniel View Post
outstanding. do anyone can make a launcher on a website or webpage, like many new generation laucher only launch from a web site -.-"
it is not a website launcher lol sure not, it is only a design first for a win32 Application.
11/22/2009 18:58 l2ush604#14
thnx a lot :D
11/27/2009 13:23 trane.#15
#Closed
#Unstickied


On user's demand.