1.在SqlServer数据库中创建表,保存待发送的微信朋友的备注。
create table weixin_friends
(
ID int primary key identity(1,1) not null ,
FriendNick varchar(50) not null
)
insert into weixin_friends (FriendNick) values(‘孙聪聪’)
2.python程序
定义SqlServer访问类
import pymssql def conn_sqlserver(): conn = pymssql.connect('数据库IP','sa','用户密码','要访问的数据库名') if conn: print('连接成功') return conn ''' 执行Sql语句 ''' def executeSql(sql): conn = conn_sqlserver() cursor = conn.cursor() cursor.execute(sql) conn.commit() cursor.close() conn.close() def executeSqlResult(sql): conn = conn_sqlserver() cursor = conn.cursor() sqlnum = cursor.execute(sql) result = cursor.fetchall() conn.close() return result
3.发送微信
import itchat import sys import sqlserver_conn ''' 查询数据库中 ''' def select_users(): cnn = sqlserver_conn.conn_sqlserver() ''' 登录一个微信 ''' L = [] def login_weixin(): itchat.auto_login(hotReload=True) #定义一个要发送的人的备注 def send_weixin_msg(msgText): sql = "select * from weixin_friends" res = sqlserver_conn.executeSqlResult(sql) for item in res: L.append(item[1]) for x in L: itcaht_user_name = itchat.search_friends(name=x)[0]['UserName'] itchat.send(msgText, toUserName=itcaht_user_name) # print(sys.argv) # if __name__ == '__main__': # print('Program name ' , sys.argv[0]) # for i in range(1, len(sys.argv)): # print ("arg%d" % i, sys.argv[i]) # 登录微信 login_weixin() msg_Text = sys.argv[1] #第一个参数 send_weixin_msg(msg_Text)
4.创建一个 .bat文件
echo param[0] = %0
echo param[1] = %1
echo param[2] = %2
python %2 %1
5.创建C#程序
public class SendWeiXinMsg
{
/// <summary>
/// 发送微信消息(普通消息)
/// </summary>
/// <param name=”text”>消息内容</param>
/// <param name=”path”>bat文件地址</param>
/// <param name=”pythonName”>python的文件名称</param>
public void SendWeiXinMessage(string text,string path,string pythonName)
{
Process p = new Process();
string param = text + ” “+pythonName;
ProcessStartInfo pi = new ProcessStartInfo(path, param);//第二个参数为传入的参数,string类型以空格分隔各个参数
pi.UseShellExecute = false;
pi.RedirectStandardOutput = true;
p.StartInfo = pi;
p.Start();
p.WaitForExit();
string output = p.StandardOutput.ReadToEnd();
}
}
class Program
{
static void Main(string[] args)
{
Landata.SendWeiXin.SendWeiXinMsg sendmsg = new Landata.SendWeiXin.SendWeiXinMsg();
sendmsg.SendWeiXinMessage(“这里是我在自己测试的,用asp.net调用的python,发送的对象保存到SqlServer数据库中。”,”run.bat”,”weixin.py”);
}
}