Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

Programmierungs Problem.

  -1- -2- vorwärts >>>  
RuN_It - 33
Halbprofi (offline)

Dabei seit 01.2006
262 Beiträge
Geschrieben am: 27.09.2010 um 19:23 Uhr

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
string nachtricht;
int wieoft;
int abstand;
private string nachricht;

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
if (button1.Text == "Start")
{
System.Threading.Thread.Sleep(5 * 1000);
backgroundWorker1.RunWorkerAsync();
button1.Text = "Stop";
}
if (button1.Text == "Stop")
{
backgroundWorker1.CancelAsync();
button1.Text = "Start";
}
}

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
nachtricht = textBox2.Text;
wieoft = Convert.ToInt16(textBox3.Text);
abstand = Convert.ToInt16(textBox1.Text);

int i = 0;
while (0 < wieoft)
{
backgroundWorker1.ReportProgress(1);
System.Threading.Thread.Sleep(abstand*1000);
i++;
}
}

private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
SendKeys.Send(nachricht);
SendKeys.Send("{ENTER}");
}
}
}


Bin ein anfänger in Sache Programme schreiben.

Habe versucht mir einen Chat spammer zu schreiben, das ist das Produkt. Doch es funktioniert i.wie nicht. Könnt ihr mir weiterhelfen ?
ich habe visual studios 2010 express benutzt.

MfG Kai
scw - 42
Experte (offline)

Dabei seit 09.2002
1836 Beiträge
Geschrieben am: 27.09.2010 um 19:26 Uhr
Zuletzt editiert am: 27.09.2010 um 19:28 Uhr

Zitat von RuN_It:


[...]
Habe versucht mir einen Chat spammer zu schreiben, das ist das Produkt. Doch es funktioniert i.wie nicht. Könnt ihr mir weiterhelfen ?
ich habe visual studios 2010 express benutzt.

MfG Kai


Es wäre noch gut, wenn die Fehlerbeschreibung detailierter wäre ;-)
- Welche Programmiersprache
- Was sollte es machen
- Was macht es tatsächlich
- Irgendwelche genauen Fehlermeldungen
- Compilerfehlermeldungen
- Laufzeitfehlermeldungen
- ...
RuN_It - 33
Halbprofi (offline)

Dabei seit 01.2006
262 Beiträge
Geschrieben am: 27.09.2010 um 19:33 Uhr
Zuletzt editiert am: 27.09.2010 um 19:33 Uhr

Zitat von scw:

Zitat von RuN_It:


[...]
Habe versucht mir einen Chat spammer zu schreiben, das ist das Produkt. Doch es funktioniert i.wie nicht. Könnt ihr mir weiterhelfen ?
ich habe visual studios 2010 express benutzt.

MfG Kai


Es wäre noch gut, wenn die Fehlerbeschreibung detailierter wäre ;-)
- Welche Programmiersprache
- Was sollte es machen
- Was macht es tatsächlich
- Irgendwelche genauen Fehlermeldungen
- Compilerfehlermeldungen
- Laufzeitfehlermeldungen
- ...


Okay,
programmiersprache ist: C#
es sollte automatisch in zeitabständen einen satz so oft wie angegeben abschicken.
- es macht leider gar nichts.
Dieser BackgroundWorker ist derzeit ausgelastet und kann nicht mehrere Aufgaben gleichzeitig ausführen.
backgroundworker1.RunWorkerAsync ();
InvalidOperationExepction wurde nicht behandelt.

Und es zeigt hin und wieder auch an dass er "nachricht" nicht aus dem Kontext herauslesen kann.

Mehr könnte ich nich herauslesen. :D


ItsPayne - 41
Profi (offline)

Dabei seit 12.2008
997 Beiträge

Geschrieben am: 27.09.2010 um 19:37 Uhr
Zuletzt editiert am: 27.09.2010 um 19:39 Uhr

Warum willst das unbedingt in nem thread machen?
Is da ne GUI drum rum und du willst das 100.000x abschicken oder wie?

