Seiten
Zuletzt im Ohr
Zuletzt im Sinn
Archiv
- August 2010 (6)
- Juni 2010 (11)
- Mai 2010 (4)
- März 2010 (6)
- Februar 2010 (3)
- Dezember 2009 (2)
- November 2009 (3)
- Oktober 2009 (17)
- September 2009 (7)
- August 2009 (7)
- Juli 2009 (3)
- Juni 2009 (2)
- Mai 2009 (4)
- April 2009 (1)
- März 2009 (3)
- Februar 2009 (11)
- Januar 2009 (14)
- Dezember 2008 (6)
- November 2008 (9)
- Oktober 2008 (6)
- September 2008 (3)
Tagcloud
Partner/Links
- C# Tipps und Tricks - C# Tipps und Tricks
- gb-pix.de - Gästebuchbilder, Jappy, MySpace…
- Kostenlose Browsergames - Kostenlose Browsergames
- MySpace Downloader - MySpace Loader – der kostenlose MySpace.com Downloader
- Servervoice Blog - Servervoice Blog
- Wordpress Theme
- Youtube Mediaplayer - Webmusix – der kostenlose Youtube Mediaplayer
Network
Soundcloud Downloader
Jeden Song auf Soundcloud.com mit 3 Klicks downloaden
Als mich ein Kumpel letztens fragte, ob ich eine Möglichkeit kennen würde jeden beliebigen Song von Soundcloud.com herunterzuladen, musste ich erst mal passen. Nach ein wenig googlen stand dann fest, dass das mal wieder eine gute Vorlage für ein neues Programm sei. Gesagt, getan – hier ist er – der neue Soundcloud Downloader!
Die Handhabung gestaltet sich ähnlich einfach, wie die meines MySpace Loaders. Da aber sicherlich einige von euch nicht mit dem MySpace Loader vertraut sind, folgt hier noch mal eine kleine Einführung.
Interesse geweckt? Dann steht dem Download ja nichts mehr im Wege…
Download – SoundcloudDownloader.zip
Ihr habt noch Fragen, Vorschläge, (Änderungs-)wünsche oder wollt einfach nur Danke sagen? Dann schreibt mir einfach einen Kommentar oder klickt auf den Twitter- oder einen der Facebookbuttons!
Viele Grüße,
Raffi
C# – Facebook like MessageBox
…eine MessageBox im “Facebook-Outfit”
Da ich aus gegebenem Anlass demnächst ein paar Controls im Facebook-Design benötige, habe ich mich die letzten Tage mal auf die Suche begeben und musste mit erschrecken feststellen, dass es für Windows Forms, im Gegenteil zu diversen Ajax/ASP.NET-Lösungen, eigentlich keine Controls im Facebook Design gibt.
Da ich aber möchte, dass meine erste Facebook Applikation (mehr dazu bald hier im Blog) auch ordentlich dasteht – ihr wisst ja – “Kleider machen Leute…” – führte kein Weg daran vorbei sich selbst daran zu machen.
Das erste Control (es sollen weitere folgen), habe ich nun fertiggestellt und möchte es euch gerne kurz vorstellen.
Es handelt sich dabei um einen Nachbau der MessageBox, mit dem kleinen aber feinen Unterschied der Optik. Was das Handling angeht, habe ich probiert, dass sich meine Lösung, welche von der Form-Klasse abgeleitet ist, möglichst wie die originale MessageBox “anfühlt”.
So kann weiterhin auf die standard DialogResults zurückgegriffen werden und auch die Überladungen ähneln sich sehr. (Auch wenn nicht ganz alle der 21 Überladungen übernommen wurden.
)
Dafür lassen sich in meiner Variante auch eigene Grafik problemlos in Dialogen anzeigen.
Wie das ganze nun ausschaut, könnt ihr euch nachfolgend anschauen.
(Zum Vergrößern bitte das Bild anklicken!)
Folgende Überladungen sind bisher implementiert.
MessageBoxFB.ShowDialog(string text) MessageBoxFB.ShowDialog(string text, string caption) MessageBoxFB.ShowDialog(string text, string caption, MessageBoxButtons buttons) MessageBoxFB.ShowDialog(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon) MessageBoxFB.ShowDialog(string text, string caption, MessageBoxButtons buttons, Image customicon)
Zwei Anwendungsbeispiele.
MessageBoxFB.ShowDialog("Testnachricht");
if (MessageBoxFB.ShowDialog("Sind Sie sicher?", "Eine Frage", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
DateiLoeschen();
}
Zum Download gibt es die .Net-taugliche .dll unter folgender Url:
http://www.net-blog.net/blog/downloads/FacebookControls.zip
Wie immer würde ich mich über ein konstruktives Feedback freuen. Was gefällt euch? Was könnte man verändern/verbessern? Schreibt mir einfach einen Kommentar!
Viele Grüße,
Raffi
p.s.: Fairerweise muss ich noch anmerken, dass mir bei der Geschichte mit dem halb-transparenten Rand des Dialogs folgender Codeproject-Artikel sehr weitergeholfen hat.
http://www.codeproject.com/KB/GDI-plus/perpxalpha_sharp.aspx
C# – Webcams benutzen
Heute möchte ich euch zeigen, wie man mit minimalem Aufwand und wenigen Zeilen C#-Code Webcams ansteuern/nutzen kann.
Es gibt zwar schon einiges an Material zu diesem Thema, jedoch sind die meisten der Beiträge ziemlich lang und kompliziert oder verwenden WIA Scripting welches in der häufig vorgestellten Form nur auf Windows XP richtig rund läuft.
Meine Lösung basiert auf dem AForge.NET Framework. Benötigt werden die beiden folgenden Dlls.
- AForge.Video.dll
- AForge.Video.DirectShow.dll
Diese findet ihr im jeweils aktuellsten “libs only” .zip-Archiv auf der AForge Downloadseite.
Designer
Wenn ihr euch die Dlls besorgt habt, kann es auch schon losgehen. Zuerst erstellt ihr ein neues WinForms-Projekt im Visual Studio und fügt bei den Verweisen die beiden AForge Dlls hinzu. (Rechtsklick auf “Verweise” >> “Verweis hinzufügen” und dann im “Durchsuchen”-Tab die Dlls auswählen.)
Nun fügen wir unserem Form noch eine PictureBox hinzu und konfigurieren diese im “Eigenschaften”-Fenster des VS wie folgt. (Eigenschaft >> Wert)
- (Name) >> pictureBoxVideo
- BackgroundImageLayout >> Zoom
- Dock >> Fill
Nun legen wir noch zwei Methoden für das FormClosed- und das Load-Event unseres Forms an.
Das war’s auch schon, was wir im Designer zu verrichten hatten. Nun fehlt nur noch der Code. Das dieser ziemlich kurz ist, bauen ich ihn hier im Blog nicht Schritt für Schritt auf, sondern poste ihn, gut kommentiert, im ganzen.
Code
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
//Einbinden der AForge Librarys
using AForge.Video;
using AForge.Video.DirectShow;
namespace aforgeWebcam
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Unser Webcam Objekt
VideoCaptureDevice videoSource;
private void Form1_Load(object sender, EventArgs e)
{
//Auflistung aller Webcam/Videogeräte
FilterInfoCollection videosources = new FilterInfoCollection(FilterCategory.VideoInputDevice);
//Überprüfen, ob mindestens eine Webcam gefunden wurde
if (videosources != null)
{
//Die erste Webcam an unser Webcam Objekt binden
videoSource = new VideoCaptureDevice(videosources[0].MonikerString);
try
{
//Überprüfen ob die Webcam Technische-Eigenschaften mitliefert
if (videoSource.VideoCapabilities.Length > 0)
{
string highestSolution = "0;0";
//Das Profil mit der höchsten Auflösung suchen
for (int i = 0; i < videoSource.VideoCapabilities.Length; i++)
{
if (videoSource.VideoCapabilities[i].FrameSize.Width > Convert.ToInt32(highestSolution.Split(';')[0]))
highestSolution = videoSource.VideoCapabilities[i].FrameSize.Width.ToString() + ";" + i.ToString();
}
//Dem Webcam Objekt die höchstmögliche Auflösung übergeben
videoSource.DesiredFrameSize = videoSource.VideoCapabilities[Convert.ToInt32(highestSolution.Split(';')[1])].FrameSize;
}
}
catch { }
//Dem Webcam Objekt den NewFrame Eventhandler zuweisen.
//Dieser schlägt bei jedem eingehenden Bild der Webcam an
videoSource.NewFrame += new AForge.Video.NewFrameEventHandler(videoSource_NewFrame);
//Die Webcam aktivieren
videoSource.Start();
}
}
void videoSource_NewFrame(object sender, AForge.Video.NewFrameEventArgs eventArgs)
{
//Jedes ankommende Bild von der Webcam der Picturebox zuweisen
pictureBoxVideo.BackgroundImage = (Bitmap)eventArgs.Frame.Clone();
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
//Webcam beim Schließen des Programms wieder freigeben
if (videoSource != null && videoSource.IsRunning)
{
videoSource.SignalToStop();
videoSource = null;
}
}
}
}
Das war’s auch schon. Abschließend könnt ihr das Demo-Projekt auch hier downloaden. Solltet ihr noch Fragen, Kritik oder Verbesserungsvorschläge haben, dann schreibt mir einfach einen Kommentar.
Viele Grüße,
Raffi
C# – Webbrowser Control: Popups blocken
Mal schnell ein kleiner Tipp aus der C# Ecke. Popups nerven – vor allem, wenn das Webbrowsercontrol unsichtbar ist und eine Anwendung, dem User völlig unersichtlich, eben diese generiert/zulässt.
Nach endlosem googlen und herum probieren musste ich mal wieder feststellen, wie simpel und einfach das Leben Mit C# und Visual Studio doch ist.
Also – wie blockt man Popups, die von einem Webbrowser Control ausgehen?
Um die Popups zu blocken muss dem Webbrowser Control zuerst ein NewWindow Eventhandler hinzugefügt werden. Ob ihr dies von Hand, oder über die Property Box macht, ist ja bekannter weise egal.
Im zweiten Schritt reicht dann schon eine einzige Zeile Code, um die Popups in die ewigen Jagdgründe zu schicken.
private void webBrowser2_NewWindow(object sender, CancelEventArgs e)
{
e.Cancel = true;
}
Also – Popups ade!
Viele Grüße,
Raffi
C# ContextMenuStrip öffnen, ohne es in der Taskbar anzuzeigen
NotifyIcon ContextMenu ohne Rechtsklick öffnen
Wieder mal ein Beispiel aus der Kategorie “Kleiner Code, großer Effekt”.
Hat man eine Tray-Anwendung und möchte, dass das ContextMenu zum Beispiel auch über einen Doppelklick aufgerufen werden kann, so wird man schmerzlich feststellen, dass ein Aufruf alá ContextMenuStrip.Show() im DoubleClick-Event des NotifyIcon leider auch ein Anzeigen des ContextMenuStrips in der Taskleiste mit sich bringt.
Um das ContextMenu über einen beliebigen beliebigen Click-Eventhandler eines NotifyIcon anzuzeigen, ohne dass es zusätzlich in der Taskbar angezeigt wird, ist folgender Code notwendig:
private void ShowContextMenu(NotifyIcon nI, MouseEventArgs e)
{
if (e.Button != MouseButtons.Right)
{
nI.GetType().InvokeMember(
"ShowContextMenu",
BindingFlags.InvokeMethod | BindingFlags.Instance | BindingFlags.NonPublic,
null,
nI,
null
);
}
}
Am Beispiel eines Doppelklicks auf mein NotifyIcon TrayIcon sähe das dann wie folgt aus:
private void TrayIcon_MouseDoubleClick(object sender, MouseEventArgs e)
{
ShowContextMenu((NotifyIcon)sender, e);
}
Ich hoffe es hilft dem ein oder anderen von euch!
viele Grüße,
euer Raffi
Hallo!

Kategorien
- Der tägliche Senf… (99)
- Informatik (96)
- C# & .net Framework (18)
- Cheat Sheets (4)
- HTML, PHP, etc. (6)
- Neuigkeiten (33)
- Software-Projekte (40)
- Tipps & Tricks (39)
- Web-Projekte (1)
- Musik (11)
- Downloads (4)
- Hörbar – Raffis Musiktipp (4)
- Videoclips (9)
- Schule (5)
Kalendar
| M | D | M | D | F | S | S |
|---|---|---|---|---|---|---|
| « Aug | ||||||
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | |||
Counter
| Besucherstatistik | |
| Besucher gesamt: | 155.522 |
| Besucher heute: | 354 |
| Besucher gestern: | 392 |
| Max. Besucher pro Tag: | 677 |
| gerade online: | 3 |
| max. online: | 89 |
| Seitenaufrufe gesamt: | 431.584 |
| Seitenaufrufe diese Seite: | 1.604 |
| Counterstart: | 13.10.2008 |
Meta
Am meisten kommentiert
Neue Artikel
- Soundcloud Downloader
- Große Dateien schnellstmöglich verschicken
- Facebook- & Twitterbutton in Wordpress
- 5x (Audio-)visuelles für die Mittagspause
- C# – Facebook like MessageBox
- Update: Webmusix 1.4.2
- C# – Webcams benutzen
- Mp3’s schneiden, kürzen, ein- und ausblenden
- Netzfundstück: Amsterdam Acoustics
- Pixlr – Online Bilder bearbeiten
Neue Kommentare
- Frankonia: Sehr nützliches Tool, danke!
- Raffi: Dann werd ich mir mal das 4.0er Framework draufschmeißen und den Debugger anhauen
- Pari: Moin:) Unter WinXP SP3 mit installiertem .NET 2.0, 3.0 und 3.5 funzt es und unter Win7 x64 ebenso. Nur auf dem...
- Raffi: Hallo Pari, der Fehler ist mir noch nicht über den Weg gelaufen. Hast du eine Möglichkeit das Programm auf...
- Pari: ich krieg beim Versuch die Installation folgende Meldung: .Net Framework Initialization Error: Unable to find a...
net-blog.net © 2008-2010



