Avatar billede boris Mester
12. marts 2003 - 08:29 Der 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?
Avatar billede jrl0469 Nybegynder
12. marts 2003 - 08:34 #1
Unload Form
Load Form
Avatar billede jrl0469 Nybegynder
12. marts 2003 - 08:35 #2
Det kommer lige lidt an på hvorledes du har opbygget dit program. Men er der blot tale om en Form så kan du gøre som nævnt oven for...
Avatar billede joern Nybegynder
12. marts 2003 - 08:38 #3
Hej.

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.

M.v.h  Jørn
Avatar billede jrl0469 Nybegynder
12. marts 2003 - 08:40 #4
Ja Jørn har ret, men kan det ikke ordnes ved: set Form=nothing?
Avatar billede boris Mester
12. marts 2003 - 08:44 #5
Jeg har prøvet at skrive unload form, men det hjalp ikke.
Nu har jeg i stedet forsøgt mig med Unload Me, og det ser ud til at fungere
Avatar billede jrl0469 Nybegynder
12. marts 2003 - 08:48 #6
Du skal naturligvis angive det korrekte navn, typisk Form1 vis ikke du selv har ændret navnet...
Avatar billede boris Mester
12. marts 2003 - 09:15 #7
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.
Avatar billede chris2k Nybegynder
22. marts 2003 - 04:37 #8
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...
Avatar billede boris Mester
22. marts 2003 - 09:20 #9
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

Unload Me

End Sub
Avatar billede chris2k Nybegynder
24. marts 2003 - 04:13 #10
1: Det er farligt at bruge et predefineret filenumber (du har brugt 1)

I stedet skal der staa:
Dim iFileNo As Integer
iFileNo = FreeFile
Open "update.txt" For Output As iFileNo

osv osv...

Anyway, hvad var pointen med dit indlaeg? Den stykke kode virker ikke eller hvad?
Avatar billede boris Mester
24. marts 2003 - 06:12 #11
-> 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.
Avatar billede chris2k Nybegynder
24. marts 2003 - 23:54 #12
boris: Hvis det stadig ligger i hukommelsen efter du har lukket programmet, saa virker det ikke...
Avatar billede boris Mester
25. marts 2003 - 07:02 #13
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.
Avatar billede chris2k Nybegynder
25. marts 2003 - 09:31 #14
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.
Avatar billede boris Mester
24. november 2003 - 00:45 #15
lukkes...
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester