Mit C-Sharp aktuellen WimAmp Titel auf Internet Seite wiedergeben
Hallo, also ich hbe folgendes vor. Ich benutze Winamp und möchte auf einer Seite (in mein Fall www.schueler.cc) in der Statusleiste "Was machst du gerade?" anzeigen lassen welches Lied ich gerade höre (also nach automatischer eingabe des Titels muss auch der button "hinzufügen" geklickt werden). möchte das ganze mit c# umsetzen.
Ich habe bis jetzt folgenden Quelltext der mir den aktuellen Titel von Winamp in ein label in der C# Form ausgibt.
Jetzt weiß ich aber nicht wie ich auf die Internetseite zugreifen kann und dort den Titel einfüge und dann auf den Button klicke. Diese Aktion müste am besten nach jeden Lied passieren.
Kann mir einer helfen ?
MfG MTB
Ich habe bis jetzt folgenden Quelltext der mir den aktuellen Titel von Winamp in ein label in der C# Form ausgibt.
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;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[System.Runtime.InteropServices.DllImport("user32.dll",
CharSet = System.Runtime.InteropServices.CharSet.Auto)]
public static extern IntPtr FindWindow(string lpClassName,
string lpWindowName);
[System.Runtime.InteropServices.DllImport("user32.dll",
CharSet = System.Runtime.InteropServices.CharSet.Auto)]
public static extern int GetWindowText(IntPtr hwnd,
string lpString, int cch);
const string lpClassName = "Winamp v1.x";
const string strTtlEnd = " - Winamp";
static string GetSongTitle()
{
IntPtr hwnd = FindWindow(lpClassName, null);
if (hwnd.Equals(IntPtr.Zero)) return "Not running";
string lpText = new string((char)0, 100);
int intLength = GetWindowText(hwnd, lpText, lpText.Length);
if ((intLength <= 0) || (intLength > lpText.Length))
return "unknown";
string strTitle = lpText.Substring(0, intLength);
int intName = strTitle.IndexOf(strTtlEnd);
int intLeft = strTitle.IndexOf("[");
int intRight = strTitle.IndexOf("]");
if ((intName >= 0) && (intLeft >= 0) && (intName < intLeft) &&
(intRight >= 0) && (intLeft + 1 < intRight))
return strTitle.Substring(intLeft + 1, intRight - intLeft - 1);
if ((strTitle.EndsWith(strTtlEnd)) &&
(strTitle.Length > strTtlEnd.Length))
strTitle = strTitle.Substring(0,
strTitle.Length - strTtlEnd.Length);
int intDot = strTitle.IndexOf(".");
if ((intDot > 0) && IsNumeric(strTitle.Substring(0, intDot)))
strTitle = strTitle.Remove(0, intDot + 1);
return strTitle.Trim();
}
static bool IsNumeric(string Value)
{
try
{
double.Parse(Value);
return true;
}
catch
{
return false;
}
}
private void button1_Click(object sender, EventArgs e)
{
label1.Text = GetSongTitle();
}
}
}
Jetzt weiß ich aber nicht wie ich auf die Internetseite zugreifen kann und dort den Titel einfüge und dann auf den Button klicke. Diese Aktion müste am besten nach jeden Lied passieren.
Kann mir einer helfen ?
MfG MTB
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 108079
Url: https://administrator.de/contentid/108079
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
7 Kommentare
Neuester Kommentar
Hmm...
Wie "läuft" denn die Seite, die die Information darstellen soll: Welcher Webserver, einfaches HTML?
Wie "läuft" denn die Seite, die die Information darstellen soll: Welcher Webserver, einfaches HTML?
Zitat von @MTB4ever:
Jetzt weiß ich aber nicht wie ich auf die Internetseite
zugreifen kann und dort den Titel einfüge und dann auf den Button
klicke.
Jetzt weiß ich aber nicht wie ich auf die Internetseite
zugreifen kann und dort den Titel einfüge und dann auf den Button
klicke.
Wie greifst du denn für gewöhnlich auf die Seite zu?
FTP / Baukasten / ...?
Aha... Sollte "kein Problem" sein:
1.
Du musst dich an der Seite anmelden. Das ist ein bisschen fummelig, geht aber. Bei "normalen" Seiten werden die Accountdaten in der URL übertragen. Das sieht dann im Klartext z. B. so aus:
anmelden.de/login.php?username=user&passwort=passwort
(Das ist übrigens auch der Grund, warum man seine Anmeldedaten nur über eine per SSL gesicherte Verbindung schicken sollte.)
Du musst dir also mal aus der Quelle der Seite heraussuchen, was der Server wohl erwartet.
2.
Hast du das geschafft, funktioniert der Eintrag deines "Status" auf dieselbe Art und Weise. Die URL könnte z. B. so aussehen:
anmelden.de/statusaendern.php?status=online&ichbin=gut%20drauf
Das "%20" in der URL ist eine Escape-Sequenz. Meint: unsichere Zeichen (Leerzeichen, Umlaute, Sonderzeichen etc.) werden maskiert. "%20" steht z. B. für das Leerzeichen ("ichbin" beudete also im Klartext "gut drauf".
Du solltes beim programmatischen Aufruf von Links darauf achen, dass du unsichere Zeichen vorher maskiert hast. Sonst gibt's noch Fehlermeldungen oder sonst einen Salat...
3.
Den Aufruf von URL (ohne Browser, willst ja nichts anzeigen) realisierst du am besten per System.Net.WebRequest. Ein Beispiel für die Verwendung der Klasse findest du hier
Meld dich nochmal, was du letzlich gemacht hast.
In diesem Sinne,
1.
Du musst dich an der Seite anmelden. Das ist ein bisschen fummelig, geht aber. Bei "normalen" Seiten werden die Accountdaten in der URL übertragen. Das sieht dann im Klartext z. B. so aus:
anmelden.de/login.php?username=user&passwort=passwort
(Das ist übrigens auch der Grund, warum man seine Anmeldedaten nur über eine per SSL gesicherte Verbindung schicken sollte.)
Du musst dir also mal aus der Quelle der Seite heraussuchen, was der Server wohl erwartet.
2.
Hast du das geschafft, funktioniert der Eintrag deines "Status" auf dieselbe Art und Weise. Die URL könnte z. B. so aussehen:
anmelden.de/statusaendern.php?status=online&ichbin=gut%20drauf
Das "%20" in der URL ist eine Escape-Sequenz. Meint: unsichere Zeichen (Leerzeichen, Umlaute, Sonderzeichen etc.) werden maskiert. "%20" steht z. B. für das Leerzeichen ("ichbin" beudete also im Klartext "gut drauf".
Du solltes beim programmatischen Aufruf von Links darauf achen, dass du unsichere Zeichen vorher maskiert hast. Sonst gibt's noch Fehlermeldungen oder sonst einen Salat...
3.
Den Aufruf von URL (ohne Browser, willst ja nichts anzeigen) realisierst du am besten per System.Net.WebRequest. Ein Beispiel für die Verwendung der Klasse findest du hier
Meld dich nochmal, was du letzlich gemacht hast.
In diesem Sinne,
if (problem == solved)
{ Application.Exit(); }