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

}

}



版权声明:本文为abcdint原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/abcdint/article/details/86543255