Emails versenden in C#

csharp Mail 150x150 Emails versenden in C#Heute zeige ich euch, wie man ganz einfach Emails in C# verschicken kann. Alles, was benötigt wird, bringt die Klasse System.Net.Mail mit sich.
Um nachher Email mittels des Snippets verschicken zu können benötigt ihr lediglich die Adresse eines SMTP-Servers und gegebenen Falls die Zugangsdaten für diesen. (Offene, sprich registrierungsfreie Server, werdet ihr heutzutage kaum noch finden.)
Wie die Adresse des SMTP-Servers eures Anbieters lautet erfragt/ergoogelt ihr euch am besten auf den Seiten eures Anbieters oder ihr schaut mal in eine dieser drei Listen ([1] [2] [3]).
Habt ihr alle nötigen Zugangsdaten parat, kann es auch schon losgehen.

public void sendMail(string absender, string empfaenger,
[…]

Pex for fun – ein Programmierspiel für Windowsliebhaber

pexforfuncom 300x218 Pex for fun ein Programmierspiel für WindowsliebhaberIch bin da gerade mal wieder über eine herrliche Webseite gestolpert, die ich euch nicht vorenthalten möchte.
Darauf aufmerksam geworden bin ich durch Herbivores Post in diesem Thread.
Bei der Webseite handelt es sich um www.pexforfun.com, auf der ihr etliche mehr oder weniger schwere Programmierrätsel lösen könnt. Bei der zu benutzenden Programmiersprache habt ihr die Wahl zwischen C#, F# und Visual Basic.
Die Rätsel sind alle auf der gleichen Basis aufgebaut. Es ist eine Funktion namens Puzzle vorgegeben, die einen oder mehrere Parameter annimmt und einen Rückgabewert hat.   Was die Funktion machen soll, müsst ihr herausfinden. Dabei steht euch eine Variante von Pex zur Verfügung. (Pex ist ein Tool zum Unit-Testing nach dem Whitebox-Verfahren, welches von Microsoft Research entwickelt wird.)

Bilder mit JPEG beliebig komprimieren in C#

Heute zeige ich euch, wie man Bilder mit Hilfe des JPEG-Codecs beliebig komprimieren kann. Beliebig heißt in unserem Fall, dass ihr die Qualitätsstufe festlegen könnt, die das Bild trotz des Komprimierens beibehalten soll. Da die Funktion, die ich euch dafür geschrieben habe relativ kurz ist, denke ich, dass die Kommentare im Quelltext ausreichen sollten. Und nun viel Spaß damit!

private void JpegBildKomprimieren(Image quellBild, int qualitaet, string speicherPfad)
{
try
{
//Ein ImageCodecInfo-Objekt für den JPEG-Codec anlegen
ImageCodecInfo jpegCodec = null;

//Den Qualitätsarameter konfigurieren (Qualitätsfaktor in
//Prozent angeben)
EncoderParameter qualitaetsParameter = new EncoderParameter(
[…]

Webcam benutzen in C#

Wie steuert man am besten und einfachsten eine Webcam unter Benutzung von C#.Net an? Recherchiert man im Internet, wird man, sofern man überhaupt fündig wird, leider oftmals mit sehr langen Artikeln und unübersichtlichen Snippets konfrontiert. Doch das muss gar nicht sein, denn mit Hilfe der AForge.NET Library geht das ganz einfach. Und wie das genau geht, möchte ich euch im Folgenden Artikel zeigen.
Was wird für dieses Tutorial benötigt?

Die AForge.Video.dll, sowie die AForge.Video.DirectShow.dll
Beide Dlls findet ihr auf der AForge Downloadseite im “(libs only)” zip-Archiv.
Eine schlichte WinForms-Anwendung, auf der ihr schon mal eine Picturebox anlegt.
Eine Webcam. Z.B. diese hier:

AngebotBestseller Nr. 1

Screenshot einer kompletten Webseite machen in C#

Screenshots machen ist eine Sache. Ein Klick auf die “Druck”-Taste (auf den meisten Tastaturen rechts neben F12), oder ein Aufruf der kürzlich von mir vorgestellten C# Methode, genügt. Was aber wenn man eine komplette Webseite festhalten will? Die meisten Seiten sind so lang, dass ein Scrollen, um den kompletten Inhalt zu sehen, unabdingbar ist.
Um auch in solchen Situationen einen vollständigen Screenshot erstellen zu können, hilft das nachfolgende Snippet.
 

private void WebsiteScreenshot(string url, string file)
{
//Anlegen eines Webbrowser Objekts
WebBrowser browser = new WebBrowser();

//Scrollbars deaktivieren, damit sie nicht auf dem
//Screenshot auftauchen
browser.ScrollBarsEnabled = false;

//(Java-)Scriptfehlermeldungen unterdrücken
browser.ScriptErrorsSuppressed = true;

//Die gewünschte Seite aufrufen
browser.Navigate(new Uri(url));

//Warten bis die […]