Tänkte skriva ett litet alarm som spelar upp ett ljud i c#. Ett pip, en mp3 eller wav spelare ingen roll. och jag får inte riktigt till det. Någon som har en hjälpande hand på traven den första sträckan?
C#
10 svar · 526 visningar · startad av gucken
En artikel om att spela upp wav: http://www.codeproject.com/cs/media/tonysound.asp
Du kan använda dig utav windows api:
[DllImport("winmm.dll")]
public static extern long PlaySound(String lpszName, long hModule, long dwFlags);
Där du sedan anropar metoden med en sökväg till den ljudfil. Om du använder dig utav .NET 2.0 så har för mig att det finns en ny kontroll som sköter det hela men jag är inte säker.
--Edit--
Att poppa upp en messagebox gör man juh med
messagebox("text");
Men hur får man in radbrytningar i dom? /n vill inte riktigt fungera och jag hittar inte riktigt något riktigt svar.
Det ska vara \n.
Sånt där är nästan lite pinsamt, Men tack för svaret =)
För att minimera programmet till systray vid klockan så använder jag mig av följane kod
this.Hide();
this.notifyIcon1.Visible = true;
Allt fungerar tipptopp utom det att programmet drar onödigt mycket minne. Offta mellan 6 - 10 000kb när det är minimerat till systray, Vanlig minimering hamnar det runt 1000kb.
Tycker det måste finnas bättre lösningar isf, det är juh inte rimligt att ett litet alarm på 100 rader kod drar 10mb minne bara för det ligger där.
Använder du VS, så kolla att du gör builden i release och inte debugläge.
Jag kör visual C# express 2005 beta 2 från http://lab.msdn.microsoft.com/vs2005/default.aspx
Debug buildsen hamnar i /bin/debug och riktiga i /bin/release.
Presis när programmet startar drar de 20mb minne!
Fattar inte varför, enda komponenter jag använder är en timer inställd på 1000ms / tick, en textbox, knapp och menyer.
-Edit-
Provade med att starta det i Visual studio 2003, blev tvungen att ändra några små saker men ingen större och det är samma sak där, både som debug och release.
Drar ca 20 000kb minne när det är startat, går ner till 1 000kb som minimerad och upp igen till ca 20 000kb när det är minimerat i systray.
Det kan nog stämma att den räknar med redan befintliga processer, men den slukar iaf 20 nya mb med minne.
Om man sitter och tittar hur mycket totalt som är använt så hoppar den från 377 till 400 och stannar där i samma veva som jag startar programmet.
Löses inte detta blir det nog till att se sig om efter ett annat språk.
Det hjälper nog inte med något annat .NET-språk i a f, då de alla bygger på frameworket. Du får väl kika på Borland eller Visual Studio C++ 6.0 om det du anser det mödan värt.