Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bass.dll in Projekt integrieren (https://www.delphipraxis.net/138095-bass-dll-projekt-integrieren.html)

RedShakal 3. Aug 2009 15:20


Bass.dll in Projekt integrieren
 
Hallo zusammen, ich bin vor kurzem auf die Bass.dll umgestiegen. Leider stehe ich vor dem Problem das ich jedem nutzer immer die Bass.dll bereitstellen muss, was in dem Sinne nervig ist, weil mein Programm einen Autoupdater benutzt.

( ich habs mal für ganz faule gemacht und nicht extra ein seperates Programm geschrieben )

Delphi-Quellcode:
         if StrArr[0] = 'Version' then
           begin
             Form7.Show;
             if not FileExists('bass.dll') then
               begin
                 fs := TFileStream.Create('bass.dll', fmCreate);
                 Form6.HTTP.Get('***', fs);
                 fs.free;
                 Showmessage('bass.dll wurde vom Server nachgeladen!');
               end;
             RenameFile('kknd.exe', ChangeFileExt('kknd', '.temp'));
             fs := TFileStream.Create('.\kknd.exe', fmCreate);
             Form7.HTTP.Get('***', fs);
             fs.free;
             Client.Disconnect;
             ShellExecute(Application.Handle,'open','kknd.exe',nil,nil,SW_SHOW);
             ExitProcess(0);
          end;
       end;
Das läd die Datei herunter, benachichtigt den Nutzer und startet selbstständig neu...

Das funktionierte bis jetzt immer ganz prima aber leider springt das Programm ohne die Bass.dll garnicht erst an, was ein Nachladen unmöglich macht... kann man die DLL irgentwie in die Exe mit rein compilen oder ähnliches?

Chefx 3. Aug 2009 15:34

Re: Bass.dll in Projekt integrieren
 
Hey,

mir stellt sich die frage ob sich eine Exe selbst wieder aufrufen kann wenn sie schonlange zu ist?
Ich denke man muss eine datei die außerhalb ist die exe neustarten, sonst denke ich das es nicht funktioniert. :gruebel:

RedShakal 3. Aug 2009 15:42

Re: Bass.dll in Projekt integrieren
 
Nene das funktioniert Prima soweit. Hab mir gedanken gemacht wie ich das ganze realisieren könnte und irgentwann kam mir die Idee:

Exe datein kann man ja während der Laufzeit umbennennen... also

=>

1. alte KKND.exe in kknd.temp umbenennen
2. neue KKND.exe vom Server laden
3. neue KKND.exe starten
4. sich selbst beenden
5. die neue KKND.exe löscht automatisch - fals vorhanden - kknd.temp

ob das wirklich so effektiv ist weiß ich nicht aber es war meine Idee und sie Funktioniert :mrgreen:

Chefx 3. Aug 2009 15:46

Re: Bass.dll in Projekt integrieren
 
ok an sowas habe ich nicht gedacht. :thumb:

Vielleicht schickst du die datei comprimiert als eine Datei wie zip oder du denkst dir eins selber aus? :gruebel:

RedShakal 3. Aug 2009 15:50

Re: Bass.dll in Projekt integrieren
 
naja dann müsste ich aber immer erst das Archiv laden, entpacken und starten was wieder dazu führt, das ich wieder entpack Programme im Programm mitliefern muss wie unrar.exe wo wir wieder beim Anfang sind ;)

Chefx 3. Aug 2009 16:07

Re: Bass.dll in Projekt integrieren
 
und wenn du eins selbst baust (muss ja nicht komprimiert werden)?

Dunkel 3. Aug 2009 18:14

Re: Bass.dll in Projekt integrieren
 
Zitat:

Zitat von RedShakal
Das funktionierte bis jetzt immer ganz prima aber leider springt das Programm ohne die Bass.dll garnicht erst an, was ein Nachladen unmöglich macht... kann man die DLL irgentwie in die Exe mit rein compilen oder ähnliches?

Du könntest die DLL auch dynamisch einbinden. Dafür müsstest Du aber die BASS.pas ein wenig anpassen. Ich meine, da gibt es sogar schon was fertiges. Leider sind meine BASS.dll-Zeiten schon seit gefühlten Ewigkeiten vorbei, in sofern bin ich da nicht mehr ganz auf dem Laufendem.

Aber das hört sich doch ganz brauchbar an; wird aber wohl nicht mehr kompatibel zur neuen BASS.dll-Version sein.

omata 3. Aug 2009 22:47

Re: Bass.dll in Projekt integrieren
 
Hier ist auch noch ein Vorschlag.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz