C# 将程序放入循环中
刚刚完成一个网站上一些非常有帮助的人建议我的项目。该程序从列表框中获取用户名,使用webBrowser控件输入正确的URL,然后发布消息。现在我想把它放在auto-pilot上,让我们以编程的方式浏览名称列表。在哪里可以添加循环?如何添加循环C# 将程序放入循环中,c#,loops,webbrowser-control,C#,Loops,Webbrowser Control,刚刚完成一个网站上一些非常有帮助的人建议我的项目。该程序从列表框中获取用户名,使用webBrowser控件输入正确的URL,然后发布消息。现在我想把它放在auto-pilot上,让我们以编程的方式浏览名称列表。在哪里可以添加循环?如何添加循环 private bool WaitingForData; public void master() { listBox(); Application.DoEvents(); GetD
private bool WaitingForData;
public void master()
{
listBox();
Application.DoEvents();
GetData();
Application.DoEvents();
}
public void listBox()//Handles getting names from ListBox
{
//load names to listbox
}
private void GetData()
{
webBrowser1.Navigate(inputURLID);
WaitingForData = true;
}
private void SendData()
{
webBrowser1.Document.GetElementById("subject").SetAttribute("value", textBox2_Subject.Text);//To (username)
webBrowser1.Document.GetElementById("message").SetAttribute("value", richTextBox1.Text);//Subject
webBrowser1.Document.GetElementById("Submit").InvokeMember("click");//Message
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (WaitingForData) SendData();
WaitingForData = false;
}
如果希望在“循环”中运行整个程序,最好的方法是通过Windows任务调度器。只需设置一个指向程序的任务,并将其设置为按您希望的频率运行即可
假设您想自动处理用户名列表,有两种基本的可能性 1) 您希望启动UI,让某人手动添加逗号或换行符分隔的名称列表,然后按go按钮 2) 您希望从数据库/web服务或定期替换的文本文件中获取名称列表,并在有新信息需要处理时自动执行程序 让我们依次解决每个问题 1) 您需要从列表框中检索数据,并将其拆分为用户名列表。如果使用逗号分隔的值(例如,
“Paul,Steve,Michael”
),则可以使用
var name=myListBox.Text.Split(',');
然后循环使用它们来处理类似以下代码:
foreach(名称中的变量名称)
{
嫁妆(姓名);
}
在选项2中,您需要一种不同风格的程序,可以是windows服务,也可以是使用任务调度器运行的命令行应用程序
在这两种情况下,我不确定您的程序的当前结构是否真的适合批处理
最后请注意,如果您试图通过基于浏览器的客户端(看起来就是这样)自动发布电子邮件,那么首先这是一个非常糟糕的主意,尤其是使用web浏览器控件来实现这一点,第二,请确保您拥有这样做的合法权利,因为如果不加检查的话,对这样的网站进行垃圾邮件是非常有害的。啊,我错过了名称系列部分。是的,我会从数据库里读到这些名字。谢谢肖恩和保罗。我将尝试选项1。任务调度器是一个非常好的主意,我以前使用过它,我只是觉得它在这里不起作用,因为名字列表的问题。仅供参考,我不是垃圾邮件发送者,只是为了好玩而编码。我想我问了一个很好的问题,不知道为什么人们会记下来?