Avatar billede sneaky Nybegynder
09. april 2003 - 10:01 Der er 3 kommentarer og
1 løsning

Capture shutdown events

Er det muligt at håndtere shutdown events, således programmet advarer brugeren før programmet lukkes?

Scenario:

Applikationen kører -> brugeren kommer til at vælge shutdown process fra taskmanageren -> applikationen fanger denne event og advarer med f.eks. en messagebox.
Avatar billede z42cool Nybegynder
09. april 2003 - 10:12 #1
Shutdown vil forsøge at afslutte applikationen ved at sende en VM_EXIT eller ligenende besked til applikationn, så du burde kunne gøre det ved at hook din main forms Closing event!
Avatar billede z42cool Nybegynder
09. april 2003 - 10:17 #2
Noget i stil med:

public class MyMainForm : Form
{

  protected override void OnClosing(CancelEventArgs e)
  {
    DialogResult result = MessageBox.Show("Er du sikker på at du ønsker at afslutte applikationen?", "Confirm", MessageBoxButtons.OKCancel);
    if (result != DialogResult.OK)
    {
      e.Cancel = true
    }
    else
    {
      base.OnClosing(e);
    }
  }

  public static void Main()
  {
    //Dette kald bestemmer hvilken form der fungerer som main form
    Application.Run(new MyMainForm());
  }
}
Avatar billede sneaky Nybegynder
09. april 2003 - 11:02 #3
OnClosing fanger ikke eventen (hvis nogen sendes) fra taskmanageren :/

Ideen er god nok, og det er det princip jeg bruger for at advare brugeren mod at lukke programmet ved alt+f4 og "det røde kryds".
Avatar billede z42cool Nybegynder
09. april 2003 - 11:19 #4
OnClosing fanger det fint, problemet er bare at MessageBox.Show vil bremse tråden når popup boksen er blevet vist mens den venter på svar fra brugeren og task manageren vil opfatte dette som om at programmet hænger og vil derfor poppe op og spørge om man vil terminere alligevel. Denne 2. konfirmation kan du ikke komme uden om og svares der ja til den vil programmet naturligvis blive dræbt på den hårde måde, det er jo netop sikkerheden for at du kan dræbe alting, også tråde der hænger. Men konklusionen er, at OnClosing virker efter hensigten og giver dig mulighed for at advare brugeren om at eventuelle ugemte data vil gå tabt!
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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