Avatar billede Kim Neesgaard Seniormester
12. april 2003 - 15:45 Der er 8 kommentarer og
2 løsninger

Afinstallation af VB 6.0 applikation

Jeg har en VB 6.0 applikation som jeg har lavet Packadge and Deploy på. Installation på en anden maskine går glat og applikationen viser sig fint i Start-menuen.
Når man afinstallerer får man beskeden 'unable to remove x.exe', hvor x.exe er ens applikation - hvordan undgår man denne besked?
Avatar billede kjeld_klit Nybegynder
12. april 2003 - 15:50 #1
Det kunne evt. være fordi dit program ikke er afsluttet. Kører det i Windows Jobliste?
Avatar billede Kim Neesgaard Seniormester
12. april 2003 - 16:21 #2
Ja - det kører faktisk i joblisten. Applikationen er lukket ned (troede jeg da) med 'Hovedmenu.Hide', men der skal åbenbart noget andet til?
Avatar billede kjeld_klit Nybegynder
12. april 2003 - 16:27 #3
Så er det nok der problemer er.

Du skal i din kode i Form QueryUnload skrive End så er du sikker på at End bliver kørt uanset hvordan programmet lukkes. Husk evt. at lukke evt. databaseadgang først, ellers står de åbne efter du har lukke programmet.
Avatar billede Kim Neesgaard Seniormester
12. april 2003 - 16:41 #4
Databaser skulle være lukkede.

Nu har jeg i hjælpen fundet følgende:

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  Dim Msg  ' Declare variable.
  If UnloadMode > 0 Then
      ' If exiting the application.
      Msg = "Do you really want to exit the application?"
  Else
      ' If just closing the form.
      Msg = "Do you really want to close the form?"
  End If
  ' If user clicks the No button, stop QueryUnload.
  If MsgBox(Msg, vbQuestion + vbYesNo, Me.Caption) = vbNo Then Cancel = True
End Sub

men hvordan bruger jeg helt nøjagtigt dette stykke kode?
Avatar billede kjeld_klit Nybegynder
12. april 2003 - 17:01 #5
Det er jo en lille ekstra krølle "Er du sikker på at du vil afslutte?"

Brug det som der er eller nøjes med "End" uanset hvad bruger har klikket på.

QueryUnload bruges til at opfange utilsigtede lukninger fx krydset øverst. Hvis bruger svarer ja kan du sørge for at db og andet bliver lukket rigtigt inden dit program bliver lukket.
Avatar billede Kim Neesgaard Seniormester
12. april 2003 - 17:56 #6
Jeg kan godt få den til at fange koden ved at trykke på krydset øverst, men selvom jeg siger 'Ja' til at lukke, bliver x.exe stadig i joblisten?

Brug af Form.Hide kan jeg ikke få til at fange Form_QueryUnload?
Avatar billede Kim Neesgaard Seniormester
17. april 2003 - 09:30 #7
Kan du forklare brugen af "End" lidt nærmere?
Avatar billede Kim Neesgaard Seniormester
18. april 2003 - 15:09 #8
Indføjelse af koden i http://www.eksperten.dk/spm/341741 gør, at afinstallation går uden problemer, så så vidt jeg kan se, supplerer den Form_QueryUnload.
Avatar billede Kim Neesgaard Seniormester
18. april 2003 - 15:10 #9
-> kjeld_klit: Vil du ikke afgive 'svar', så vi kan dele point?
Avatar billede kjeld_klit Nybegynder
22. april 2003 - 16:55 #10
Lidt om End fra Excel97 vb-hjælp - stort set identisk med vb-hjælpen i VB:

Bemærk!  Sætningen End standser straks udførelsen af programkode uden at kalde hændelserne Unload, QueryUnload eller Terminate eller nogen anden Visual Basic-kode. Programkode, der er placeret i hændelserne Unload, QueryUnload og Terminate til formularer og klassemoduler udføres ikke. Objekter, der er oprettet fra klassemoduler ødelægges. Filer, der er åbnet med sætningen Open, lukkes, og den hukommelse, som programmet bruger, frigøres. Objektreferencer, der tilhører andre programmer, gøres ugyldige.

Sætningen End giver dig mulighed for at tvinge programmet til at stoppe. Ved en normal afslutning af et Visual Basic-program, bør du fjerne alle formularer. Programmet lukkes, så snart der ikke er flere programmer, der indeholder referencer til objekter, som er oprettet fra dine offentlige klassemoduler, og der ikke køres programkode.
*************
Som det fremgår lukkes programmet brutalt ned med End, derfor er det en god ide at bruge den inde i en Form_QueryUnload. Måske har der været en skjult form der stadig kørte medens du forsøgte at afinstallere? Et eller andet har der været.

En måde at teste dét på kunne være at installere sit program og umiddelbart afinstallere det uden at det har været åbnet. Hvis man kan det, er det fordi noget ikke er lukket rigtigt efter det har kørt på computeren.

Nå - godt du fik det løst...
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
Kategori
Kurser inden for grundlæggende programmering

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