精华内容
下载资源
问答
  • 飞信可以免费给其他人发送短信,最近发现还可以定时发送短信,当然也可以给自己发送。 首先点击飞信下方的“短信中心”图标,在弹出的界面点击“定时发送”按钮就可以设置定时发送啦! 当然还有其他功能,如...

    飞信可以免费给其他人发送短信,最近发现还可以定时发送短信,当然也可以给自己发送。

    首先点击飞信下方的“短信中心”图标,在弹出的界面点击“定时发送”按钮就可以设置定时发送啦!

    当然还有其他功能,如生日提醒、我的课程、日程管理等等。

    唯一不足之处就是有短信数量限制!呵呵!

     

    展开全文
  • 这系列文章主要讲述,如何通过Python爬取招聘信息,且爬取的日期为当前天的,同时将爬取的内容保存到数据库中,然后制作定时系统每天执行爬取,最后是Python调用相关库发送短信到手机。整个系列主要分为五部分,共五...
            这系列文章主要讲述,如何通过Python爬取招聘信息,且爬取的日期为当前天的,同时将爬取的内容保存到数据库中,然后制作定时系统每天执行爬取,最后是Python调用相关库发送短信到手机。
            最近研究了数据库的定时计划备份,联系爬虫简单做了这个实验,虽然方法是基于单机,比较落后,但可行,创新也比较好。整个系列主要分为五部分,共五篇文章:
            1.Python爬取招聘信息,并且存储到MySQL数据库中;
            2.调用pyinstaller包将py文件打包成exe可执行文件;
            3.设置Windows系统的计划,制作定时任务,每天早上定时执行exe爬虫;
            4.结合PHP(因毕业设计指导学生的是PHP系统)简单实现前端招聘信息界面;
            5.补充知识:Python调用短信猫发送招聘短信到客户手机,研究ing。
            文章比较基础好玩,希望对您有所帮助,如果文章中存在错误或不足之处。


    一. 运行结果

            爬取地址为智联招聘网站:http://sou.zhaopin.com/


            爬取结果存储至MySQL数据库如下图所示,注意只有4月22日的信息。


            运行结果及保存TXT文件如下所示:




    二. BeautifulSoup爬虫详解

            完整代码如下所示:

    # -*- coding: utf-8 -*-
    """
    Created on 2017-04-22 15:10
    
    @author: Easstmount
    """
    
    import urllib2 
    import re 
    from bs4 import BeautifulSoup
    import codecs
    import MySQLdb
    import os
    
    
    #存储数据库
    #参数:职位名称 公司名称 职位月薪 工作地点 发布时间 职位链接
    def DatabaseInfo(zwmc, gsmc, zwyx, gzdd, gxsj, zwlj):  
        try:  
            conn = MySQLdb.connect(host='localhost',user='root',
                                 passwd='123456',port=3306, db='eastmount')  
            cur=conn.cursor() #数据库游标  
      
            #报错:UnicodeEncodeError: 'latin-1' codec can't encode character  
            conn.set_character_set('utf8')  
            cur.execute('SET NAMES utf8;')  
            cur.execute('SET CHARACTER SET utf8;')  
            cur.execute('SET character_set_connection=utf8;')
    
            #SQL语句 智联招聘(zlzp)
            sql = '''insert into eastmount_zlzp 
                        (zwmc,gsmc,zwyx,gzdd,gxsj,zwlj) 
                    values(%s, %s, %s, %s, %s, %s)'''
    
            cur.execute(sql, (zwmc, gsmc, zwyx, gzdd, gxsj, zwlj))
            print '数据库插入成功'            
            
        #异常处理  
        except MySQLdb.Error,e:  
            print "Mysql Error %d: %s" % (e.args[0], e.args[1])  
        finally:  
            cur.close()    
            conn.commit()    
            conn.close()  
        
    
    #爬虫函数
    def crawl(url):
        page = urllib2.urlopen(url) 
        contents = page.read() 
        soup = BeautifulSoup(contents, "html.parser") 
        print u'贵阳JAVA招聘信息: 职位名称 \t 公司名称 \t 职位月薪 \t 工作地点 \t 发布日期 \n'
        infofile.write(u"贵阳JAVA招聘信息: 职位名称 \t 公司名称 \t 职位月薪 \t 工作地点 \t 发布日期  \r\n")
        print u'爬取信息如下:\n'
    
        i = 0
        for tag in soup.find_all(attrs={"class":"newlist"}):
            #print tag.get_text()
            i = i + 1
            
            #职位名称
            zwmc = tag.find(attrs={"class":"zwmc"}).get_text()
            zwmc = zwmc.replace('\n','')
            print zwmc
            #职位链接
            url_info = tag.find(attrs={"class":"zwmc"}).find_all("a")
            #print url_info
            #url_info.get(href) AttributeError: 'ResultSet' object has no attribute 'get' 
            for u in url_info:
                zwlj = u.get('href')
                print zwlj
            #公司名称
            gsmc = tag.find(attrs={"class":"gsmc"}).get_text()
            gsmc = gsmc.replace('\n','')
            print gsmc
            #find另一种定位方法 <td class="zwyx">8000-16000</td>
            zz = tag.find_all('td', {"class":"zwyx"})
            print zz
            #职位月薪
            zwyx = tag.find(attrs={"class":"zwyx"}).get_text()
            zwyx = zwyx.replace('\n','')
            print zwyx
            #工作地点
            gzdd = tag.find(attrs={"class":"gzdd"}).get_text()
            gzdd = gzdd.replace('\n','')
            print gzdd
            #发布时间
            gxsj = tag.find(attrs={"class":"gxsj"}).get_text()
            gxsj = gxsj.replace('\n','')
            print gxsj
            #获取当前日期并判断写入文件
            import datetime
            now_time = datetime.datetime.now().strftime('%m-%d') #%Y-%m-%d
            #print now_time
            if now_time==gxsj:
                print u'存入文件'
                infofile.write(u"[职位名称]" + zwmc + "\r\n")
                infofile.write(u"[公司名称]" + gsmc + "\r\n")
                infofile.write(u"[职位月薪]" + zwyx + "\r\n")
                infofile.write(u"[工作地点]" + gzdd + "\r\n")
                infofile.write(u"[发布时间]" + gxsj + "\r\n")
                infofile.write(u"[职位链接]" + zwlj + "\r\n\r\n")  
            else:
                print u'日期不一致,当前日期: ', now_time
            
            #####################################
            # 重点:写入MySQL数据库
            #####################################
            if now_time==gxsj:
                print u'存入数据库'
                DatabaseInfo(zwmc, gsmc, zwyx, gzdd, gxsj, zwlj)
            
            print '\n\n'
    
        else:
            print u'爬取职位总数', i
            
            
    #主函数
    if __name__ == '__main__':
        
        infofile = codecs.open("Result_ZP.txt", 'a', 'utf-8')     
        #翻页执行crawl(url)爬虫
        i = 1  
        while i<=2:  
            print u'页码', i
            url = 'http://sou.zhaopin.com/jobs/searchresult.ashx?in=160400&jl=%E8%B4%B5%E9%98%B3&kw=java&p=' + str(i) + '&isadv=0'  
            crawl(url)  
            infofile.write("###########################\r\n\r\n\r\n")  
            i = i + 1
            
        infofile.close()
    
    
    
            安装Beautifulsoup如下图所示,使用pip install bs4即可。


            重点是分析智联招聘的DOM树结构。
            1.分析URL
            URL为:http://sou.zhaopin.com/jobs/searchresult.ashx?in=160400&jl=%E8%B4%B5%E9%98%B3&kw=java&p=2&isadv=0
            其中,"in=160400" 表示 "行业类别" 选择"计算机软件"(可以多选);"jl=贵阳" 表示工作地点选择贵阳市;"kw=java" 表示职位选择Java相关专业;"p=2" 表示页码,main函数通过循环分析爬取。


            2.分析DOM树节点
            然后浏览器右键审查元素,可以看到每行职位信息都是在HTML中都是一个<table></table>,其中class为newlist。
            核心代码:for tag in soup.find_all(attrs={"class":"newlist"}):
            定位该节点后再分别爬取内容,并赋值给变量,存储到MySQL数据库中。



            3.具体内容分析
            获取职位名称代码如下:
            zwmc = tag.find(attrs={"class":"zwmc"}).get_text()
            print zwmc

            另一段代码,会输出节点信息,如:
            zz = tag.find_all('td', {"class":"zwyx"})
            print zz
            #<td class="zwyx">8000-16000</td>

            对应的HTML DOM树分析如下图所示。


            4.判断为当前日期则保存到TXT和MySQL中,这是为了后面方便,每天爬取最新的信息并周期执行,然后发送短信给手机。我也是佩服自己的大脑,哈哈~

            参考前文,并推荐官网。
            Python爬虫之Selenium+BeautifulSoup+Phantomjs专栏
            [python知识] 爬虫知识之BeautifulSoup库安装及简单介绍
            [python爬虫] BeautifulSoup和Selenium对比爬取豆瓣Top250电影信息


    三. 数据库操作

            SQL语句创建表代码如下:

    CREATE TABLE `eastmount_zlzp` (  
      `ID` int(11) NOT NULL AUTO_INCREMENT,  
      `zwmc` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '职位名称',  
      `gsmc` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '公司名称',  
      `zwyx` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '职位月薪',  
      `gzdd` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '工作地点',  
      `gxsj` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '发布时间',
      `zwlj` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '职位链接',
    	`info` varchar(200) COLLATE utf8_bin DEFAULT NULL COMMENT '详情', 
      PRIMARY KEY (`ID`)  
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;  
            显示如下图所示:


            其中,Python调用MySQL推荐下面这篇文字。
            [python] 专题九.Mysql数据库编程基础知识
            核心代码如下所示:

    # coding:utf-8 
    import MySQLdb
     
    try:
        conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',port=3306, db='test01')
        cur=conn.cursor()
        
        #插入数据
        sql = '''insert into student values(%s, %s, %s)'''
        cur.execute(sql, ('yxz','111111', '10'))
    
        #查看数据
        print u'\n插入数据:'
        cur.execute('select * from student')
        for data in cur.fetchall():
            print '%s %s %s' % data
        cur.close()
        conn.commit()
        conn.close()
    except MySQLdb.Error,e:
         print "Mysql Error %d: %s" % (e.args[0], e.args[1])

            后面还将继续探寻、继续写文,写完这种单击版的定时发送功能,后面研究Python服务器的相关功能。最后希望文章对你有所帮助,如果文章中存在错误或不足之处,还请海涵~
            太忙了,但是年轻人忙才好,多经历多磨砺多感悟;想想自己都是下班在学习,配女神的时候学习,真的有个好贤内助。胡子来省考,晚上陪他们吃个饭。感觉人生真的很奇妙,昨天加完班走了很远给女神一个91礼物和一个拼图,感觉挺开心的。生活、教学、编程、爱情,最后献上一首最近写的诗,每句都是近期一个故事。
            风雪交加雨婆娑,
            琴瑟和鸣泪斑驳。
            披星戴月辗转梦,
            娜璋白首爱连绵。

            同时准备写本python书给我的女神,一直没定下来,唯一要求就是她的署名及支持。
          (By:Eastmount 2017-04-22 下午4点  http://blog.csdn.net/eastmount/

     

    展开全文
  • java web实现定时任务

    2015-10-14 10:45:03
    本文章记录如何实现web项目启动之后,自动运行我们设置定时任务的案例   首先定义自己的Task(即自启动所要执行的方法)  我这里所要执行的是一段自动发送短信的代码,大家可以根据自己的需求自由订制,只...

    本文章记录如何实现web项目启动之后,自动运行我们设置的定时任务的案例

     

    • 首先定义自己的Task(即自启动所要执行的方法)

       我这里所要执行的是一段自动发送短信的代码,大家可以根据自己的需求自由订制,只需要在run()中实现自己需要执行的任务即可

     

    package com.jr.p2p.manager.sendmessage;
    
    import java.util.TimerTask;
    
    import javax.annotation.Resource;
    
    import org.springframework.web.bind.annotation.RestController;
    
    import com.jr.p2p.framework.system.service.SystemParamService;
    import com.jr.p2p.manager.noteinfo.service.NoteInfoService;
    @RestController
    public class NoteInfoTimer extends TimerTask
    {
        /**
         * 短信发送服务接口
         */
        @Resource
        private NoteInfoService noteInfoService;
        
        @Resource
        private SystemParamService systemParamService;
        
        @Override
        public void run()
        {
           //提醒日短信模版
           String repayContent = systemParamService.queryValueByParamKey("repayment_msg_content");
           //逾期提醒短信模版
           String overRepayContent = systemParamService.queryValueByParamKey("repayment_over_msg_content");
           //是否关闭新标上线短信提醒
           String closeNewSubjectInfo = systemParamService.queryValueByParamKey("close_send_newsubject_msg");
           //新标上线模版自动生成,此处可传空字符串
           if("no".equalsIgnoreCase(closeNewSubjectInfo)){
        	   noteInfoService.sendNewSubjectsInfo("新标上线了");
           }
           noteInfoService.sendRepayDateInfo(repayContent);
           noteInfoService.sendOverDateInfo(overRepayContent);
        }
    
    }
    

     

     

    • 指定第一次执行的时间,以及每次执行的时间间隔

       new Timer().schedule(task, firstTime, delayTime) :

       task :即为我们在上面自定义的task

       firstTime:为第一次执行的时间,可以为Date(第一次执行的日期), long(web启动后延迟多少毫秒运行)

       delayTime:为每隔多久自动执行(毫秒数)、

     

       这里我实现了第一次执行的时间可配置,通过getSmsSendTime()方法从数据库中读取我们规定第一次执行的时间并返回一个Date类型

     

    package com.jr.p2p.manager.sendmessage;
    
    import java.util.Date;
    import java.util.Timer;
    
    import org.apache.commons.lang.StringUtils;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RestController;
    
    import com.jr.p2p.common.util.YunTuDateUtils;
    import com.jr.p2p.framework.system.service.SystemParamService;
    @RestController
    public class MessageSend
    {
        private static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
    
    	@Autowired
        private NoteInfoTimer noteInfoTimer;
        
        @Autowired
        private SystemParamService systemParamService;
        
        public void timeStart(){
        	Date smsSendTime = getSmsSendTime();
            new Timer().schedule(noteInfoTimer, smsSendTime,1000*3600*24);
        }
    
    	private Date getSmsSendTime() 
    	{
    		Date result = new Date();
    		String todayTimeStr = YunTuDateUtils.date2String(result, DEFAULT_DATE_FORMAT);
    		todayTimeStr = todayTimeStr.substring(0, todayTimeStr.indexOf(" "));
    		
    		String smsSendTime = systemParamService.queryValueByParamKey("sms_send_time");
    		if(StringUtils.isEmpty(smsSendTime))
    		{
    			smsSendTime = "10:00:00";
    		}
    		else
    		{
    			smsSendTime = smsSendTime.trim();
    		}
    		if (YunTuDateUtils.string2Date(todayTimeStr + " " + smsSendTime, DEFAULT_DATE_FORMAT) == null) 
    		{
    			smsSendTime = "10:00:00";
    		}
    		
    		result = YunTuDateUtils.string2Date(todayTimeStr + " " + smsSendTime, DEFAULT_DATE_FORMAT);
    		if (result.getTime() < new Date().getTime())
    		{
    			result = YunTuDateUtils.addDay(result, 1);
    		}
    		return result;
    	}
    }
    

     

     

    • 实现web的监听类(即为我们在web配置需要监听的那个类)

       定义自己的监听类需要实现ServletContextListener接口并实现contextInitialized()方法,容器销毁时

    contextDestroyed()的方法,这里未做具体实现,有需要的可以自行定义

    package com.jr.p2p.manager.listerner;
    
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.web.context.support.WebApplicationContextUtils;
    
    import com.jr.p2p.manager.sendmessage.MessageSend;
    
    public class TimeListener implements ServletContextListener{
    
    	//application容器初始化监听函数
    	@Override
    	public void contextInitialized(ServletContextEvent sce) {
    		// 获取容器与相关的Service对象
    		ApplicationContext ac=WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());
    		MessageSend messageSend =  (MessageSend)ac.getBean("messageSend");
    		messageSend.timeStart();
    		System.out.println("------------>已启动定时器服务类<------------");
    			
    	}
    
    	@Override
    	public void contextDestroyed(ServletContextEvent sce) {
    		 
    		
    	}
    
    }
    

     

     

    • 配置web.xml文件

       这里就是配置我们的监听类,非常重要的一点一定要牢记:

    用于做初始化工作的监听器,一定要配置到Spring的ContextLoaderListener之后,因为要用到Spring的容器对象

    <listener>
    	  <listener-class>com.jr.p2p.manager.listerner.TimeListener</listener-class>
    	</listener>

     

    以上即为整个的实现流程,所有内容用于个人总结,如有不恰当的请包含!

     

    展开全文
  • 需求: 在一个平台上有着多家企业,企业的边缘应用每个时刻...每个用户都可以设置告警消息接收间隔,如何实现对每个订阅用户的精准推送? 整体流程: 1、定时任务每隔1分钟执行一次; 2、查询当前分钟的异常记..

    需求:

    在一个平台上有着多家企业,企业的边缘应用每个时刻都可能生成异常告警消息,一旦有告警消息,系统应发送给订阅该消息的指定用户,用户可选择订阅每隔多少分钟接收告警消息。

    注:每个企业可以添加任意多个用户,用户根据手机号进行区别,用户可以通过微信公众号的H5应用将手机号和微信openid绑定。消息类型包括微信模板消息告警和短信告警。

     

    难点:

    每个用户都可以设置告警消息接收间隔,如何实现对每个订阅用户的精准推送?

     

    整体流程:

    1、定时任务每隔1分钟执行一次;

    2、查询当前分钟的异常记录,并根据公司id进行分组companyAry;

    3、遍历companyAry;

    4、获取每个公司的所有订阅用户;

    5、根据用户的订阅间隔X判断当前是否需要对该用户发送告警消息,如果是,则添加该用户到消息接收者数组中;

    6、根据消息接收者数组发送告警消息;

    设计思路:

    1、首先要确定时间刻度的选择,有两种实现方式:

    a.以系统时间为刻度,每天的零点零分为第0分钟,然后根据当前时分计算出当前是1天的第Y分钟,然后遍历用户的订阅间隔X,拿Y对X取余,余数为零,则对该用户发送消息;

    b.以系统启动时刻为零刻度T,每个一分钟,T+1,然后每次拿T读X取余,余数为零,则发送消息。此方法的需要格外注意的是:T+1在哪里执行,又存储在哪里,可以单独开一个定时任务执行此操作,该参数可以存储在缓存中。

     

    思考?

    当前设计瓶颈在哪?海量用户如何实现?

     

    展开全文
  • node.js 模拟自动发送邮件验证码 ...我们在开发网站时,发送验证码的功能是必定会遇到的,但发送短信验证码是需要付费的,那么邮箱验证码就是一个白嫖的好办法,今天就来教大家用node如何自动发送邮箱验.
  • 最近有个需求,就是定时检查一个数据库表格中的条目,一旦条目增加及时报告给管理员来处理。于是,我想到了用一个脚本来实现数据的获取、比对、处理和邮件发送(139邮箱可以设置免费短信报警,很实用的功能)。
  • dtu固件参考手册

    2019-01-22 10:40:22
    是否支持短信或电话配置参数或更新答:支持,客户预定义电话,短信短信内容,指定电话打电话或者发短信内容为指定内容即可远程更新参数。是否发送完成返回标志给MCU?答:支持,在MCU控制模式的时候,发送数据成功后...
  • C# winform典型系统开发模板

    热门讨论 2011-09-17 15:13:21
     9.3.3 已发送短信管理 213  9.3.4 接收短信实现 215  9.3.5 常用联系人管理 219  9.3.6 常用短语管理 221 第10章 桌面精灵模块   10.1 概述 226  10.2 关键技术 226  10.2.1 阴阳历...
  • C#开发典型模块大全

    2014-03-12 18:11:22
    9.3.3 已发送短信管理 213 9.3.4 接收短信实现 215 9.3.5 常用联系人管理 219 9.3.6 常用短语管理 221 第10章 桌面精灵模块 10.1 概述 226 10.2 关键技术 226 10.2.1 阴阳历转换算法 226 10.2.2 ...
  • 支持报警短信转发,支持多个接收手机号码,可设定发送间隔,比如即时发送或者6个小时发送一次所有的报警信息,短信内容过长,自动拆分多条短信。 支持报警邮件转发,支持多个接收邮箱,可设定发送间隔,比如即时发送...
  • 实例047 如何为MDI类型窗体设置背景图片 91 实例048 向提示框中添加图标 93 实例418 通过串口发送数据 95 实例419 通过串口关闭对方计算机 98 实例420 密码写入与读出加密狗 101 实例421 使用加密狗进行...
  • 6.5 通过短信发送e-mail通知 316 6.6 手机拨接状态 321 6.7 有来电,发送邮件通知 324 6.8 存储卡剩余多少容量 326 6.9 访问本机内存与存储卡 329 6.10 实现可定时响起的闹钟 335 6.11 黑名单...
  • 定价规则可以方便导入导出,如果您不懂设置价格规则,我们可以帮助你设置,然后把价格规则发送给你,使您解除后顾之忧。同时系统里内置规则中实现了多种收费标准,您可以随意选择使用。 2.2商品折扣定义方便灵活。 ...
  • 实例047 如何为MDI类型窗体设置背景图片 48 实例048 向提示框中添加图标 49 第2章 控件应用 51 2.1 TextBox控件应用 52 实例049 只允许输入数字的TextBox控件 52 实例050 限制用户名称长度及设置密码文本...
  • 完整的手机数据存取功能:铃声模式设置、震动控制、WiFi服务、屏幕旋转、电池计量、温度测量、电信网络信息、SIM卡信息、拨打电话、短信解析、通讯录联系人、电子罗盘、屏幕手写等手机控制功能。 系统服务及研发的...
  • 完整的手机数据存取功能:铃声模式设置、震动控制、WiFi服务、屏幕旋转、电池计量、温度测量、电信网络信息、SIM卡信息、拨打电话、短信解析、通讯录联系人、电子罗盘、屏幕手写等手机控制功能。 系统服务及研发的...
  • 实例192 用代码设置DataGrid控件的列标头 350 实例193 快速将DataGrid控件中的数据显示在 文本框中 351 实例194 在DataGrid控件中实现下拉列表框 353 实例195 使用代码格式化DataGrid控件中的 数据 354 实例...
  • 实例192 用代码设置DataGrid控件的列标头 350 实例193 快速将DataGrid控件中的数据显示在 文本框中 351 实例194 在DataGrid控件中实现下拉列表框 353 实例195 使用代码格式化DataGrid控件中的 数据 354 实例...
  • 实例154 学校间操定时音乐播放 198 4.3 动画播放 199 实例155 播放Flash动画 199 实例156 制作AVI播放器 200 实例157 播放Gif动画 202 4.4 媒体控制 203 实例158 检测是否安装声卡 203 实例159 打开...
  • Visual C++程序开发范例宝典配套光盘,因大小受限,所以分成8部分上传,必须全部下载才能正常解压...实例340 利用短信发送短信 实例341 利用短信远程关闭计算机 12.8 其他程序 实例342 利用神龙卡制作练歌房程序 ...
  • MySQL数据库新建 xboot 数据库,配置文件已开启ddl自动生成表结构但无初始数据,请记得运行导入xboot.sql文件(当报错找不到Quartz相关表时请设置数据库忽略大小写或额外重新导入quartz.sql) 修改配置文件 ...
  • Visual C++程序开发范例宝典配套光盘,因大小受限,所以分成8部分上传,必须 全部下载才能正常解压!...实例340 利用短信发送短信 实例341 利用短信远程关闭计算机 12.8 其他程序 实例342 利用神龙卡制作练歌房...
  • Visual C++程序开发范例宝典配套光盘,因大小受限,所以分成8部分上传,必须全部下载才能正常解压...实例340 利用短信发送短信 实例341 利用短信远程关闭计算机 12.8 其他程序 实例342 利用神龙卡制作练歌房程序 ...
  • Visual C++程序开发范例宝典配套光盘,因大小受限,所以分成8部分上传,必须全部下载才能正常解压...实例340 利用短信发送短信 实例341 利用短信远程关闭计算机 12.8 其他程序 实例342 利用神龙卡制作练歌房程序 ...
  • Visual C++程序开发范例宝典配套光盘,因大小受限,所以分成8部分上传,必须全部下载才能正常解压...实例340 利用短信发送短信 实例341 利用短信远程关闭计算机 12.8 其他程序 实例342 利用神龙卡制作练歌房程序 ...
  • Visual C++程序开发范例宝典配套光盘,因大小受限,所以分成8部分上传,必须全部下载才能正常解压...实例340 利用短信发送短信 实例341 利用短信远程关闭计算机 12.8 其他程序 实例342 利用神龙卡制作练歌房程序 ...
  • 明日科技出版的Visual C++程序开发范例宝典配套光盘,因大小受限,所以分成8部分上传,必须全部下载才能正常...实例340 利用短信发送短信 实例341 利用短信远程关闭计算机 12.8 其他程序 实例342 利用神龙卡制作...
  • Visual C++程序开发范例宝典配套光盘,因大小受限,所以分成8部分上传,必须全部下载才能正常解压...实例340 利用短信发送短信 实例341 利用短信远程关闭计算机 12.8 其他程序 实例342 利用神龙卡制作练歌房程序 ...
  • 5.3 自制发送短信程序——SmsManager与PendingIntent对象 -p160 5.4 自制发送Email程序——Intent在Email上的使用-p165 5.5 自制日历手机数据库——实现SQLiteOpenHelper 5.6 手机震动的节奏——Vibrator对象及周期...
  • 通过短信猫,通过设定好的节假日定时向客户发送友好祝福,改善客户关系。在线售后服务咨询QQ:531838974  充分利用WEB及互联网的特有优势,软件及数据安装在服务器上,可以把服务器托管在电信机房,也可以摆在家中,...

空空如也

空空如也

1 2 3
收藏数 53
精华内容 21
关键字:

如何设置短信定时发送