Ok,no sound in this example: why?
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Runtime.InteropServices;
namespace FreddyKrugherHomage
{
///
/// Descrizione di riepilogo per Form1.
///
public class Freddy : System.Windows.Forms.Form
{
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.Label lblDataOra;
private System.ComponentModel.IContainer components;
private System.Windows.Forms.Panel pnlEMI;
private System.Windows.Forms.Timer timer2;
public static int count = 1;
static int dx = 4;
static int dy = 4;
static Size dimensione;
const string FILE_NAME = "\\img\\Profondo rosso.wav";
public Freddy()
{
//
// Necessario per il supporto di Progettazione Windows Form
//
InitializeComponent();
//
// TODO: aggiungere il codice del costruttore dopo la chiamata a InitializeComponent
//
}
///
/// Pulire le risorse in uso.
///
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Codice generato da Progettazione Windows Form
///
/// Metodo necessario per il supporto della finestra di progettazione. Non modificare
/// il contenuto del metodo con l'editor di codice.
///
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Freddy));
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.lblDataOra = new System.Windows.Forms.Label();
this.pnlEMI = new System.Windows.Forms.Panel();
this.timer2 = new System.Windows.Forms.Timer(this.components);
this.SuspendLayout();
//
// pictureBox1
//
this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
this.pictureBox1.Location = new System.Drawing.Point(0, 0);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(752, 360);
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);
this.pictureBox1.DoubleClick += new System.EventHandler(this.pictureBox1_DoubleClick);
//
// timer1
//
this.timer1.Enabled = true;
this.timer1.Interval = 250;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// lblDataOra
//
this.lblDataOra.BackColor = System.Drawing.Color.Transparent;
this.lblDataOra.Font = new System.Drawing.Font("Tahoma", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.lblDataOra.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(192)), ((System.Byte)(0)), ((System.Byte)(0)));
this.lblDataOra.Location = new System.Drawing.Point(560, 16);
this.lblDataOra.Name = "lblDataOra";
this.lblDataOra.Size = new System.Drawing.Size(128, 40);
this.lblDataOra.TabIndex = 1;
this.lblDataOra.Text = "label1";
this.lblDataOra.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// pnlEMI
//
this.pnlEMI.BackColor = System.Drawing.Color.Transparent;
this.pnlEMI.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pnlEMI.BackgroundImage")));
this.pnlEMI.Location = new System.Drawing.Point(280, 72);
this.pnlEMI.Name = "pnlEMI";
this.pnlEMI.Size = new System.Drawing.Size(320, 136);
this.pnlEMI.TabIndex = 2;
this.pnlEMI.Visible = false;
//
// timer2
//
this.timer2.Tick += new System.EventHandler(this.timer2_Tick);
//
// Freddy
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 15);
this.BackColor = System.Drawing.SystemColors.WindowFrame;
this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage")));
this.ClientSize = new System.Drawing.Size(696, 336);
this.Controls.Add(this.pnlEMI);
this.Controls.Add(this.lblDataOra);
this.Controls.Add(this.pictureBox1);
this.Cursor = System.Windows.Forms.Cursors.Hand;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "Freddy";
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Form1";
this.Load += new System.EventHandler(this.Freddy_Load);
this.ResumeLayout(false);
}
#endregion
///
/// Il punto di ingresso principale dell'applicazione.
///
[STAThread]
static void Main()
{
Application.Run(new Freddy());
}
private void Freddy_Load(object sender, System.EventArgs e)
{
dimensione = this.Size;
if(!Sound.Play(FILE_NAME)) Application.Exit();
}
private void pictureBox1_Click(object sender, System.EventArgs e)
{
timer2.Enabled = !timer2.Enabled ;
pnlEMI.Visible = !pnlEMI.Visible;
}
private void pictureBox1_DoubleClick(object sender, System.EventArgs e)
{
Application.Exit();
}
private void timer1_Tick(object sender, System.EventArgs e)
{
string oraEcc;
System.DateTime oggiEora = DateTime.Today;
oraEcc = oggiEora.Date.ToString();
oraEcc += oggiEora.Hour.ToString(); //n?? non va
lblDataOra.Text = oraEcc;
string img;
img = "img\\" + Freddy.count.ToString() +".jpg";
this.pictureBox1.Image = Image.FromFile(img);
Freddy.count++;
if(Freddy.count == 36) Freddy.count = 1; //max immagini 36
img = "";
}
private void timer2_Tick(object sender, System.EventArgs e)
{
pnlEMI.Left +=Freddy.dx;
pnlEMI.Top +=Freddy.dy;
if(pnlEMI.Location.X + pnlEMI.Size.Width> Freddy.dimensione.Width || pnlEMI.Location.X < 0 ) Freddy.dx = -Freddy.dx;
if(pnlEMI.Location.Y + pnlEMI.Size.Height > Freddy.dimensione.Height || pnlEMI.Location.Y < 0 ) Freddy.dy = -Freddy.dy;
}
}
internal class Helpers
{
[Flags]
public enum PlaySoundFlags : int
{
SND_SYNC = 0x0000, /* play synchronously (default) */
SND_ASYNC = 0x0001, /* play asynchronously */
SND_NODEFAULT = 0x0002, /* silence (!default) if sound not found */
SND_MEMORY = 0x0004, /* pszSound points to a memory file */
SND_LOOP = 0x0008, /* loop the sound until next sndPlaySound */
SND_NOSTOP = 0x0010, /* don't stop any currently playing sound */
SND_NOWAIT = 0x00002000, /* don't wait if the driver is busy */
SND_ALIAS = 0x00010000, /* name is a registry alias */
SND_ALIAS_ID = 0x00110000, /* alias is a predefined ID */
SND_FILENAME = 0x00020000, /* name is file name */
SND_RESOURCE = 0x00040004 /* name is resource name or atom */
}
[DllImport("winmm")]
public static extern bool PlaySound( string szSound, IntPtr hMod, PlaySoundFlags flags );
}
public class Sound
{
public static bool Play( string strFileName ) //+vedi che è statica...
{
return Helpers.PlaySound( strFileName, IntPtr.Zero, Helpers.PlaySoundFlags.SND_FILENAME | Helpers.PlaySoundFlags.SND_LOOP | Helpers.PlaySoundFlags.SND_ASYNC );
}
}
}