Toon posts:

[vb6] Applicatie starten vanuit een zip file *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb me helemaal rot gezocht op Google en hier op Tweakers maar ik kan niks vinden.
Kan iemand mij vertellen of, en zo ja, hoe je een applicatie die in een zip file staat kan opstarten zonder dat je de applicatie eerst zelf uit hoeft te pakken naar de harde schijf?

De uitgepakte executable is 4.4Mb en ingepakt 1.6Mb. Een van de eisen van die gemaakt moet worden is dat het een 'light weight' applicatie wordt qua grootte, vandaar de vraag.

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 01-05 19:09

pjvandesande

GC.Collect(head);

Je pakt de zip temp uit, dus ergens in een temp directory en start hem. Later pak je hem weer in en overschrijf je de zip.

Overigens vind ik 4.4mb best light weight hoor.

[ Voor 18% gewijzigd door pjvandesande op 23-03-2005 08:54 ]


Verwijderd

Topicstarter
Die 4.4 is alleen voor de ingepakte executable. Er komt nog een heel programma omheen.
Kan je de zip file eventueel ook alleen in het geheugen uitpakken en dan gebruiken? Of gaat dat niet?

De bedoeling is dat het overkoepelende programma de executable uit de zip file kan opstarten.

(Is het zo duidelijk?)

  • AzzKickah
  • Registratie: Juni 2001
  • Laatst online: 09-05 14:19

AzzKickah

06-CENSORED

Voordat je iets kunt runnen uit een ZIP-file zal dat toch eerst ge-decomprimeerd moeten worden... Of dat in het werkgeheugen kan weet ik niet, denk het bijna wel overigens...

  • FireWood
  • Registratie: Augustus 2003
  • Laatst online: 10-05 14:22
Je hebt er speciale programma's ervoor die executebles kunnen inpakken en dan gewoon de extensie exe blijft houden. Zodat je er van buiten niks van kan zien.

upx bijvoorbeeld

[rml][ Delphi] Hoe maak ik m'n EXE kleiner?[/rml]

[ Voor 22% gewijzigd door FireWood op 23-03-2005 09:07 ]

Noobs don't use "F1", Pro's do, but they can't find the information they needed


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:52

gorgi_19

Kruimeltjes zijn weer op :9

Over welke VB hebben we het hier? :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 01-05 19:09

pjvandesande

GC.Collect(head);

Waarom in het geheugen, je hebt toch wel iets van schijfruimte over? Ik snap eerlijk gezegt de reden niet zo goed waarom je dit zou willen doen.

offtopic:
Goede morgen Edink :w

[ Voor 13% gewijzigd door pjvandesande op 23-03-2005 09:03 ]


Verwijderd

Topicstarter
Schijf ruimte genoeg. Dat is het probleem niet. Het idee achter de zip file is mij eigenlijk niet helemaal duidelijk. Dit is een project dat ik van een van onze afstudeerders bij mij op kantoor heb overgedragen gekregen.

De opdrachtgever heeft een aantal eisen gesteld en dit is er een van.

Het programma wordt geschreven in VB 6.0

Het makkelijkst zou inderdaad zijn om de applicatie gewoon uitgepakt op te nemen in het overkoepelende programma.

[ Voor 15% gewijzigd door Verwijderd op 23-03-2005 09:07 ]


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 01-05 19:09

pjvandesande

GC.Collect(head);

Maar wat zijn de eisen dan precies? Is het een eis dat het programma in een zip moet zitten en vanuit daar moet runnen.

Ik zou eerst is precies uitzoeken waarom ze dit zo willen, er zijn wellicht veel beteren oplossingen dan een zip.

  • dailyleaf
  • Registratie: December 2004
  • Laatst online: 08-01 19:05

dailyleaf

...

Winzip heeft een functie 'Install'
Deze pakt automatisch de setup.exe en pakt ze (denk ik) tijdelijk uit in het geheugen.

Is dat misschien iets?

Mijn post is interessanter dan mijn Sig..


Verwijderd

Topicstarter
questa schreef op woensdag 23 maart 2005 @ 09:08:
Maar wat zijn de eisen dan precies? Is het een eis dat het programma in een zip moet zitten en vanuit daar moet runnen.

Ik zou eerst is precies uitzoeken waarom ze dit zo willen, er zijn wellicht veel beteren oplossingen dan een zip.
Het was een afstudeer project binnen het bedrijf hier. Die knul die dat project gedaan heeft heeft na afloop van zijn tijd hier alles weg gegooid wat hij had (behalve dan de source code). Eisen zijn dus niet meer achterhaalbaar. En de man die de eisen heeft opgesteld is twee maanden geleden met pensioen gegaan, dus dat helpt (helaas) ook niet echt mee...

Ik heb het vermoeden dat de hoofdredenen toch applicatie grootte (in Mb's) is.

Verwijderd

De enige reden om je druk te maken over de grootte van je executable kan zijn dat het programma gedownload moet kunnen worden via een analoog lijntje. Dan kun je 'm idd het beste inpakken en op locatie uitpakken. Eenmaal op locatie maakt het niets meer uit.

Als niemand weet waarom deze (met uitzondering van hierboven genoemde mogelijkheid) belachelijke beperking opgelegd is, waarom maak je je er dan druk om?

Vergeet daarnaast ook niet dat de client pc's ook over de vb runtime moeten beschikken en die is ook al 1 MB groot.

Verwijderd

Topicstarter
Verwijderd schreef op woensdag 23 maart 2005 @ 09:21:
De enige reden om je druk te maken over de grootte van je executable kan zijn dat het programma gedownload moet kunnen worden via een analoog lijntje. Dan kun je 'm idd het beste inpakken en op locatie uitpakken. Eenmaal op locatie maakt het niets meer uit.

Als niemand weet waarom deze (met uitzondering van hierboven genoemde mogelijkheid) belachelijke beperking opgelegd is, waarom maak je je er dan druk om?

Vergeet daarnaast ook niet dat de client pc's ook over de vb runtime moeten beschikken en die is ook al 1 MB groot.
Klopt en het overkoepelende programma zit ondertussen ook al tegen de 5Mb aan. Zoals ik al zei net, ik snap de beperking ook niet helemaal. Maar als het kan kan ik het natuurlijk gewoon in de code opnemen. Anders haal dat bestand gewoon uit de zip file en wordt de gehele uiteindelijke applicatie 3Mb groter...

Het ging mij er meer om of zoiets mogelijk is en zo ja hoe aangezien ik op internet niet veel wijzer werd.

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 01-05 19:09

pjvandesande

GC.Collect(head);

Verwijderd schreef op woensdag 23 maart 2005 @ 09:24:
[...]


Klopt en het overkoepelende programma zit ondertussen ook al tegen de 5Mb aan. Zoals ik al zei net, ik snap de beperking ook niet helemaal. Maar als het kan kan ik het natuurlijk gewoon in de code opnemen. Anders haal dat bestand gewoon uit de zip file en wordt de gehele uiteindelijke applicatie 3Mb groter...

Het ging mij er meer om of zoiets mogelijk is en zo ja hoe aangezien ik op internet niet veel wijzer werd.
De zip pak je gewoon uit in een temp directory en die neem je op in je overkoepelende applicatie. Dit lijkt mij het makkelijkst en is gewoon haalbaar. Er zijn een aantal zip modules voor VB om een zip te decomprimeren en daarna kun je met de gedecomprimeerde bestanden gewoon werken. Hiermee zou ik is wat gaan spelen.

Verwijderd

Topicstarter
questa schreef op woensdag 23 maart 2005 @ 09:28:
[...]


De zip pak je gewoon uit in een temp directory en die neem je op in je overkoepelende applicatie. Dit lijkt mij het makkelijkst en is gewoon haalbaar. Er zijn een aantal zip modules voor VB om een zip te decomprimeren en daarna kun je met de gedecomprimeerde bestanden gewoon werken. Hiermee zou ik is wat gaan spelen.
Ok, dat lijkt me ook wel haalbaar ja. Zou het ook mogelijk zijn om het zip bestand alleen in het geheugen uit te pakken en de uitgepakte .exe direct vanuit het geheugen te draaien?

Verwijderd

Verwijderd schreef op woensdag 23 maart 2005 @ 09:24:
[...]
Maar als het kan kan ik het natuurlijk gewoon in de code opnemen. Anders haal dat bestand gewoon uit de zip file en wordt de gehele uiteindelijke applicatie 3Mb groter...
[...]
Ik kan begrijpen dat je het vanuit interesse graag zou willen weten, maar voor je applicatie maakt het IMO niets uit. Iig niet voor de werking en het heeft alleen maar een nadelig effect op de performance. Daarnaast introduceer je onnodige complexiteit in je applicatie architectuur en dus een serie van potentiele bugs . Hou het zo helder en straight-forward als mogelijk, daar heb je in de toekomst alleen maar plezier van...

Verwijderd

Topicstarter
Verwijderd schreef op woensdag 23 maart 2005 @ 09:32:
[...]


Ik kan begrijpen dat je het vanuit interesse graag zou willen weten, maar voor je applicatie maakt het IMO niets uit. Iig niet voor de werking en het heeft alleen maar een nadelig effect op de performance. Daarnaast introduceer je onnodige complexiteit in je applicatie architectuur en dus een serie van potentiele bugs . Hou het zo helder en straight-forward als mogelijk, daar heb je in de toekomst alleen maar plezier van...
Het is vooral intresse ja. De applicatie moet in principe ASAP klaar zijn, dus ik ga waarschijnlijk toch wel met de makkelijkste oplossing.

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 01-05 19:09

pjvandesande

GC.Collect(head);

Verwijderd schreef op woensdag 23 maart 2005 @ 09:30:
[...]


Ok, dat lijkt me ook wel haalbaar ja. Zou het ook mogelijk zijn om het zip bestand alleen in het geheugen uit te pakken en de uitgepakte .exe direct vanuit het geheugen te draaien?
Is het echt een exe of gaat het om anderen files. Je kan uiteindelijk alles in je geheugen zetten als een stream. Maar het word vrij complex als je echt een exe in je geheugen wilt zetten er mee wilt werken. Is dit echt een eis, want ik heb liever 200mb op me HDD erbij dan in me geheugen.

Verwijderd

Topicstarter
questa schreef op woensdag 23 maart 2005 @ 09:37:
[...]

Is het echt een exe of gaat het om anderen files. Je kan uiteindelijk alles in je geheugen zetten als een stream. Maar het word vrij complex als je echt een exe in je geheugen wilt zetten er mee wilt werken. Is dit echt een eis, want ik heb liever 200mb op me HDD erbij dan in me geheugen.
Het gaat om een echte exe van 4.4Mb die in het geheugen zou komen.
Maar wat ik zo begrijp haal ik me heel veel moeilijkheden op de nek als we de boel op deze manier implementeren. Wellicht toch maar gewoon de uitgepakte .exe direct gebruiken.

  • FireWood
  • Registratie: Augustus 2003
  • Laatst online: 10-05 14:22
Ik heb het hierboven al neer gezet, maar de post gingen te snel.

Zelfde vraag:
[rml][ Delphi] Hoe maak ik m'n EXE kleiner?[/rml]


offtopic:
ook hoi

Noobs don't use "F1", Pro's do, but they can't find the information they needed


Verwijderd

Topicstarter
h.edink schreef op woensdag 23 maart 2005 @ 09:49:
Ik heb het hierboven al neer gezet, maar de post gingen te snel.

Zelfde vraag:
[rml][ Delphi] Hoe maak ik m'n EXE kleiner?[/rml]


offtopic:
ook hoi
Dat ziet er inderdaad ook interressant uit.

Verwijderd

Topicstarter
Maar goed.
Ik heb net de netwerkschijf van onze afdeling weer eens helemaal goed afgezocht om te kijken of ik toch nog iets van documentatie kon terug vinden. En wat denk je? Ja hoor. Heb een documentje van 1 kantje gevonden met een aantal wensen en eisen.

Wat blijkt? Het gehele programma dient in een zip geknalt te worden voor archiving.. Niks dat een gedeelte vanuit een zip bestand gestart moeten worden... Heerlijk studenten die een rotzooi achter laten :'(

Anyways. Bedankt iedereen voor jullie input.

Wat mij betreft mag er een slotje op...

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 07-05 15:06

sopsop

[v] [;,,;] [v]

Spuit 11:
Je kan een behoorlijk kleinere executable krijgen door je prog i.p.v. in native code in p-code te compileren. Dat kan een factor 3 schelen.
Pagina: 1