Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 00:18

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



C# Countdown mit sich öffnendem Link?

Discussion on C# Countdown mit sich öffnendem Link? within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
FizzeBu's Avatar
 
elite*gold: 6
Join Date: Mar 2010
Posts: 12,388
Received Thanks: 2,115
Question C# Countdown mit sich öffnendem Link?

Hallo, ich habe mal wieder angefangen Pennergame zu spielen... nach einiger Zeit So und als ich dann gemütlich am skillen war, dachte ich mir, hey bastel doch ein Programm, das du an alle deine Freunde weitergibst, welches deinen Link alle 60 Minuten öffnet.
Also hab ich mich erkundigt mit welchem Programm man das anstellen kann und bin auf Microsoft Visual 2010 Express gestoßen. Hab ich mir dann auch runtergeladen. Hab dann ein Fenster mit nem Butten der meinen Spendenlink öffnet erstellt. So weit so gut, noch ein schönes Icon eingefügt, mir einen passenden Namen überlegt und gut wars.
Jetzt hab ich aber nur ein Programm welches meinen Link anzeigt. Ich will aber eine ProgressBar mit einem 60 Minuten Timer und wenn der Timer abgelaufen ist, soll eine MessageBox erscheinen, die den Leuten sagt, dass sie jetzt wieder spenden sollen. (Wenn ich dann noch Zeit und Lust habe würde ich dann ein RadioButton anlegen, für 1. nach 60 Minuten eine Meldung zeigen oder 2. automatisch Spenden...aber erstmal das wichtigste)
Ich brauche also einen Countdown, der auch in der ProgressBar angezeigt wird(und die verbleibende Zeit soll auch in einem Label erscheinen, welches ich dann über die ProgressBar lege)
Ich hoffe ihr könnt mir helfen
Danke schon mal im Vorraus

FizzeBu
FizzeBu is offline  
Thanks
1 User
Old 08/24/2010, 21:06   #2
 
Noisuf-X's Avatar
 
elite*gold: 38
Join Date: Dec 2008
Posts: 1,339
Received Thanks: 462
Es gibt 2 einfach Lösungen:
1. Ein Thread der einfach 60 mins schläft und dann die Funktion die du willst ausführt.
2. Der Timer der nach 60 mins einfach sein Event ausführt

P.S. intern macht der Timer nichts anderes als Nummer 1
Noisuf-X is offline  
Thanks
1 User
Old 08/24/2010, 21:39   #3
 
FizzeBu's Avatar
 
elite*gold: 6
Join Date: Mar 2010
Posts: 12,388
Received Thanks: 2,115
Ja des is warscheinlich super einfach aber ich hab heute Nachmittag mit pragrammieren angefangem... ich bitte um eine etwas ausführlichere Erklärung
Aber trozdem Danke
FizzeBu is offline  
Thanks
1 User
Old 08/24/2010, 22:33   #4
 
Madd Eye's Avatar
 
elite*gold: 260
Join Date: Apr 2010
Posts: 229
Received Thanks: 142
Er möchte es aber in einem Progressbar eingezeigt bekommen
Am besten du machst da eine While Schleife.
Die könnte beispielweise so aussehen

Code:
int min;
While(min>0)
{
  Sleep(60000); // Sleep erwartet Milisekunden 1s = 1000ms, 1min = 60s = 60000ms
  min--;
}
Die Variable min einfach noch in nen String convertieren und als Text für ein Label
Madd Eye is offline  
Old 08/24/2010, 22:42   #5


 
Cholik's Avatar
 
elite*gold: 4
Join Date: Aug 2008
Posts: 6,783
Received Thanks: 4,992
Ich würde das Ganze mit einem Timer realisieren, das ist wesentlich sauberer und einfacher als das beschriebene Beispiel mit der while-Schleife.

