以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何修改群发短信代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=34640)

--  作者:方丈
--  发布时间:2013/6/10 19:27:00
--  [求助]如何修改群发短信代码

     使用短信猫群发短信,代码如下;想改为每隔5分钟自动发送一次,每次发送10条短信,直到列表中所有短信发送对象都发送一次,代码如何改?

 


窗口事件TimerTick


For Each r As Row In Tables("短信群发表").Rows
    If Not r.IsNull("发信日期时分") AndAlso r("是否发送") = True

AndAlso Date.Now >= r("发信日期时分") Then
        e.Form.TimerEnabled = False
        e.Form.Controls("btn_send").PerformClick()
        Exit For
    End If
Next

 

按钮事件: 

 

For Each r As Row In Tables("短信群发表").Rows
    If Not r.IsNull("发信日期时分") AndAlso Date.Now >= r("发信日期时

分") Then
 Dim result As Integer
    Try
        result = FoxSMS.SendMsg(r("电话号码"),r("短信内容")) \'发送信息
    Catch ex As Exception
        MessageBox.Show(ex.Tostring,"错

误",MessageBoxButtons.OK,MessageBoxIcon.Information)
    End Try

        r.Delete()
    End If
Next

e.Form.TimerEnabled = True


--  作者:方丈
--  发布时间:2013/6/11 8:53:00
--  
顶一下
--  作者:方丈
--  发布时间:2013/6/12 23:27:00
--  
顶一下

--  作者:程兴刚
--  发布时间:2013/6/12 23:36:00
--  
既然用了记时器代码,就没必要循环,一次一条,间隔一定时间,发完为止!
--  作者:方丈
--  发布时间:2013/6/13 8:05:00
--  
以下是引用程兴刚在2013-6-12 23:36:00的发言:
既然用了记时器代码,就没必要循环,一次一条,间隔一定时间,发完为止!

因有特殊要求,每一组10个人要同时发,短信猫是公用的,而数据来自不同的用户


--  作者:狐狸爸爸
--  发布时间:2013/6/13 11:30:00
--  

如果这样,你能一个人发,其他人将要发送的信息写入一个表中,另外一个人定期调用这个表的数据发送。
当然还得有个标记列,表明这行数据是否发送完毕。

 

定时器的代码:
 
Dim dt As DataTable
Dim cmd As New SQLCommand
cmd.CommandText = "Select  Top 10 From {数据表} where 已发送 = False Or 已发送 Is Null " \'注意要包括主键列
dt = cmd.ExecuteReader(True) \'注意可选参数设置为True
For Each dr As DataRow In dt.DataRows

    ’发送信息
    dr("已发送") = True
Next
dt.Save()


--  作者:方丈
--  发布时间:2013/6/13 17:28:00
--  

谢谢!