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”);
}
}