€: Ich weiß zwar nicht was der backgroundworker genau machen soll, aber du legst soweit ich das seh eigentlich nur immer den thread schlafen in dem die form läuft.

Wenn du lange genug in einen Abgrund blickst, blickt der Abgrund auch in dich hinein.

RuN_It - 33
Halbprofi (offline)

Dabei seit 01.2006
262 Beiträge
Geschrieben am: 27.09.2010 um 19:44 Uhr

wie gesagt ich bin anfänger.
und nein, 100.000x is bei weitem zuviel, das ganze soll einfach nurn einstieg ins programmieren sein.

und ist der backgroundworker nicht da, dass der pc normal weiterläuft, kein gelagge. hatte ich zumindest gehört. ^^
ItsPayne - 41
Profi (offline)

Dabei seit 12.2008
997 Beiträge

Geschrieben am: 27.09.2010 um 19:47 Uhr

Das mag schon sein. Ich kenn den backgroundworker nicht.
Ich tippl grad was zusammen..

Wenn du lange genug in einen Abgrund blickst, blickt der Abgrund auch in dich hinein.

RuN_It - 33
Halbprofi (offline)

Dabei seit 01.2006
262 Beiträge
Geschrieben am: 27.09.2010 um 19:48 Uhr

Zitat von ItsPayne:

Das mag schon sein. Ich kenn den backgroundworker nicht.
Ich tippl grad was zusammen..


okay, danke dir.
Rauschkugl - 38
Experte (offline)

Dabei seit 03.2005
1488 Beiträge

Geschrieben am: 27.09.2010 um 19:59 Uhr

int i = 0;
while (0 < wieoft)
{
backgroundWorker1.ReportProgress(1);
System.Threading.Thread.Sleep(abstand*1000);
i++;
}

es bringt nichts wenn du hier i hochzählst und die variable wieoft dann mit 0 vergleichst.
du musst schon i weiter verwenden.
RuN_It - 33
Halbprofi (offline)

Dabei seit 01.2006
262 Beiträge
Geschrieben am: 27.09.2010 um 20:06 Uhr

Zitat von Rauschkugl:

int i = 0;
while (0 < wieoft)
{
backgroundWorker1.ReportProgress(1);
System.Threading.Thread.Sleep(abstand*1000);
i++;
}

es bringt nichts wenn du hier i hochzählst und die variable wieoft dann mit 0 vergleichst.
du musst schon i weiter verwenden.


heißt das dann
while (i < wieoft) oder wie darf ich das dann umschreiben ?
Rauschkugl - 38
Experte (offline)

Dabei seit 03.2005
1488 Beiträge

Geschrieben am: 27.09.2010 um 20:12 Uhr
Zuletzt editiert am: 27.09.2010 um 20:14 Uhr

wenn es so oft ablaufen soll, wie in wieoft angegeben, ja. aber ich würde eine for schleife verwenden:

for ( int i = 0; i < wieoft; i++)
{
...
}

aber du solltest dich erstmal mit was anderem wie threading und backgroundworkern beschäftigen wenn die allgemeinen grundlagen fehlen.
der backgroundworker ist bei so einem programm normal überflüssig und hat nichts damit zu tun dass der rechner dann nicht hängt.
durch den backgroundworker wird die arbeit in einem anderen threat erledigt, das verhindert das hängen der oberfläche deines programmes das im hauptthreat läuft. windows wird deswegen nie hängen.
RuN_It - 33
Halbprofi (offline)

Dabei seit 01.2006
262 Beiträge
Geschrieben am: 27.09.2010 um 20:13 Uhr

naja, ich habe mich eig an ein tutorial in youtube gehalten.

aber dennoch danke.
Rauschkugl - 38
Experte (offline)

Dabei seit 03.2005
1488 Beiträge

Geschrieben am: 27.09.2010 um 20:15 Uhr

Zitat von RuN_It:

naja, ich habe mich eig an ein tutorial in youtube gehalten.

aber dennoch danke.

