using System; using System.Windows.Forms; using System.Runtime.InteropServices; using System.Threading; using System.Text; namespace WinAMP_Music { public class MainForm : Form { public Thread thread; public bool running; public string song; public MainForm() { InitializeComponent(); // make a new thread thread = new Thread(new ThreadStart(loop)); running = true; thread.Start(); } private Label label1; private void InitializeComponent() { this.label1 = new System.Windows.Forms.Label(); this.SuspendLayout(); // // label1 // this.label1.Location = new System.Drawing.Point(0, 0); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(295, 22); this.label1.TabIndex = 0; this.label1.Text = "NP: "; this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // MainForm // this.ClientSize = new System.Drawing.Size(292, 21); this.Controls.Add(this.label1); this.Name = "MainForm"; this.Text = "WinAMP Music"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing); this.ResumeLayout(false); } public void loop() { while (running) { // get the winamp window IntPtr winamp = Program.FindWindow("Winamp v1.x", null); // make a buffer for the window title StringBuilder buff = new StringBuilder(512); // get the title text Program.GetWindowText(winamp, buff, 512); // make a managed string of the buffer string str = buff.ToString(); // remove the song number str = str.Split(".".ToCharArray())[1].Trim(); // remove " - Winamp" str = str.Remove(str.Length - 9, 9); label1.Text = str; song = str; //sleep Thread.Sleep(100); } } private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { // cancel close e.Cancel = true; // end the thread running = false; // continue close e.Cancel = false; } } public class Program { public static void Main() { // multithread access Form.CheckForIllegalCrossThreadCalls = false; Application.EnableVisualStyles(); Application.Run(new MainForm()); } [DllImport("user32.dll")] // WinAPI FindWindow() public static extern IntPtr FindWindow(string cls, string window); [DllImport("user32.dll")] // WinAPI GetWindowText() public static extern int GetWindowText(IntPtr window, StringBuilder text, int len); } }