C#: Programm beendet oder PC heruntergefahren?

Ich sollte mal irgendwie ein Nopaste installieren um CodeSchnipsel hier zu hinterlassen.

Dieser Code prüft, ob das Programm manuell beendet wird oder wenn man z.B. den PC per Startmenü herunterfährt. Sinnvoll um evtl. Messageboxen zu unterlassen, die den Shutdown unterbrechen würden.

private bool _systemShutdown = false;
// false == Benutzer beendet Form
// true == System wird heruntergefahren
protected override void WndProc( ref Message m )
{
int WM_QUERYENDSESSION = 0x11;
if( m.Msg == WM_QUERYENDSESSION )
_systemShutdown = true;
base.WndProc (ref m);
} // WndProc

Der Code stammt aus dem Gerald Fauland aus dem Entwicklerforum.

Drucken in C# auf A4

Oh man hatte ich gestern ein Brett vor dem Kopf.
Und zwar bastel ich an einen Programm, aus dem auch Bilder ausgedruckt werden können. Und je nach Größe des Bildes soll es an die Größe des Blattes angepasst werden. Sprich kleine Bilder sollen nicht gestreckt werden, große Bilder aber gestaucht. Problem war hier, ich hatte zwar die mm des Blattes, jedoch vom Bild nur die Pixel.
Und ich hab mir verdammt schwer beim Umrechnen getan. Hier nun die Lösung:

((float)Bild.Width * 2.54 / 100)

Bild.Width ist die Breite des Bildes in Pixel. Rauskommt eine hier die Breite in cm (!!). Um damit lässt sich arbeiten. Irgendwie hing ich gestern den ganzen Tag dadran und auch ein Kollege hat sich ein wenig dran versucht aber irgendwie stießen wir immer wieder auf Probleme.

Um nun zu wissen, ob ich das Blatt stauchen muss, prüfe ich das einfach mit der Breite des Blattes ab:

if (((float)Bild.Width * 2.54 / 100) >= ((float)(e.PageBounds.Width * 2.54 / 100)) || ((float)Bild.Height * 2.54 / 100) >= ((float)(e.PageBounds.Height * 2.54 / 100))) {
  // Tu dies 
}
else {
  // Tu jenes
}

Eigentlich recht simpel, e.PageBounds.XXX sind halt die Breite der Blätter in Pixel.

So und grad eben merk ich, dass ich ja die Bild Höhe / Breite in Pixel habe und auch die des Blattes, warum vergleich ich nicht einfach die???
Oh man oh man!!

Windows Update Neustart Erinnerung

Kennt ihr das? Ihr updatet Windows, wollt aber nicht gleich neustarten. Und alle paar Minuten poppt da was auf, was dich an den Neustart erinnern soll.
Mit einem kleinen Registryeintrag kann man das umgehen. Nix wildes, doch ich nutzes es gleich mal um ein wenig in C# zu programmieren.
Ihr könnt es euch ja mal anschauen, ich hoffe es klappt alles. Ich wäre sehr dankbar, wenn ihr mich auf Fehler oder Probleme hinweisen könntet.
Das Programm kann gerne kostenlos weitergegeben werden!!
MfG

Windows Update Dont Restart