nicht alles was man im internet findet stimmt oder ist gut.
kauf dir ein buch für die grundlagen oder benutz seriöse seiten wie msdn und nicht irgendwelche youtube tutorials.
RuN_It - 33
Halbprofi (offline)

Dabei seit 01.2006
262 Beiträge
Geschrieben am: 27.09.2010 um 20:16 Uhr

Ich besuch ja zurzeit die robert-bosch. xD
naja, wollt einfach ma bissl ausprobieren. :)
scw - 42
Experte (offline)

Dabei seit 09.2002
1836 Beiträge
Geschrieben am: 27.09.2010 um 20:18 Uhr

Zitat von Rauschkugl:

Zitat von RuN_It:

naja, ich habe mich eig an ein tutorial in youtube gehalten.

aber dennoch danke.

nicht alles was man im internet findet stimmt oder ist gut.
kauf dir ein buch für die grundlagen oder benutz seriöse seiten wie msdn und nicht irgendwelche youtube tutorials.


MSDN ist zum Anfang vielleicht auch nicht ganz geeignet. Aber mit einem guten Buch macht man am Anfang nie was falsch! Ist halt mehr Arbeit, 1200 Seiten zu lesen, wie ein youtube Video anzuschauen ;-) Dafür lernt man bei einem Buch auch wirklich was.
ItsPayne - 41
Profi (offline)

Dabei seit 12.2008
997 Beiträge

Geschrieben am: 27.09.2010 um 20:20 Uhr
Zuletzt editiert am: 27.09.2010 um 20:23 Uhr

Zitat:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private delegate void doWorkCallback(object param);

private bool m_bProgramStarted = false;
private Thread m_threadDoWork;

private struct MyParams
{
public int iCounter;
public string strMessage;
}

public Form1()
{
InitializeComponent();
}

private void buttonStopStart_Click(object sender, EventArgs e)
{
MyParams myparams;

if (m_bProgramStarted == false)
{
m_bProgramStarted = true;
buttonStopStart.Text = "Stop";

m_threadDoWork = new Thread(new ParameterizedThreadStart(copyText));
if(Int32.TryParse(textBoxCounter.Text, out myparams.iCounter))
{
myparams.strMessage = textBoxMessage.Text;
m_threadDoWork.Start(myparams);
}

}
else
{
m_bProgramStarted = false;
buttonStopStart.Text = "Start";
}
}

private void copyText(object param)
{
MyParams myparams = (MyParams)param;

if (this.InvokeRequired)
{
doWorkCallback d = new doWorkCallback(copyText);
this.Invoke(d, myparams);
}
else
{
while (m_bProgramStarted)
{
for (int i = 0; i < myparams.iCounter; i++)
{
textBoxCopyTo.Text = myparams.strMessage + i;
}
}
}
}
}
}


So weit bin ich gekommen, funzt aber auch ned gescheit weil die software blockiert obwohl sie ddas eigentlich nicht sollte (button zum stoppen nicht klickbar..)
Aber ich hab jetzt feierabend und keine lust da rum zu machen.

Ps: Lass threading threading sein. Das lernst du nichtmal auf der bosch (da war ich auch..) weils zu hoch ist für den anfang.
Wenn du das wirklich verstehen willst hilft nur fachbücher lesen.

Pps: Das ganze thema is auch keine aufgabe für nen thread.
Wenn du irgendwas blockierendes hast, dann brauchst nen thread. Z.B. ne empfangsroutine zum auslesen eines netzwerk streams.
Ganz allgemein wenn du so schnell wie möglich was puffern musst und die arbei mit den gepufferten daten nebenher erfolgen kann.
Das sind aufgaben für threads.

Wenn du lange genug in einen Abgrund blickst, blickt der Abgrund auch in dich hinein.

RuN_It - 33
Halbprofi (offline)

Dabei seit 01.2006
262 Beiträge
Geschrieben am: 27.09.2010 um 20:21 Uhr

okaay, danke an alle. :)


Theard kann wieder geschlossen werden :)
  -1- -2- vorwärts >>>
 

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -