12. marts 2003 - 08:29Der er
14 kommentarer og 1 løsning
luk program
Jeg har lavet et lille program i VB, men det er meningen, at programmet skal lukke sig selv ned, når det har gjort hvad det skal, så man kan kalde programmet igen og igen uden at skulle lukke det hver gang. Hvordan gør man lettest det?
Jeg anvender kommandoen 'end'. Evt. kan du kombinere den med en timer således at det sikres at de øvrige kommandoer er udførte før programmet afsluttes. Med 'unload' mener jeg at programmet stadig vil stå aktivt i tasklisten (og optage lidt ram), selv om formen ikke vises. Når programmet kaldes påny, vil det være dér 2 gange etc.
Vil man i øvrigt sikre sig at et program ikke startes mere end én gang kan man anvende PrevInstance.
Jeg har som sagt kun haft held med at skrive Unload Me. Men desværre ligger programmet stadig i hukommelsen bagefter. Det er ikke sikkert det gør noget.
joern: "End" er forbudt... Forskellen paa End og Unload er, at End slukker ned med det samme. Det er ikke fordi det er farligt eller noget, de andre funktioner du bruger skal nok blive faerdige, fordi dit program overhovedet ikke har mulighed for at goere 2 ting paa samme tid. Dvs. din kode bliver udfoert linie for linie, *end og story*... Anyway, hvis din form ikke vil lukke med Unload Me, saa har du lavet noget snask i din kode. Proev at starte et VB projekt, lav en command button og i Click eventen skriver du "Unload Me", start programmet og klik paa knappen. Tadaa! Formen lukker! Hvis den ikke goer, saa er der nogle af dine referencer som ikke lukket ordentligt og i VB er det saadan, at hvis du mangler at lukke nogle af disse, saa forbliver forbindelsen til formen aaben, og det forhindrer formen i at lukke og dermed programmet i at lukke... Dejligt kompliceret, men Microsoft syntes det skulle vaere en udfordring :-)
boris: Jo, det goer utroligt meget at du ikke har faaet det lukket helt fra hukommelsen... Hvis alle programmoerer havde den holdning, ville din Windows maskine crashe hver halve time... Jeg kan ikke udenvidere fortaelle dig hvad du skal goere, er noedt til og se noget kode foerst...
Det er nu reduceret til så lidt: Private Sub Form_Load() tekst.Text = Inet1.OpenURL("http://www.xxxxxxx") Open "update.txt" For Output As #1 Print #1, tekst Print #1, Now() Close #1
-> chr2k Det virker skam. Jeg fik det selv til at virke efter at jeg havde oprettet spørgsmålet. Men undrede mig over at køre det og det bagefter stadig lå i hukommelsen.
Både ja og nej... Det er faktisk lidt underligt. Lige efter at jeg havde kørt det, var det væk fra kørende programmer. Nu - lidt senere - er det med på listen igen over kørende programmer. (Windows 2000). Men der ser ikke ud til at køre processer.
Hvis programmet koerer, saa har det en tilhoerende process. Det har alle programmer ligegyldigt hvad.
Anyway, det er vigtigt at du faar det vaek fra hukommelsen, ellers kan du oedelaegge ting og i sidste ende vil det hele holde op med at virke. Du kan f.eks. ikke overskrive filen, da den er i brug.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.