anoniem Geplaatst: 21 juni 2002 Delen Geplaatst: 21 juni 2002 Weet iemand toevallig of en hoe het mogelijk is om een file uit bijv. een TMemoryStream direct te runnen zonder die eerst in een of andere temp dir op HD te gooien? - Fahr Quote Link naar reactie
anoniem Geplaatst: 21 juni 2002 Auteur Delen Geplaatst: 21 juni 2002 [quote:ce7bd5e5b4="Fahr"]Weet iemand toevallig of en hoe het mogelijk is om een file uit bijv. een TMemoryStream direct te runnen zonder die eerst in een of andere temp dir op HD te gooien?[/quote:ce7bd5e5b4]Ja, vraag me alleen niet hoe :) Quote Link naar reactie
anoniem Geplaatst: 23 juni 2002 Auteur Delen Geplaatst: 23 juni 2002 [quote:65678acea9="Fahr"]Weet iemand toevallig of en hoe het mogelijk is om een file uit bijv. een TMemoryStream direct te runnen zonder die eerst in een of andere temp dir op HD te gooien? - Fahr[/quote:65678acea9] In principe kun je memory-streams aan iedere functie doorgeven die streams kan lezen, maar verder ... Leg eerst maar eens uit wat je bedoelt met een 'file runnen' ... Quote Link naar reactie
anoniem Geplaatst: 23 juni 2002 Auteur Delen Geplaatst: 23 juni 2002 Als het zou kunnen denk ik dat je meer hebt aan een TFileStream... Kweenie hoor, ik programmeer al sinds m'n 11e in Delphi :lol: Quote Link naar reactie
anoniem Geplaatst: 23 juni 2002 Auteur Delen Geplaatst: 23 juni 2002 [quote:409afbeac3="JaFO"] In principe kun je memory-streams aan iedere functie doorgeven die streams kan lezen, maar verder ... Leg eerst maar eens uit wat je bedoelt met een 'file runnen' ...[/quote:409afbeac3] ok, voorbeeld: Ik heb een EXE, die stop ik als resource in een andere EXE. In de code laad ik die resourced EXE en douw 'm via een TResourseStream in een TMemoryStream of een TFileStream of wat dan ook. Kan ik dan, ZONDER die stream naar de HD te schrijven, die file opstarten alsof het een gewone EXE is? Het kan wel, EXEpackers doen het ook. - Fahr Quote Link naar reactie
anoniem Geplaatst: 23 juni 2002 Auteur Delen Geplaatst: 23 juni 2002 [quote:5570cffb7f="Fahr"]ok, voorbeeld: Ik heb een EXE, die stop ik als resource in een andere EXE. In de code laad ik die resourced EXE en douw 'm via een TResourseStream in een TMemoryStream of een TFileStream of wat dan ook. Kan ik dan, ZONDER die stream naar de HD te schrijven, die file opstarten alsof het een gewone EXE is? Het kan wel, EXEpackers doen het ook.[/quote:5570cffb7f] Niet helemaal. EXE packers die splitten de .exe weer naar data, code, stack, etc. segmenten en die losse stukken worden gecomprimeerd en zo opgeslagen. En aan de hand hiervan wordt de data in het geheugen gestopt en geinitialiseerd. Meestal wordt dus niet de complete executable als een stuk gecomprimeerd. Wat jij wilt kan wel, maar is nogal ongedocumenteerd wat betreft de exacte handelingen die de windows program loader doet.... :roll: Quote Link naar reactie
anoniem Geplaatst: 24 juni 2002 Auteur Delen Geplaatst: 24 juni 2002 Je wilt dus tijd besparen of alleen een proggie opstarten? Quote Link naar reactie
anoniem Geplaatst: 24 juni 2002 Auteur Delen Geplaatst: 24 juni 2002 [quote:6db3acbba9="Johan Stokking"]Je wilt dus tijd besparen of alleen een proggie opstarten?[/quote:6db3acbba9] alleen opstarten, bootstrap idee zonder disk-dump Quote Link naar reactie
anoniem Geplaatst: 24 juni 2002 Auteur Delen Geplaatst: 24 juni 2002 Zonder diskdump? Dus je wilt het programma starten terwijl deze niet op de harde schijf staat? Gewoon een virus verpakken dus :D Ik begrijp wel wat je bedoelt, maar ik kan je hiermee nie helpen. Sorry! Quote Link naar reactie
anoniem Geplaatst: 25 juni 2002 Auteur Delen Geplaatst: 25 juni 2002 Waarom is die tijdelijke diskdump nu zo'n bezwaar ? Zo'n tijdelijke bestandsnaam is makkelijk verzonnen mbv een Windows-functie. Enige probleem is dat je het programma in de gaten moet houden, zodat je het na het afsluiten dus weer kunt opruimen. Quote Link naar reactie
anoniem Geplaatst: 25 juni 2002 Auteur Delen Geplaatst: 25 juni 2002 probleem is het niet, ik heb het gewoon al eens voor elkaar gekregen zo en vroeg me af of het nog mooier kon :D Quote Link naar reactie
anoniem Geplaatst: 25 juni 2002 Auteur Delen Geplaatst: 25 juni 2002 Wat heb je voor elkaar gekregen dan? Quote Link naar reactie
anoniem Geplaatst: 25 juni 2002 Auteur Delen Geplaatst: 25 juni 2002 basic bootstrap, files diskdumpen en runnen met watchprog op de background, na running deleten. Quote Link naar reactie
anoniem Geplaatst: 25 juni 2002 Auteur Delen Geplaatst: 25 juni 2002 Hoe doe je dat dan? Dat in de gaten houden totdat het is afgesloten? Met een timer die het venster zoekt (FindWindow) of kan het simpeler? Quote Link naar reactie
anoniem Geplaatst: 25 juni 2002 Auteur Delen Geplaatst: 25 juni 2002 simpeler: [code:1:f1f031d456] var StartInfo:TStartupInfo; ProcessInfo:TProcessInformation; begin CreateProcess( PChar('mijnexe.exe'), // exe file name PChar(''), // params etc. nil, nil, // thread zut, niet belangrijk False, // inherit handles CREATE_NEW_PROCESS_GROUP + NORMAL_PRIORITY_CLASS, // creation flags nil, // environment PChar('C:\'), // rundir StartInfo, // TStartupInfo type ProcessInfo); // TProcessInformation type while WaitForSingleObject(ProcessInfo.hProcess,200) = WAIT_TIMEOUT do sleep(50); deletefile('mijnexe.exe'); end; [/code:1:f1f031d456] Quote Link naar reactie
anoniem Geplaatst: 25 juni 2002 Auteur Delen Geplaatst: 25 juni 2002 Maar kan je programma ondertussen wel nog normaal functioneren ofnie? Quote Link naar reactie
anoniem Geplaatst: 25 juni 2002 Auteur Delen Geplaatst: 25 juni 2002 WELK programma? de mijnexe.exe wel ja, die bootstrap niet, die staat op hold... Quote Link naar reactie
anoniem Geplaatst: 25 juni 2002 Auteur Delen Geplaatst: 25 juni 2002 Ohjah oke! Weet jij toevallig ook hoe je een programmaatje maakt die de hele tijd loopt terwijl Windows draait (in het register insteller dat hij gestart moet worden), en afsluit als Windows ook afsluit? Het is mij wel gelukt met een programma met een Form en dan ShowMainForm := False, maar dan is de applicatie meteen 350 kb groot! Kan het dan als een service? Of Console???? Quote Link naar reactie
anoniem Geplaatst: 25 juni 2002 Auteur Delen Geplaatst: 25 juni 2002 je kan je app natuurlijk zonder de forms unit maken, scheelt een hele berg als je de forms toch niet gebruikt... zoiets: [code:1:f83716f3b4] program Blah; uses SysUtils, Classes, Windows, zLib; {$R e:\delphimod\Include.RES} procedure x; var begin end; procedure y; var begin end; begin // hier komt de main program code // deze code wordt uitgevoerd als het progje start end. [/code:1:f83716f3b4] Das dan alleen een .dpr file en geen console app, als je er een icoontje aan wilt geven moet je een .ico pakken, een .rc file maken met dit erin: [code:1:f83716f3b4] MAINICON ICON mijnicon.ico [/code:1:f83716f3b4] die .rc file compile je dan met: brcc32 mijnrcfile.rc dan krijg je een mijnrcfile.RES, die gooi je dan in de Delphi app door onder alle uses te zetten: [code:1:f83716f3b4] {$R mijnrcfile.RES} [/code:1:f83716f3b4] Een Service kan je maken in Delphi 6 met file, new, service (duh), maar dat werkt alleen in WinNT2K... Quote Link naar reactie
anoniem Geplaatst: 25 juni 2002 Auteur Delen Geplaatst: 25 juni 2002 Maar dit proggie sluit zichzelf af als hij klaar is! Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen