/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
lukke programmet helt.
Fra : Thomas Purkaer


Dato : 11-04-02 09:31

Hej

Har en vb 6.0 applikation hvor jeg arbejde med flere forms.

Når brugeren udfører bestemt handling har jeg behov for at få genstartet
applikationen. Hvordan lukker jeg hele den forrige applikation og genstarter
den?

har forsøgt med at skrive

unload form1
unload form 2
shell app.path & "\" & app.exename
unload me

det virker nogen lunde dog efter lader den stadig noget i hukommelsen og man
kan se i joblisten i windows at den stadig køre. Og jeg har afsluttet alle
forms!

MVH
Thomas



 
 
Chris (11-04-2002)
Kommentar
Fra : Chris


Dato : 11-04-02 16:01

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

"Thomas Purkaer" <thomas@mobilli.dk> wrote in message
news:3cb549dc$0$12012$edfadb0f@dspool01.news.tele.dk...
>
> unload form1
> unload form 2
> shell app.path & "\" & app.exename
> unload me

Prøv at erstatte "unload me" med "ExitProcess 0".

Her er prototypen:
Public Declare Sub ExitProcess Lib "kernel32" Alias "ExitProcess"
(ByVal uExitCode As Long)

Venligst
Chris

-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 7.0.3 for non-commercial use <http://www.pgp.com>

iQA/AwUBPLWlFw6qxNNoghKpEQKukACg4Pg36tUnW5SuQ5Y3LB+UAeyxSl4AoLyo
A1E/SkyVGpw38eWs6hbMmO5N
=MFPt
-----END PGP SIGNATURE-----




preben nielsen (11-04-2002)
Kommentar
Fra : preben nielsen


Dato : 11-04-02 17:55


"Thomas Purkaer" <thomas@mobilli.dk> skrev i en meddelelse
news:3cb549dc$0$12012$edfadb0f@dspool01.news.tele.dk...
> Hej
>
> Har en vb 6.0 applikation hvor jeg arbejde med flere forms.
>
> Når brugeren udfører bestemt handling har jeg behov for at få
genstartet
> applikationen. Hvordan lukker jeg hele den forrige applikation
og genstarter
> den?

Hvorfor i alverden dog lukke ned og genstarte ???? Hvorfor ikke
bare fortsætte? Hvilke handlinger ?

Er du ude i noget snavn ?

--
/\ preben nielsen
\/\ prel@post.tele.dk



Thomas Purkaer (12-04-2002)
Kommentar
Fra : Thomas Purkaer


Dato : 12-04-02 07:59

"preben nielsen" <prel@post.tele.dk> skrev i en meddelelse
news:3cb5c162$0$78756$edfadb0f@dspool01.news.tele.dk...

> Hvorfor i alverden dog lukke ned og genstarte ???? Hvorfor ikke
> bare fortsætte? Hvilke handlinger ?

Fordi der bliver ændret nogle indstillinger som programmet skal indlæse når
det startes, derfor


> Er du ude i noget snavn ?

Sikker

/Thomas



Carsten Jessen (12-04-2002)
Kommentar
Fra : Carsten Jessen


Dato : 12-04-02 08:21


"Thomas Purkaer" <thomas@mobilli.dk> wrote in message
news:3cb6859c$0$78768$edfadb0f@dspool01.news.tele.dk...
> "preben nielsen" <prel@post.tele.dk> skrev i en meddelelse
> news:3cb5c162$0$78756$edfadb0f@dspool01.news.tele.dk...
>
> > Hvorfor i alverden dog lukke ned og genstarte ???? Hvorfor ikke
> > bare fortsætte? Hvilke handlinger ?
>
> Fordi der bliver ændret nogle indstillinger som programmet skal indlæse
når
> det startes, derfor
>
>
> > Er du ude i noget snavn ?
>
> Sikker
>
> /Thomas
>
>
Hej
Hvis du kan læse indstillingerne ind i starten af programmet kan du vel også
køre den samme sub senere i programmet.

MVH Carsten



preben nielsen (13-04-2002)
Kommentar
Fra : preben nielsen


Dato : 13-04-02 12:50


"Thomas Purkaer" <thomas@mobilli.dk> skrev i en meddelelse
>
> > Hvorfor i alverden dog lukke ned og genstarte ???? Hvorfor
ikke
> > bare fortsætte? Hvilke handlinger ?
>
> Fordi der bliver ændret nogle indstillinger som programmet skal
indlæse når
> det startes, derfor

Så må du istedet strukturere dit program bedre, således at
indstillinger kan ændres løbende. Det andet er da noget alvorligt
sjusk.........


--
/\ preben nielsen
\/\ prel@post.tele.dk



Tomas Christiansen (11-04-2002)
Kommentar
Fra : Tomas Christiansen


Dato : 11-04-02 22:56

Thomas Purkaer skrev:
> unload form1
> unload form 2
> shell app.path & "\" & app.exename
> unload me
>
> det virker nogen lunde dog efter lader den stadig noget i
hukommelsen og man
> kan se i joblisten i windows at den stadig køre. Og jeg har
afsluttet alle
> forms!

Mon ikke du alligevel har ét eller andet liggende, som det er dit
ansvar at rydde op inden programmet stopper?

Jeg prøvede følgende program Test.exe (timeren er sat til 100 ms)

Private Sub Form_Load()
Me.Show
End Sub

Private Sub Timer1_Timer()
Shell "Test.exe", vbNormalFocus
Unload Me
End Sub

Forbruget af resourcer på maskinen ændrede sig ikke, selvom jeg lod
programmet køre i adskillige minutter.

-------
Tomas


Thomas Purkaer (12-04-2002)
Kommentar
Fra : Thomas Purkaer


Dato : 12-04-02 07:59

"Tomas Christiansen" <toc@blikroer.removethis.dk> skrev i en meddelelse
news:a94t8u$k2o$1@news.cybercity.dk...

> Mon ikke du alligevel har ét eller andet liggende, som det er dit
> ansvar at rydde op inden programmet stopper?

Joh det var vidst en lille form jeg ikke havde fået lukket ordenlig

/Thomas



Per Madsen, Aalborg (30-04-2002)
Kommentar
Fra : Per Madsen, Aalborg


Dato : 30-04-02 20:33


"Thomas Purkaer" <thomas@mobilli.dk> wrote in message
news:3cb685c0$0$78768$edfadb0f@dspool01.news.tele.dk...
> "Tomas Christiansen" <toc@blikroer.removethis.dk> skrev i en meddelelse
> news:a94t8u$k2o$1@news.cybercity.dk...
>
> > Mon ikke du alligevel har ét eller andet liggende, som det er dit
> > ansvar at rydde op inden programmet stopper?
>
> Joh det var vidst en lille form jeg ikke havde fået lukket ordenlig
>
> /Thomas
>
>
Hvis du gør som følger i Form_Unload på din Main Form,
er det min erfaring, at der bliver godt ryddet op.

Dim i As Integer
'close all sub forms
For i = Forms.Count - 1 To 1 Step -1
Unload Forms(i)
Next

mvh
-Per




Tomas Christiansen (30-04-2002)
Kommentar
Fra : Tomas Christiansen


Dato : 30-04-02 23:46

Per Madsen, Aalborg skrev:
> Dim i As Integer
> 'close all sub forms
> For i = Forms.Count - 1 To 1 Step -1
> Unload Forms(i)
> Next

Når man har med collections at gøre - og Forms er en form for
collection (jeg ku' ikk' la' vær') - er det ofte lettest at iterere
med en For Each.

Eksempel:
Dim f As Form
For Each f In Forms
Unload f
Next

Så skal man heller ikke huske på om man skal starte med 0 eller 1, og
om man skal køre til .Count eller .Count - 1 eller, som du gør det,
tælle oppefra og ned.

Desuden er det et potentielt problem med din kode. Du forsøger at
unloade alle forms undtagen den med laveste index. Formodentlig fordi
du forventer at det er den form, som er ved at lukke de øvrige forms,
men det er der jo rent faktisk ingen garanti for!

Hvis man ikke ønsker at forsøge at lukke den form, som er i gang med
at lukke de øvrige forms, kan man modificere For Each-løkken til at se
således ud:

Dim f As Form
For Each f In Forms
If Not f Is Me Then Unload f
Next

-------
Tomas


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste