Ja, die is er. Het is Alt+F4.
Dit is de toetscombinatie om een programma te beëindigen . De enige reden dat het niet werkt zoals geadverteerd zijn onwetende programmeurs die weigeren de Microsoft ontwerp richtlijnen te volgen.
Dit probleem zou zich ook met elke andere sneltoets voordoen. U zou alleen een aangepaste oplossing kunnen maken met AutoHotKey (of gelijkaardige hulpmiddelen) die het proces doodt. Maar dit zou u hoogstwaarschijnlijk veel werk kosten. Aangezien dat nogal een brute force methode is om een proces af te sluiten.
Ik wil meer weten!
OK, voor zover ik het begrijp, zijn er verschillende manieren om een Windows applicatie te beëindigen.
- Het plaatsen van een
WM_CLOSE
window message in het hoofdvenster van de applicatie.
- Vernietigen van het venster van de hoofdtoepassing.
- Beëindig ](http://msdn.microsoft.com/en-us/library/ms686714%28VS.85%29.aspx) het proces.
De eerste manier is de clean manier. De manier waarop u bedoeld bent om een toepassing te sluiten. Dit is hetzelfde als Alt+F4 werkt. Als je op Alt+F4 drukt, stuur je gewoon het bericht WM_CLOSE
naar het venster van de toepassing.
Laten we nu eens kijken naar alle 3 manieren in omgekeerde volgorde.
Het beëindigen van een proces
In Windows, leeft een applicatie in een proces . Binnen dat proces kan de applicatie een venster maken. Het venster is wat je op je bureaublad ziet en waar je interactie mee hebt.
Dus, als het proces de root van een applicatie is, als je het beeindigt, gaat al het andere ook weg. Dus dit zou geweldig zijn om een applicatie volledig te beëindigen. Maar dit zal de applicatie zo abrupt beëindigen, dat het geen kans meer heeft om kritische data op schijf op te slaan.
Dus dit is niet aan te bevelen!
Het hoofdvenster van de applicatie vernietigen
Zoals we net geleerd hebben, is het hoofdvenster van de applicatie slechts een deel van het proces. Dus als we alleen dat venster vernietigen, zal het proces de boel nog steeds verstoppen :(
En dat zou nog moeilijker te verwijderen zijn dan de applicatie zou zijn geweest.
Dit is waarschijnlijk de smerigste manier om een applicatie te beëindigen. Blijf ver weg!
Het plaatsen van een WM_CLOSE
bericht
Windows is een op berichten gebaseerd besturingssysteem. Dat betekent dat componenten met elkaar praten door elkaar kleine berichten te sturen.
Een van deze berichten is het WM_CLOSE
bericht.
Als een applicatie dit bericht ontvangt, wordt afgesproken, dat deze applicatie alle actie aan moet grijpen en dan moet leven.
Maar iedere programmeur kan zelf beslissen hoe hij met het bericht omgaat.
Zoals de documentatie ons al eerder vertelde, zou het standaard gedrag zijn om DestroyWindow
aan te roepen en daarmee onze applicatie exit aanpak #2 uit te voeren.
Met het kleine verschil dat, dit keer , het opzettelijk is en het programma alle kans heeft om kritieke data te bewaren.
Conclusie
Dus, zoals je kunt zien, zijn we hier behoorlijk overgeleverd aan de genade van iedere programmeur. Of we nemen het risico om gegevens te verliezen (dat risico wil je niet nemen!).