Mit einem Thread würde ich nicht unbedingt arbeiten in dem Fall, da du dann noch Delegates und Invokes erstellen musst weil du sonst CrossThreadExceptions kriegst wenn du versuchst die ProgressBar aus dem Thread heraus zu aktualisieren.
Ich meine im Prinzip ist es mit dem Thread auch möglich, aber für einen Anfänger eher schwieriger.
Cholik is offline  
Old 08/25/2010, 06:59   #6
 
Noisuf-X's Avatar
 
elite*gold: 38
Join Date: Dec 2008
Posts: 1,339
Received Thanks: 462
Quote:
Originally Posted by Walter Sobchak View Post
Ich würde das Ganze mit einem Timer realisieren, das ist wesentlich sauberer und einfacher als das beschriebene Beispiel mit der while-Schleife.

Mit einem Thread würde ich nicht unbedingt arbeiten in dem Fall, da du dann noch Delegates und Invokes erstellen musst weil du sonst CrossThreadExceptions kriegst wenn du versuchst die ProgressBar aus dem Thread heraus zu aktualisieren.
Ich meine im Prinzip ist es mit dem Thread auch möglich, aber für einen Anfänger eher schwieriger.
Ja ich wollte aber trotzdem den Thread als erstes nehmen, der Timer feuert zwar sein Event aber dieses wird dannn wieder im den GUIThread ausgeführt, damit umgeht man zwar sehr sehr leicht das Problem zwei Threads auf ein Objekt zugreifen. Aber ich bin kein Fan von den Timerobjekten, weil wenn ich schon einen zweiten Thread brauche dann will ich meist nicht nur die Zeit abwarten.

@Madd Eye: man kann auch mit einem Thread oder einem Timer eine Progressbar füllen und Wartezeiten sollte man eigentlich nicht im GUIThread behandeln, da die Oberfläche nicht neu gezeichnet werden kann udn das Programm sozusagen "einfriert".
Noisuf-X is offline  
Thanks
1 User
Old 08/25/2010, 09:21   #7
 
FizzeBu's Avatar
 
elite*gold: 6
Join Date: Mar 2010
Posts: 12,388
Received Thanks: 2,115
Woow, ich hab Sleep ausprobiert, den Befehl gibts bei mir aber nicht... den Rest versteh ich auch nicht... könntet ihr mir Code-Beispiele geben? Wär toll
FizzeBu is offline  
Old 08/25/2010, 22:45   #8
 
Noisuf-X's Avatar
 
elite*gold: 38
Join Date: Dec 2008
Posts: 1,339
Received Thanks: 462
Quote:
Originally Posted by FizzeBu View Post
Woow, ich hab Sleep ausprobiert, den Befehl gibts bei mir aber nicht
Erstens, das liegt auch daran das der Code von Madd Eye nicht so funktioniert wie er ihn gepostet hat.

Quote:
versteh ich auch nicht...
Ich verstehe nicht wie man überseine Unweissheit lachen sein kann.
Ich rede nicht von Dummheit oder sonstiges, sondern vom Wissen.
Als ich lache nicht wenn ich mich für einen Bereich intressiere aber da nichts weiss.

Quote:
könntet ihr mir Code-Beispiele geben?
Ich erkläre dir das mal mit dem Timer.
Zu erst brauchst du ein Timer Objekt.

Quote:
private Timer _TestTimer;
private Timer TestTimer
{
get
{
if (_TestTimer == null)
_TestTimer = new Timer();
return _TestTimer;
}
}
So finde ich das für den Zweck am geeignetsten, so kannst du das irgentwo in deiner Klasse Bunker und wenn du das erstmal draufzugreifst wird es erzeugt. Ob man extern noch zugriff auf das Objekt haben will muss man selbst entscheiden.

Nun musst du musst du von deinem Timer Objekt die Eigenschaft "Interval" so setzen wie du es gerne hättest, oben wolltest du ja 60 mins.

Quote:
{
...
TestTimer.Interval = 60000;
...
}
Jetzt brauchst du noch deine EventFuntion die aller 60 min ausführen willst.

