Fragensteller
zeitgesteuerte prozesse starten

Allgemeine Diskussion
-
}
else if (e.Result.Text == "Uhrzeit")
{
var speechSynthesizer = new SpeechSynthesizer();
speechSynthesizer.Speak(DateTime.Now.ToString());
}
DateTime Time = DateTime.Now;
int minutes = Time.Minute;
if (minutes == 07) //FIRE ON THE HOUR
{
var speechSynthesizer = new SpeechSynthesizer();
speechSynthesizer.Speak("Hier soll der Code ausgeführt werden");
}
}
}
}
}der fett markierte code läuft nicht alleine. er wird nur zur 7. minute in einer stunde in verbindung mit dem sprachbefehl uhrzeit ausgeführt. er soll aber alleine zu einer bestimmten minute in der stunde ausgeführt werden. hat jemand einen tipp???
- Bearbeitet tauricoder Donnerstag, 21. Juni 2012 15:02
- Typ geändert Robert BreitenhoferModerator Donnerstag, 28. Juni 2012 16:08 Keine Rückmeldung des Fragenstellender
Alle Antworten
-
hmm, wenn ich dich recht verstehe: Du brauchst ein Timer und musst den entsprechenden Code-Abschnitt in das Timer-Ereignis legen.
btw, ein Betreff wie der deinige ist nicht so das Gelbe vom Ei. Er sollte dein Problem mit wenigen Worten beschreiben.
- Bearbeitet Stefan Hoffmann Donnerstag, 21. Juni 2012 08:08 added link
-
ich möchte zum beispiel zur vollen stunde die uhrzeit als sprachausgabe haben. 9 uhr 20 eine anwendung starten und 9 uhr 40 ein anderes event ausführen. also ebend in einer stunde verschiedene sachen ausführen die minuten genau festgelegt und ausgeführt werden. countdown timer helfen mir nicht, da die anwendung nicht immer zur gleichen zeit gestartet wird.
DateTime Time = DateTime.Now;
int minutes = Time.Minute;
if (minutes == 00) //FIRE ON THE HOUR
{ DO THIS }
if (minutes == 15) //FIRE ON 1/4 HOUR
{ DO THIS }
if (minutes == 30) //FIRE ON 1/2 HOUR
{ DO THIS }
if (minutes == 45) //FIRE ON 3/4 HOUR
{ DO THIS }
}betreff geändert:-))
- Bearbeitet tauricoder Donnerstag, 21. Juni 2012 08:15
-
Natürlich hilft dir ein Timer, von Countdown war allerdings nicht die Rede.
Du musst wie es halt üblich ist, entweder das erste Timer-Intervall abhängig von der Startzeit berechenen und die weiteren auf dein viertel Stundenintervall setzen oder aber du lässt deinen Timer mit einem Intervall laufen, das eine geeignted Auflösung bietet um sämtliche gewünschten Intervalle zu bekommen. Z.B. ein 30 Sekunden Intervall.
btw, int minutes = DateTime.Now.Minute;
-
Jo, darfst du. Hatte ich auch schon vorgeschlagen ;) Wobei (Milli-)Sekunden ein zu kleine Auflösung sind.
- Bearbeitet Stefan Hoffmann Donnerstag, 21. Juni 2012 09:53
-
bitte schüttel den kopf nicht:-)) bin in c# noch recht frisch.
könnte ich die timer02.cs ins projekt einbinden? was mache ich mit der meldung "mehrere einstiegspunkte" .
habs jetzt so:
cs ins projekt hinzugefügt
// Timer02.cs - Displaying Date and Time
// Using the Timer class.
// Press Ctrl+C to end program.
//------------------------------------------
using System;
using System.Timers;
public class Timer1
{
void timer_Tick(object sender, EventArgs e)
{
DateTime Time = DateTime.Now;
int minutes = Time.Minute;
if (minutes == 51) //FIRE ON THE HOUR
{
System.Diagnostics.Process.Start(@"C:\***\winamp.exe");
}
}
}
- Bearbeitet tauricoder Donnerstag, 21. Juni 2012 09:56
-
meins tut schon ....
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Timer t = new Timer(fnTimer, 5, 0, 1000); Console.ReadLine(); } private static void fnTimer(Object state) { DateTime dt = DateTime.Now; if (dt.Second == 30) { Console.WriteLine("Sekunde 30"); } if (dt.Second == 15) { Console.WriteLine("Sekunde 15"); } if (dt.Second == 0) { Console.WriteLine("Sekunde 0"); } if (dt.Second == 45) { Console.WriteLine("Sekunde 45"); } } } }
-
Also mein Code war nicht zum reinprogrammieren gedacht, sondern als minimal Beispiel für eine Timer Anwendung.
Du hast jetzt 2 mal die Main drin, da geht glaube ich so gar nicht.
Hast Du jetzt eigentlich eine Consolen Anwendung oder eine Windowsform?
Jetzt machst meinen Code wieder raus und versuchst in Deinem Code (Main)den Timer wie in meinem Code zu initialisieren.
Dann mußt noch den "TimerCode" bei Deiner "Software" einfügen und dort den Code reinschreiben denn Du zyklisch aufrufen willst.
Viel Glück, ich mach Feierabend.! -
ich gebs erstmal auf. bin wohl zu xxxx für c#. dachte hab vb.net kappiert, kann ich auch c# lernen..:-(
aber trotzdem danke für die tipps
- Bearbeitet tauricoder Donnerstag, 21. Juni 2012 14:39
-
kann mir denn keiner helfen? wie bekomme ich dieses prob gelöst. mir qualmt der kopf.
private static void recognizer_SpeechRecognized(object sender, System.Speech.Recognition.SpeechRecognizedEventArgs e)
{
Console.WriteLine(e.Result.Text + " (" + e.Result.Confidence.ToString() + ")");
if (e.Result.Text == "Status")
{
var speechSynthesizer = new SpeechSynthesizer();
speechSynthesizer.Speak("Bereitschaftsmodus.");
}
else if (e.Result.Text == "Uhrzeit")
{
var speechSynthesizer = new SpeechSynthesizer();
speechSynthesizer.Speak(DateTime.Now.ToString());
}//##############das hier############
DateTime Time = DateTime.Now;
int minutes = Time.Minute;
if (minutes == 46) //FIRE ON THE HOUR
{
var speechSynthesizer = new SpeechSynthesizer();
speechSynthesizer.Speak("ja ja");
}//###############################################
habs mit eigenen namespace, eigener klasse versucht.
- Bearbeitet tauricoder Donnerstag, 21. Juni 2012 16:54
-
"tauricoder" schriebweil ich es lernen möchte:-) und weil ich aus einer exe über den tag verteilt
verschieden aufgaben ausführen lassen möchte. windows scheduler möchte ich dazu nicht nutzen.Es gibt auch nich andere, Spring oder so...
Ausserdem kann man den Task Scheduler vollständig, vom eigenen Programm aus, fernsteuern.
Aber wenn Du das unbedingt selbär machen willst:Man startet seinen Vorgang immer durch auslösen eines Events durch einen Timer. (Beachte: Es gibt mind. 3 Timer in Dot.Net)
Wenn der um 12:oo was tun soll, musst Du ihn stellen, indem Du ausrechnest wie lange es noch bis 12:oo dauert, vom initialisieren des Programms aus gerechnet. Das kann man mit Timespan.
Soll sich der Vorgang wiederholen muss das neue Interval berechnet werden und der Timer neu gestartet.
Man kann natürlich auch mehrere Timer für verschiedenen Aufgaben erzeugen und die Intervalle angepasst berechnen.
Das dann alles schön in einen Klasse und schon isses fertig. -
das ist doch das problem....der timer funktioniert doch. ich komme nur mit den klassen nicht klar.
}
else if (e.Result.Text == "Uhrzeit")
{
var speechSynthesizer = new SpeechSynthesizer();
speechSynthesizer.Speak(DateTime.Now.ToString());
} -----------wie trenne ich diese beiden codes?-----------------
DateTime Time = DateTime.Now;
int minutes = Time.Minute;
if (minutes == 07) //FIRE ON THE HOUR
{
var speechSynthesizer = new SpeechSynthesizer();
speechSynthesizer.Speak("ICH BIN DER CODE, DER AUSGEFÜHRT WERDEN WILL");
}
}
}
}
}- Bearbeitet tauricoder Donnerstag, 21. Juni 2012 18:46
-
"tauricoder" schrieb im Newsbeitragdas ist doch das problem....der timer funktioniert doch. ich komme nur mit den klassen nicht klar.
Das ist Müll, fang von vorne an und mache es richtig
http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=de-de&k=k(SYSTEM.TIMESPAN);k(TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERSION%3dV4.0%22);k(DevLang-VB)&rd=true
-
habs hin bekommen. schwitz. ein näherer tipp als nur verweise auf webseiten wäre zwar schöner gewesen, man lernt ja auch durch hilfe vorlagen:-) und als anfänger ließt sich vieles wie brüder grimm aus 2300. aber trotsdem danke:-)
Dann poste mal Deine/Die Lösung und markiere die Antwort und was für Dich hilfreich war. -
****************************************************************************************************************
Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
****************************************************************************************************************Robert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.