Standard-Browser in C# auslesen

csharp_standard_browserNachfolgend soll es darum gehen, wie man den Pfad zum Standard-Browser unter Windows in C# herausfindet. Dies macht zum Beispiel immer dann Sinn, wenn man eine Datei mittels Process.Start() im Standard-Browser öffnen möchte.
Zwar könnte man davon ausgehen, dass jeder Windowsnutzer auch den Internet Explorer installiert hat und man somit einfach diesen zum Anzeigen von Dateien benutzen sollte,  jedoch erhöht es nicht unbedingt das Vertrauen des Users in die eigene Applikation. So wäre zumindest ich als Benutzer meines Programms davon genervt, wenn dieser immer den Internet Explorer anstelle des Firefox, welchen ich als Standard-Browser festgelegt habe, starten würde.
Nun gibt es zwei Möglichkeiten den Standard-Browser in C# zu öffnen. Beide haben Ihre Vor- und Nachteile.
Variante 1 – Process.Start() mit URL als Startpfad
Die einfachste Variante den Standard-Browser zu starten, ist es einfach mittels der Process-Klasse […]

Videos in C# erstellen

videos in c# erstellenHeute gibt es mal wieder ein bisschen C# Code. Es geht darum, wie man Videodatein in C# aus einzelnen Bildern bzw. Bitmaps erstellen kann. Mittels der AForge Library, welche ich schon in dem C# Webcam Tutorial verwendet habe, geht dies relativ einfach.
Vorbereitungen
Für das nachfolgende Tutorial braucht ihr die AForge.Video.FFMPEG.dll Library und die dazugehörigen FFMPEG Librarys. Alles beides findet ihr unter folgendem Link. Wählt auf der nachfolgenden Downloadseite die .zip-Datei aus, welche “(libs only)” im Dateinamen hat.

AForge Libs Download

Im nächsten Schritt öffnet ihr euer Visual Studio oder eine Alternative Entwcklungsumgebung mit der ihr eurer Programm schreiben wollt. (Für das nachfolgende Tutorial beziehe ich mich auf as Visual Studio.)
Projekt erstellen
Legt nun ein neues Projekt, ich habe mich für ein WinForms-Projekt entschieden, und wartet bis das Visual Studio das […]

3 Tipps um HttpWebRequests zu beschleunigen

HttpWebRequest LogoWer mit dem .NET-Framework arbeitet und ab und an HttpWebRequest benutzt, wird vielleicht schon einmal über das Phänomen gestolpert sein, dass Abfragen mittels der HttpWebRequest Klasse, je nach Fall, ziemlich langsam sein können. Vor allem, wenn man HttpWebrequest im Rahmen von Threading benutzt und probiert möglichst schnell Dateien darüber zu laden, wird die HttpWebRequest-Klasse schnell zur Spaßbremse.
Mag man Anfangs noch die Probleme an der Internetverbindung vermuten, merkt man meist spätestens nach einem Geschwindigkeitsvergleich mit wget oder Curl, dass das “Problem” bei der .NET-Implementierung liegen muss.
Keine Produkte gefunden.Im nachfolgenden Artikel möchte ich auf 3 Punkte eingehen, die euch helfen, das letzte aus der HttpWebRequests-Klasse herauszuholen.

1. DefaultConnectionLimit erhöhen
Alle Instanzen der HttpWebRequest klasse richten sich nach gewissen Vorgaben des ServicepointManager. Eine der Eigenschaften des ServicepointManager […]

Visual Studio Webservice Client mit BasicAuth (für SAP)

SAP Webservice with .NET Webservice Client and BasicAuthAuch mit SAP lassen sich Webservices aufsetzen. Sogar WSDL-Dateien kann man sich in SAP generieren lassen. Das kam mir gerade recht, als ich die Tage einen Webservice in SAP schreiben sollte, welcher von einem .NET-Programm angesteuert werden soll.
In .NET lassen sich Webservices mittels ihrer WSDL-Datei nämlich sehr angenehm als Webreference einfügen. Das Visual Studio generiert dann eine sogenannte Proxy-Klasse daraus und über diese lässt sich der Webservice dann sehr einfach anprogrammieren.
Soweit in der Theorie. In der Praxis sieht das so aus, dass ich in SAP festlegen musste, wie sich die Nutzer gegenüber dem Webservice authentifizieren sollen. Hier hatte ich mich BasicAuth entschieden. Also eine einfach Authentifizierung mittels Benutzername und Passwort.
Leider hat das Visual Studio das beim Generieren der Proxyklasse nicht so […]

Alias für using-Direktiven und Namespaces in C#

Jeder, der schon das ein oder andere Programm in C# geschrieben hat, wird das Problem vermutlich kennen. Man bindet die ein und die andere Library ein. Teilweise auch Librarys, die ähnliche Zwecke erfüllen. Das kann gut gehen, muss es aber nicht.
Schnell bekommt man eine Fehlermeldung nach dem Schema: “XYZ ist ein mehrdeutiger Verweis und kann von LibraryA.XYZ oder LibraryB.XYZ sein.”
Doch was nun? Am Beispiel der AForge Library möchte ich das Problem einmal exemplarisch lösen. Als Beispiel nehmen wir an, wir hätten bisher folgende beide Referenzen gesetzt und die using-Direktiven geschrieben.
using System.Drawing;
using AForge.Imaging;
Verwenden wir nun die Klasse “Image” in unserem Programm, so erhalten wir folgende Fehlermeldung, die daraus resultiert, dass es sowohl im Namespace System.Drawing als auch in AForge.Drawing eine Klasse namens “Image” gibt.
visual_studio_namespace_alias
Nun könnte man abwägen, auf die Elemente wessen […]