Quote:
private void MeineSuperStundenFunktion(object sender, EventArgs e)
{
// Dein Code
}
Jetzt musst du die Eventfunktion nur noch bei dem "Tick" Event von deinem Timer Objekt anmelden, damit es weiss was es machen muss und das wars

Quote:
TestTimer.Tick += MeineSuperStundenFunktion;
@TE wenn du mich immer ncoh nicht verstanden hast, NIMM DIR EIN SCHEISS BUCH UND LERN ERSTMAL EIN BISSCHEN DIE SPRACHE.
Weil sonst wirst du blo solche TuDies oder TuDas-Antworten bekommen und nie etwas verstehen

@Alle die denke Visual Studio Timer rein ziehen etc...
Naja wären wir bei den TuDies oder TuDas Antworten, ich denke die die solche Anwroten geben wissen selbst nicht mal was die IDE jemand für Code hinzuaber oder was der richtig bewirkt.
siehe
Noisuf-X is offline  
Thanks
1 User
Old 08/26/2010, 14:45   #9
 
FizzeBu's Avatar
 
elite*gold: 6
Join Date: Mar 2010
Posts: 12,388
Received Thanks: 2,115
Das mit dem Timer hab ich so gelöst:
Code:
        private void button1_Click(object sender, EventArgs e)
        {

            if (radioButton2.Checked)
            {
                timer1.Enabled = false;

               

                timer1.Enabled = true;
            }
            if (radioButton1.Checked)
            {
                timer2.Enabled = false;


                timer2.Enabled = true;
            }

            try
            {
                System.Diagnostics.Process.Start("http://change.pennergame.de/change_please/1752220/");
            }
            catch { }

            
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            timer1.Enabled = false;

            MessageBox.Show("Du kannst jetzt wieder spenden", "Wartezeit abgelaufen");
        }

        private void timer2_Tick(object sender, EventArgs e)
        {
            try
            {
                System.Diagnostics.Process.Start("http://change.pennergame.de/change_please/1752220/");
            }
            catch { }
        }
Das mit dem Timer erst aus und dann wieder anschalten hab ich so gemacht, dass der Countdown neu startet, falls man auf Button für den Link klickt.

Und ich warte nicht auf TuDies und TuDas Anweisungen. Ich wollte ein Codebeispiel im Sinne von: Man kann mit MessageBox.Show eine Meldung erzeugen ;D
FizzeBu is offline  
Thanks
1 User
Old 08/26/2010, 17:26   #10
 
Noisuf-X's Avatar
 
elite*gold: 38
Join Date: Dec 2008
Posts: 1,339
Received Thanks: 462
Quote:
Originally Posted by FizzeBu View Post
Das mit dem Timer hab ich so gelöst:
Code:
        private void button1_Click(object sender, EventArgs e)
        {

            if (radioButton2.Checked)
            {
                timer1.Enabled = false;

               

                timer1.Enabled = true;
            }
            if (radioButton1.Checked)
            {
                timer2.Enabled = false;


                timer2.Enabled = true;
            }

            try
            {
                System.Diagnostics.Process.Start("http://change.pennergame.de/change_please/1752220/");
            }
            catch { }

            
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            timer1.Enabled = false;

            MessageBox.Show("Du kannst jetzt wieder spenden", "Wartezeit abgelaufen");
        }

        private void timer2_Tick(object sender, EventArgs e)
        {
            try
            {
                System.Diagnostics.Process.Start("http://change.pennergame.de/change_please/1752220/");
            }
            catch { }
        }
Das mit dem Timer erst aus und dann wieder anschalten hab ich so gemacht, dass der Countdown neu startet, falls man auf Button für den Link klickt.

Und ich warte nicht auf TuDies und TuDas Anweisungen. Ich wollte ein Codebeispiel im Sinne von: Man kann mit MessageBox.Show eine Meldung erzeugen ;D
habe ich dir doch gegeben oder liege ich falsch
Noisuf-X is offline  
Thanks
1 User
Old 08/26/2010, 20:07   #11
 
