精华内容
下载资源
问答
  • 微信定时自动发送消息
    2020-11-21 02:33:21

    python代码:

    import itchat

    import time

    itchat.auto_login(hotReload=True)

    AutoList = ["",""]#需要发送消息的好友,可以不止一个

    message = ""#需要发送的消息

    path = ""#需要发送图片的位置

    while True:

    time_now = time.strftime("%H:%M:%S", time.localtime()) # 刷新

    if time_now == "21:43:00": #此处设置每天定时的时间

    for i in AutoList :

    user2 = itchat.search_friends(name=i)

    userName = user2[0]['UserName']

    itchat.send(message,userName)

    itchat.send_file(path,userName)

    time.sleep(1)

    itchat.run()

    python中的itchat库就可以,能够实现自动拉人进群聊,可以设置定时消息,自动聊天或设置自动回复等等。具体可以去网上找,推荐一个github上的项目:https://github.com/sfyc23/EverydayWechat

    更多相关内容
  • 使用微信,定时往指定的微信群里发送指定信息。接下来通过本文给大家分享Python3 itchat实现微信定时发送消息的实例代码,需要的朋友可以参考下
  • 微信脚本自动发消息 即将还有几个小时放假,约朋友一起玩,灵光一闪,能不能写个微信自动发消息来提醒朋友的插件呢。尝试了一下。结果可行 如果对你有帮助麻烦给个赞,鼓励一下。话不多说,贴代码 var appElement = ...

    微信脚本自动发消息

    即将还有几个小时放假,约朋友一起玩,灵光一闪,能不能写个微信自动发消息来提醒朋友的插件呢。尝试了一下。结果可行
    如果对你有帮助麻烦给个赞,鼓励一下。话不多说,贴代码

    var appElement = document.querySelector('[ng-controller=chatSenderController]');
    var $scope = angular.element(appElement).scope();
    setInterval(function(){
        var nowLocalTime = new Date();
        var nowTime = nowLocalTime.toLocaleTimeString();
        var s = nowLocalTime.getSeconds();
        var h = nowLocalTime.getHours();
        var m = nowLocalTime.getMinutes()
         var sh = 17 - h 
    
         if(sh >= 0){
            sh = sh+"小时"
         }else{
            sh = ""
         }
         var sm = 60 - m;
         if(sm == "0"){
            sm = ""
         }else{
            sm = sm +"分钟"
         }
         var ss = 60 - s 
    
         if(ss == "0"){
            ss = ""
         } else {
            ss = ss + "秒"
         }
        // if(s == "0"){//此为一分钟一次
            console.log()
            $scope.editAreaCtn = "现在是"+nowTime+"距离五一放假还剩" +sh + sm + ss ;
            $scope.sendTextMessage();
        // }
    },1000)
    

    如何使用

    1. 登陆网页版微信
    2. 选择你要轰炸的对象
    3. 鼠标右键 打开控制台
    4. 选择console 选项
    5. 在下方空白处粘贴代码。
    6. 回车确定
    展开全文
  • 因工作需要每小时签到,特意做了个定时发送的程序。需要单独窗口使用,把获取发送窗口拖拽到需要发送的窗口,添加发送的内容。理论支持所有聊天窗口。
  • 定的微信程序的消息窗口独立打开也是仅针对指定消息窗口的自动发送而 不会对其它消息窗口产生影响,软件在自动发送消息时候会将指定的微信 程序消息窗口进行最小化操作,自动发送消息完全是隐蔽情况下模拟人为 操作...
  • 主要介绍了python操作微信自动发消息(微信聊天机器人),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 一个java文件,完成可配置的微信定时任务

    需求来源

    当我们再日常工作中,需要每日定时的发送群消息,时间太早的话不想起来,想着可以用java显示定时发送消息的任务.在睡梦中让程序帮我们定时发送消息

    功能介绍

    定时生日祝福、每日早安、晚安问候

    1. 检测微信是否再后台运行
    2. 指定每天多个时间段发送可配置的消息
    3. 发送图片
    4. 每个时间段给多个人发送多个消息
    5. 设置间隔时间(如:两天发一次,一天发一次,每秒发一次)

    代码如下

    import javax.imageio.ImageIO;
    import java.awt.*;
    import java.awt.datatransfer.*;
    import java.awt.event.KeyEvent;
    import java.io.*;
    import java.nio.charset.StandardCharsets;
    import java.text.SimpleDateFormat;
    import java.time.LocalDateTime;
    import java.util.List;
    import java.util.*;
    
    /**
     * @Author: xu
     * @Description: 开启定时任务,指定时间,间隔给微信好友发送文本或图片
     * @Date: 2021/12/20 20:28
     */
    public class TimerTask {
    //    设置定时任务区间,每隔一天发一次
        private static final Long SECTION = (long) (24 * 60 * 60 * 1000);
    
        public static void main(String[] args) throws Exception {
            System.out.println("任务执行时间,请保证微信在登录状态并为最小化...");
            int weChat = queryProcessCount("WeChat");
            if (weChat<=0){
                System.err.println("请登陆微信后再尝试运行");
                return;
            }
            int year = LocalDateTime.now().getYear();
            int month = LocalDateTime.now().getMonthValue();
            int day = LocalDateTime.now().getDayOfMonth();     //任务默认从今天开始
            List<String> resource = getResouce();
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    //        遍历某个时间段需要做的事情
            for (String todo : resource) {
                String[] item = todo.split(" ");
                String formatData = year+"-"+month+"-"+day+" "+item[0]+":00";
                Date firstData = simpleDateFormat.parse(formatData);
                List<Map<String,String>> sendData = new ArrayList<>();
                String[] sends = todo.split(";");
                int i = 0;
                for (String send : sends) {
                    Map<String,String> map = new HashMap<>();
                    List<String> strings = Arrays.asList(send.split(" "));
                    if (i==0){
                        map.put("receive",strings.get(1));
                        map.put("content",strings.get(2));
                    }else {
                        map.put("receive",strings.get(0));
                        map.put("content",strings.get(1));
                    }
                    sendData.add(map);
                    i++;
                }
                createTask(firstData,sendData);
            }
        }
    
        private static int queryProcessCount(String processName) throws IOException {
            int count = 0;
            Runtime runtime = Runtime.getRuntime();
            List<String> tasklist = new ArrayList<>();
            Process process = runtime.exec("tasklist");
            BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String s;
            while ((s = br.readLine()) != null) {
                if ("".equals(s)) {
                    continue;
                }
                tasklist.add(s);
            }
            for (String taskName : tasklist) {
                if (taskName.contains(processName)){
                    count++;
                }
            }
            return count;
        }
        private static void createTask(Date firstData,List<Map<String,String>> sendData){
            if (firstData.getTime()-System.currentTimeMillis()<0){
                //        让错过的时间延后配置的间隔时间执行
                firstData = new Date(firstData.getTime()+SECTION);
            }
            new Timer().scheduleAtFixedRate(new java.util.TimerTask() {
                @Override
                public synchronized void run() {
                    try {
                        openWeChat();
                        for (Map<String, String> sendDatum : sendData) {
                            sendMsg(sendDatum.get("receive"),sendDatum.get("content"));
                            Thread.sleep(500);
                        }
                        closeWeChat();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            },firstData.getTime() - System.currentTimeMillis(),SECTION);
        }
    
        public static void setSysClipboardFile(String imageUrl) throws IOException {
            Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
            if (imageUrl.contains("\\")){
                imageUrl = imageUrl.replace("\\","/");
            }
            imageUrl = imageUrl.replace("img(","");
            imageUrl = imageUrl.substring(0, imageUrl.length() - 1);
            Image image = ImageIO.read(new File(imageUrl));
            Transferable trans = new Transferable() {
                @Override
                public Object getTransferData(DataFlavor flavor)
                        throws UnsupportedFlavorException {
                    if (isDataFlavorSupported(flavor)) {
                        return image;
                    }
                    throw new UnsupportedFlavorException(flavor);
                }
    
                @Override
                public DataFlavor[] getTransferDataFlavors() {
                    return new DataFlavor[] { DataFlavor.imageFlavor };
                }
    
                @Override
                public boolean isDataFlavorSupported(DataFlavor flavor) {
                    return DataFlavor.imageFlavor.equals(flavor);
                }
            };
            clip.setContents(trans, null);
        }
    
        public static void setSysClipboardText(String writeMe) {
            Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
            Transferable tText = new StringSelection(writeMe);
            clip.setContents(tText, null);
        }
    
        private static void openWeChat() throws AWTException {
            Robot robot = RobotManager.getInstance();
    //        robot.keyPress(KeyEvent.VK_WINDOWS);
    //        robot.keyPress(KeyEvent.VK_D);
    //        robot.keyRelease(KeyEvent.VK_WINDOWS);
    //        robot.keyRelease(KeyEvent.VK_D);
    //        先使用win+D快捷键保证微信为最小化状态,再使用微信默认快捷键打开微信nihao2
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_ALT);
            robot.keyPress(KeyEvent.VK_W);
            robot.keyRelease(KeyEvent.VK_CONTROL);
            robot.keyRelease(KeyEvent.VK_ALT);
            robot.keyRelease(KeyEvent.VK_W);
            robot.delay(100);
        }
    
        /**
         * 发送消息
         * @param receive 接收消息者
         * @param msg 消息内容
         */
        private static void sendMsg(String receive,String msg) throws Exception {
            Robot robot = RobotManager.getInstance();
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_F);
            robot.keyRelease(KeyEvent.VK_CONTROL);
            robot.keyRelease(KeyEvent.VK_F);
            inputEnter(receive);
            inputEnter(msg);
        }
    
        private static void closeWeChat() throws AWTException {
            Robot robot = RobotManager.getInstance();
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_ALT);
            robot.keyPress(KeyEvent.VK_W);
            robot.keyRelease(KeyEvent.VK_CONTROL);
            robot.keyRelease(KeyEvent.VK_ALT);
            robot.keyRelease(KeyEvent.VK_W);
        }
    
        private static void inputEnter(String msg) throws Exception {
            Robot robot = RobotManager.getInstance();
            if (msg.contains("img(")){
                setSysClipboardFile(msg);
            }else {
                setSysClipboardText(msg);
            }
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_V);
            robot.keyRelease(KeyEvent.VK_CONTROL);
            robot.keyRelease(KeyEvent.VK_V);
            robot.delay(1000);
            robot.keyPress(KeyEvent.VK_ENTER);
            robot.keyRelease(KeyEvent.VK_ENTER);
            robot.delay(500);
        }
    
        public static class RobotManager{
            private static Robot robot;
    
            public static Robot getInstance() throws AWTException {
                if (robot==null){
                    robot = new Robot();
                }
                return robot;
            }
        }
    
        public static List<String> getResouce() throws Exception {
            StringBuilder result = new StringBuilder();
            //读取桌面Txt文件,桌面路径与文件名根据需要修改
            FileReader reader = new FileReader("C:\\Users\\xjt\\Desktop\\sendmag.txt", StandardCharsets.UTF_8);
            BufferedReader br = new BufferedReader(reader);
            String temp;
            while((temp = br.readLine())!=null){//使用readLine方法,一次读一行
                result.append(temp);
            }
            br.close();
            reader.close();
            return Arrays.asList(result.toString().split("\\*"));
        }
    }
    
    

    配置信息

    需要用到的桌面文本文件配置信息内容

    11:14 接收者名称 发送内容;xjt(接收者名称) img(C:\Users\Hasee\Desktop\checkcode.jpg);文件传输助手 内容*
    11:15 xjt nihao2*
    11:16 xjt nihao3
    

    配置文件分析

    配置符号由代码中定义。可根据需要进行修改优化

    *:当前时间运行任务结束符,最后一个任务不需要结束符
    ;:每个任务的间隔符
    空格:时间与接受者名称与内容的分隔符
    img():当内容为图片时指定的图片本地绝对地址

    使用方式

    1. 复制上述代码内容为一个名为TimerTask.java文件
    2. 修改文件中,当前环境配置文件指定地址

    在这里插入图片描述

    执行编译运行命令

    编译

    javac -encoding UTF-8 TimerTask.java
    

    开始运行

    java TimerTask
    

    或者直接在ide开发工具中运行

    注:

    在jdk11版本之前getResouce静态方法中有一个api是不支持的。可以将getResouce静态方法替换如下。

        public static List<String> getResouce() throws Exception {
            StringBuilder result = new StringBuilder();
            FileInputStream fis = new FileInputStream("C:\\Users\\25842\\Desktop\\sendmsg.txt");
            BufferedReader br = new BufferedReader(new InputStreamReader(fis, StandardCharsets.UTF_8));
            String line;
            while ((line = br.readLine()) != null) {
                result.append(line);
            }
            fis.close();
            return Arrays.asList(result.toString().split("\\*"));
        }
    
    展开全文
  • 微信定时自动发送消息的小工具-python-itchat

    万次阅读 多人点赞 2018-06-13 15:56:42
    - itchat提供微信API接口,实现进行向群组发送消息; - apscheduler提供定时器功能。 代码下载请到我的github仓库。 设计目的 最开始只是想能不能做一个程序,可以定时在周二,四,六晚上10点半提醒组员们上传...

    摘要

    本程序实现定时向指定微信群发送指定消息的功能。
    主要工具如下:
    - python2.7编写;
    - itchat提供微信API接口,实现进行向群组发送消息;
    - apscheduler提供定时器功能。
    代码下载请到我的github仓库

    设计目的

    最开始只是想能不能做一个程序,可以定时在周二,四,六晚上10点半提醒组员们上传日志,所以就开始了搜索。发现itchat这个超级好用的工具,在apscheduler的加持下最终编了这么一个程序。灵感总是来源于生活….

    当然itchat的功能远不止是发送个群消息而已,它提供的微信API接口还可以做很多有意思的东西,比如最常见的机器人自动回复,还可以接入其他应用程序接口用微信号做一些小应用(如自动播放歌曲,返回天气信息等)。

    依赖条件

    Written in python2.7.12
    - itchat 1.3.10
    - APScheduler 3.5.1

    功能描述

    定义文件中的发送时间time,发送群组名roomName,发送消息context(消息中含中文字符时应该使用unicode编码)。
    运行后会在time对应时间,往roomName对应群组,发送context对应的消息。

    使用方法

    • 修改onTimeMsgSenderToChatroom.py文件中的timeroomNamecontext设置为自己需要的参数。具体参考如下:
    roomName = u'两张王'
    context=u'该消息由程序自动发送'
    time = {'day_of_week':'*','hour':12,'minute':34,'second':26}
    • 运行python onTimeMsgSenderToChatroom.py;
    • 扫描QR码,自动登陆成功后,等待信息自动发送即可。

    示例

    以下是用按照上述设置运行源代码向微信群发送的消息的截图。

    msgOnTimeSenderTest

    源代码

    需要下载请到我的github

    # -*- coding:utf-8 -*-
    
    import itchat
    from datetime import datetime
    from apscheduler.schedulers.blocking import BlockingScheduler
    
    
    class onTimeSender(object):
        '''
        Automatically send message to chatroom on time according to user's predefinition.
        params:
            `roomName`: The name of chatroom you want to send message to;
            `context`: The message you want to send to chatroom;
            `time`: Time to send out message, in form of a dict.
        Usage:
            Please refer to the __main__ function part.
        '''
        def __init__(self,roomName='',context='',time={}):
            self.roomName=roomName
            self.context=context
            self.time=time  
            itchat.auto_login(hotReload=True,loginCallback=self.loginCallback,exitCallback=self.exitCallback)
            self.schedulerForSender()
    
        def sendChatroomMsg(self,roomName,context):
            itchat.get_chatrooms(update=True)
            roomNickName = roomName
            candidates = itchat.search_chatrooms(roomNickName)
            print candidates
            username = ''
            for candidate in candidates:
                if candidate['NickName'] == roomNickName:
                    username = candidate['UserName']
                    break
            if username:
                sendtime = datetime.now().strftime('%A %B %d,%Y')#Tue June 08,2018
                sendtime = datetime.now().strftime('%m-%d-%Y %H:%M:%S,%A')
                msg = context + "Sending in "+sendtime
                print "Ready to send message to group %s,message as follows : \n%s"%(roomName,msg)
                itchat.send_msg(msg=msg,toUserName=username)
    
        def loginCallback(self):
            print "Successfully logged in."
    
        def exitCallback(self):
            print "Successfully logged out."
    
    
        def sendMsgToChatRoom(self):
            self.sendChatroomMsg(self.roomName,self.context)
    
        def schedulerForSender(self):
            # scheduler setup
            scheduler = BlockingScheduler()
            scheduler.add_job(self.sendMsgToChatRoom,'cron',day_of_week=self.time['day_of_week'],hour=self.time['hour'],minute=self.time['minute'],second=self.time['second'])# sending takes 4 seconds behind
            scheduler.start()
    
    if __name__=='__main__':
    
        roomName = 'DVS_Group'
        context = u'通知上传日志'
        time = {'day_of_week':'tue,thu,sat','hour':22,'minute':24,'second':56}
        '''for testing
        roomName = u'两张王'
        context=u'该消息由程序自动发送'
        time = {'day_of_week':'*','hour':12,'minute':34,'second':26}
        '''
        onTimeSender(roomName,context,time)

    参考文献

    apscheduler使用
    itchat使用文档

    展开全文
  • Python:微信定时发送消息
  • 主要介绍了Python开发企业微信机器人每天定时发消息实例,需要的朋友可以参考下
  • **文章简介 **:本篇文章主要讲解利用itchat实现一个自动群发祝福语的效果啦。 ???? **文章源码获取 **: 为了感谢每一个关注我的小可爱????每篇文章的项目源码都是无偿分 享滴???????????????????? 点这里蓝色...
  • 利用python在微信中实现一个定时发送消息的功能发布时间:2020-11-25 14:33:47来源:亿速云阅读:92作者:Leah今天就跟大家聊聊有关利用python在微信中实现一个定时发送消息的功能,可能很多人都不太了解,为了让...
  • Java实现微信定时发消息
  • 由于办公需要“每天定时推送某消息用来提醒群里面所有人”,于是决定用企业微信自带的机器人来实现此功能。具体方法我来一一讲述。 2、企业微信API 具体见官网说明:...
  • 微信自动发送消息

    千次阅读 2021-01-19 20:15:11
    利用Python调用win32库操作微信窗口句柄定时发送消息文本的发送表格的发送 首先,定时发送消息,一般发送内容主要包括文本、表格和图像。因此本文主要讲解文本、表格和图像发送 文本的发送 发送文本,主要是将文字...
  • python有很多有趣的库,其中wxpy是连接微信的接口,具体可以查看官方文档。可以实现自动操作,wxpy 支持 Python 3.4-3.6,以及 2.7 版本。 一、安装 win10环境,直接在cmd中,输入 pip install wxpy 有时网络不...
  • 如何实现微信自动发送消息

    千次阅读 2021-03-15 21:13:41
    《锤锤微信定时后台发送消息V1.0》使用教程:首先登陆电脑版微信,打开锤锤微信定时后台发送消息的工具微商必备软件利器然后分别获取我们需要发送是文字消息,图片消息(还可以是音乐文件,程序,文档,动图,视频等)...
  • Hi~ o( ̄▽ ̄)ブ 我又双叒叕来啦~ 等你很久啦~ NOTE:楼主 11岁女学生,文笔(排版风格)不好别介意啦~ 今天嘛....是个特别的日子---我哥们儿的12岁生日!...定时自动发送微信消息的程序!!! Emmm.
  • 企业微信定时发送文本消息 使用工具:企业微信机器人+python可执行文件+计算机管理中的任务计划程序 第一步:创建群机器人 选择群聊,单击鼠标右键,添加群机器人。 建立群机器人后,右键查看机器人,如下 ...
  • 主要介绍了Python实现企业微信机器人每天定时发消息实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 企业微信机器人定时发送信息

    千次阅读 2022-05-11 13:33:39
    企业微信可以配置机器人,提升办公效率,还能实现一键群发和定时发送等功能。
  • 这里想分享如何每天给女友定时微信发送”晚安“,如果只是晚安,就略显单调,于是爬取金山词霸每日一句,英文和翻译,借此设定定时器进行发送。 准备: pip install wxpy pip install requests 实现代码: ...
  • 实现企业微信机器人自动发消息

    千次阅读 2021-01-31 20:38:48
    起因:每次发布版本都要再打开微信去艾特对应的负责人,这一步挺机械的,看到运维群有机器人自动发消息,查了下有开放API可自定义消息。https://work.weixin.qq.com/api/doc/90000/90135/90239 ''' Date: 2021-01-...
  • 主要介绍了基于Python实现定时自动微信好友发送天气预报的实现代码,,需要的朋友可以参考下
  • 需要用到微信win端,使用vb语言- >编码->任务定时器 本人观看其他博主https://blog.csdn.net/qq_41311259/article/details/118482555制作的vb脚本有点bug代码并不能直接运行,本教程可以直接运行 Dim name,...
  • 微信自动发消息机器人实现方法

    万次阅读 2021-02-07 16:02:12
    微信自动发消息机器人实现方法 1.打开 浏览器; 2.访问微信网页版,并扫描登录; 3.在左侧找到该联系人,选中后对话,右侧会显示进入聊天窗口; 4.把你要发的内容写在输入框内,恩,不要点「发送(Send)」; 5....
  • vbs实现微信自动发送消息功能

    千次阅读 2021-09-12 21:16:35
    vbs实现微信自动发送消息功能 欢迎使用Markdown编辑器 On Error Resume Next Dim wsh,ye set wsh=createobject(“wscript.shell”) for i=1 to 20 wscript.sleep 700 wsh.AppActivate(“无感”) 'QQ或微信聊天窗口...
  • 微信小程序订阅消息定时发送消息

    千次阅读 2022-01-28 21:10:20
    微信小程序订阅消息定时发送消息 本人专注使用云开发,实现一个前端可以做后端以及整个项目的部署与上线。 如果觉得我讲的好就可以给我点个赞。也可以加我微信了解详情。 1.我们先要了解什么是订阅消息 而现在小...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,484
精华内容 5,793
关键字:

微信定时自动发送消息