FizzeBu's Avatar
 
elite*gold: 6
Join Date: Mar 2010
Posts: 12,388
Received Thanks: 2,115
Sry ich habs erst durchgelesen als ich es schon gepostet habe...
aber danke für deine Hilfe ich geb dir selbstverständlich ein Thank
Jetzt hab ich nur noch eine Frage:
Ich will meine ProgressBar mit der Zeit fütter. Mit tostring gehts nicht, gibt es da einen gleichwertigen Befehl?
FizzeBu is offline  
Thanks
1 User
Old 08/26/2010, 21:23   #12
 
FizzeBu's Avatar
 
elite*gold: 6
Join Date: Mar 2010
Posts: 12,388
Received Thanks: 2,115
Hmm ich habe jetzt eine Möglichkeit gefunden. Ich habe einen Timer der in jeder Sekunde der ProgressBar 1 zufügt. Das macht er aber nur einmal. Timer laufen doch eigentlich in einer Endlosschleife bis man sie auschaltet? Warum bei mir nicht?
FizzeBu is offline  
Thanks
1 User
Old 08/27/2010, 11:52   #13
 
elite*gold: 0
Join Date: May 2010
Posts: 793
Received Thanks: 268
Quote:
Originally Posted by FizzeBu View Post
Hmm ich habe jetzt eine Möglichkeit gefunden. Ich habe einen Timer der in jeder Sekunde der ProgressBar 1 zufügt. Das macht er aber nur einmal. Timer laufen doch eigentlich in einer Endlosschleife bis man sie auschaltet? Warum bei mir nicht?
kann es vieleicht sein dass u jedesmal den value der progessbar auf 1 setzt oder so ?
nkkk is offline  
Old 08/27/2010, 12:13   #14
 
Noisuf-X's Avatar
 
elite*gold: 38
Join Date: Dec 2008
Posts: 1,339
Received Thanks: 462
Quote:
Originally Posted by nkkk View Post
kann es vieleicht sein dass u jedesmal den value der progessbar auf 1 setzt oder so ?
ich denke mal auch das es so machst, man kann bei der Progressbar die Methode .PerformStep() aufrufen um die anzahl zu erhöhen
es geht auch immer das value neuzusetzen aber das ist nicht im sinne der Progressbar

die eigenschaft Step sag übrigens um wie viel bei PerformStep erhöht wird
achja bei den Standart Winformscontrols stehen wenigstens noch deutsche hilfe da
Noisuf-X is offline  
Thanks
1 User
Old 08/27/2010, 20:32   #15
 
FizzeBu's Avatar
 
elite*gold: 6
Join Date: Mar 2010
Posts: 12,388
Received Thanks: 2,115
danke, das mit performstep hat funktionier das programm ist fertig ich wollte es dann nätürlich meinen freunden geben. eine davon hat es gestartet, aber es hat nicht funktioniert... sie hat XP, ich habe windows 7 woran liegt das? idee?
FizzeBu is offline  
Thanks
1 User
Reply

Tags
c#, countdown, timer


Similar Threads Similar Threads
Countdown in GUI
01/09/2009 - GW Bots - 3 Replies
Hi, wie bekomm ich denn einen Countdown in ne GUI? Aber der countdown soll aber durch zb ne func restartet werden... also er zählt von 10sec nach 0 und sobald man ne func aufruft fängt er neu an... #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 526, 72, 199, 274)
Countdown ~ Down 2
10/05/2008 - Metin2 Private Server - 1 Replies
20:50 Serverdown... o0
Countdown ~ Down
10/02/2008 - Metin2 Private Server - 54 Replies
Gerade war ich in longju online und plötzlich schrieb ein Gamemaster (?) 10...9...8...7...6...5...4...3...2...1... Danach wurden meine beiden longju Fenster geschlossen und nun komme ich nicht mehr rein. War das einfach ein angekündigter Serverdown?



All times are GMT +1. The time now is 00:24.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.