vcmy current locationn在手机短信是什么意思

 切换风格:
金龙,目前就职于一家软件公司,从事Java和.Net信息安全开发设计。
妮称:jonllen
来自:中国. 湖南. 湘潭
简述:金龙,目前就职于一家软件公司,从事Java和.Net信息安全开发设计。
一个Windows后台服务(.Net的C#版) - 定时访问数据库循环发送手机短信
所谓Windows后台服务,即后台自动运行的程序,一般随操作系统启动而启动,在我的电脑 服务后应用程序 服务里面能看到当前电脑的服务.一般而言,程序上用VC、C++写Windows服务,但是我对这些语言不是很熟,一般编程用C#较多,所以就用C#语言写了一个Windows服务.
其实需求是这样的,做那个报价系统的时候加入了发短信的功能,订单处理完即将发货的时候要发送短信都客户手机上,公司内部员工处理订单超时要自动发短信,群发产品促销信息到客户手机上等,还有定时发送短信的需求,所以最后面决定把发短信的模块独立出来,以后还有什么功能方便一起调用,而最终选择了采用Windows后台服务.
其实Windows服务并不好做到通用,它并不能在用户的界面显示一些什么信息等,它只是在后台默默的处理一些事情,起着辅助的作用.那如何实现发送段信通用调用的接口呢?它们之间的信息又是如何来交互呢?数据库!对,就是它存储数据信息的.而数据库都能很方便的访问操作.把发送短信的后台服务定时去访问一个数据库,而另外任何要发送短信的地方也访问数据库,并插入一条要发送的短信到表里面,稍后Windows后台服务访问该表将此短信发送出去.这可能是一个比较蠢的方法,但实现起来较简单.
首先,由于它是要安装的,所以它运行的时候就需要一个安装类Installer将服务安装到计算机,新建一个后台服务安装类继承自Installer,安装初始化的时候是以容器进行安装的,所以还要建立ServiceProcessInstaller和ServiceInstaller服务信息组件添加到容器安装,在Installer类增加如下代码:
private ponentModel.IContainer components = null;private System.ServiceProcess.ServiceProcessInstaller spIprivate System.ServiceProcess.ServiceInstaller sIprivate void InitializeComponent(){components = new ponentModel.Container();// 创建ServiceProcessInstaller对象和ServiceInstaller对象this.spInstaller = new System.ServiceProcess.ServiceProcessInstaller();this.sInstaller = new System.ServiceProcess.ServiceInstaller();// 设定ServiceProcessInstaller对象的帐号、用户名和密码等信息this.spInstaller.Account = System.ServiceProcess.ServiceAccount.LocalSthis.spInstaller.Username = null;this.spInstaller.Password = null;// 设定服务名称this.sInstaller.ServiceName = "SendMessage";sInstaller.DisplayName = "发送短信服务";sInstaller.Description = "一个定时发送短信的服务";// 设定服务的启动方式this.sInstaller.StartType = System.ServiceProcess.ServiceStartMode.Athis.Installers.AddRange(new System.Configuration.Install.Installer[] { this.spInstaller, this.sInstaller });}
再添加一个服务类继承自ServiceBase,我们可以重写基类的OnStart、OnPause、OnStop、OnContinue等方法来实现我们需要的功能并设置指定一些属性.由于是定事发送短信的服务,自然少不了Windows记时器,在OnStart事件里我们写入服务日志,并初始化记时器.
private System.Timers.Tprivate static readonly string CurrentPath = Application.StartupPath + "\\";protected override void OnStart(string[] args){string path = CurrentPath + "Log\\start-stop.log";FileStream fs = new FileStream(path, FileMode.Append, FileAccess.Write);StreamWriter sw = new StreamWriter(fs);sw.WriteLine("The Service is Starting On " + DateTime.Now.ToString());sw.Flush();sw.Close();fs.Close();time = new System.Timers.Timer(1000 * Convert.ToInt32(GetSettings("TimeSpan")));time.Enabled = true;time.Elapsed += this.TimeOtime.Start();}
实例化记时器类启动后,将在指定时间间隔触发Elapsed指定事件,如上GetSettings为读取我App.config文件里一个配置节点(值为30)的方法,所以上面将会每隔30秒调用TimeOut方法.而改方法就是我们发短信的具体操作.代码如下:
private void TimeOut(object sender, EventArgs e){try{if (GetSettings("Enabled").ToLower() == "true"){SqlConnection con = new SqlConnection(GetSettings("ConnString"));SqlCommand cmd = new SqlCommand("select [sysid],[admin_inner_code],[user_inner_code],[phone],[message],[sendtime] from [tbl_note_outbox]", con);con.Open();SqlDataReader rdr = cmd.ExecuteReader();while (rdr.Read()){string phone = rdr["phone"].ToString();string message = rdr["message"].ToString();string sendtime = rdr["sendtime"].ToString();System.Text.Encoding encoder = System.Text.Encoding.GetEncoding("GB2312");string url = string.Format("http://211.155.23.205/isapi.dll?SendSms&AgentID={0}&PassWord={1}&phone={2}&msg={3}&sendtime={4}", GetSettings("AgentID"), GetSettings("PassWord"), phone,System.Web.HttpUtility.UrlEncode( message,encoder), sendtime);System.Net.WebClient wClient = new System.Net.WebClient();string msg = System.Text.Encoding.Default.GetString(wClient.DownloadData(url));wClient.Dispose();//删除已经发送成功的,并保存发送记录if (msg == "发送成功"){DateTime dtsend = sendtime == "0" ? DateTime.Now : DateTime.ParseExact(sendtime, "yyyyMMddHHmmss", null);string sql = string.Format("delete from [tbl_note_outbox] where [sysid]={0} INSERT INTO [tbl_note_log] ([admin_inner_code],[user_inner_code],[status],[phone],[message],[sendtime]) VALUES('{1}','{2}','{3}','{4}','{5}','{6}')", rdr["sysid"], rdr["admin_inner_code"], rdr["user_inner_code"], msg, phone, message, dtsend);SqlConnection conn = new SqlConnection(GetSettings("ConnString"));SqlCommand delete = new SqlCommand(sql, conn);conn.Open();delete.ExecuteNonQuery();conn.Close();delete.Dispose();}}rdr.Close();con.Close();cmd.Dispose();}}catch (Exception ex){string errorPath = CurrentPath + "Log\\error.log";if (!File.Exists(errorPath)){FileStream create = File.Create(errorPath);create.Close();}FileStream fs = new FileStream(errorPath, FileMode.Append, FileAccess.Write);StreamWriter sw = new StreamWriter(fs);sw.WriteLine("Exception: " +ex.Message+" --"+ DateTime.Now.ToString());sw.Flush();sw.Close();fs.Close();}}
上面我们使用try、catch访问数据库,并记录错误异常信息. 发送短信是使用发送一个Web请求发送出去的,要注意请求url字符串的编码类型,要与请求页面编码一致,不然会出现乱码.上面我们请求的是智网通集团短信(网址:)的Web接口,通过访问他的网站来实现发短信,当然还要传递一些用户名、密码、手机号码和要发送的短信息等参数.他的收费平均大概为7分/条的样子,其实我原本不想用发送Web请求的这样方式来发送短信的,它本身提供了调用它发送短信的DLL,而且还有vc、delphi调用的Demo,但是没有用C#调用的例子,我刚开始试着用非托管动态链接库他提供的DLL,不知方法调用那里出错了一直都没能成功发送出短信,所以后来就用了他的Web方式接口了.他页面直接返回发送短信的状态信息.返回发送成功则短信发送成功,成功后我再将此条信息从要发送短信表里删除并保存在发送记录表里面,以备日后方便查询.其实登陆他的官网进入后台也能方便的查询,如下图.
发送短信服务的代码基本上搞定了,就看怎么在服务器上安装部署了.C#写的Windows后台服务不能直接安装,需要借助.NET Framework里面的InstallUtil.exe安装工具安装,我们可以做成一个执行CMD命令的文件BAT文件来安装启动它,命令如下:
%windir%\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe %CD%\SendMessage.exenet start SendMessage
安装完成以后,我们可以在我的电脑管理服务里面看到才安装上的后台服务.
经测试,采用定时访问数据库发送短信的服务并不是很耗资源,刚启动的时候只占用内存为7、8M左右,经过在服务器上连续运行几天不关闭占用的内存也只升到15M左右,运行比较稳定,这里提供一个短信二次开发接口说明,有兴趣的朋友可以去下载看下.
阅读(13738)
用户名*必填
邮箱地址回复通知我富翁遭老友儿子短信敲诈200万(组图)
来源:城市晚报
时间: 06:01
马凯的家马凯接受记者采访  ■记者 闫纪杭/报道 赵毅亮/摄  “知人知面不知心,或许他只是一时冲动。”近一段时间,坊间传言资产过千万的榆树市五棵树镇养牛大王马凯时常这样感叹。  10月13日凌晨,一声爆炸的闷响,和一条“马老板,听到响声了吗?你不想让你的家人死光吧,马上准备200万,我会和你联系的。”恐吓短信,将熟睡中的马凯惊得浑身冷汗。  此后7天,又陆续有16条恐吓信息钻进马凯手机里,好在此案被当地警方及时侦破。但马凯怎么也没料到,嫌犯竟是自己老友的儿子。   恐吓短信 敲诈200万  10月13日凌晨,五棵树镇养牛大王马凯沉沉地睡在床上。忽然一阵爆炸声将马凯惊醒,睡眼惺忪的他摸黑下床朝窗外瞧去:“门口马路上也没车祸呀,哪来的这么大动静?”  他立即带人在自家院内搜索,既无爆炸残留物,也没有人畜受伤。回到卧室,黑暗中,床头柜上的手机忽然亮起,紧接着传来刺耳的短信提示音。马凯抄起手机一看,不觉得脊背发凉:“马老板,听到响声了吗?你不想让你的家人死光吧,马上准备200万,我会和你联系的。”  马凯几乎一边看着短信,一边冲进女儿和儿子的卧室,看见俩人安然无恙,这才长出了口气。  “文化不高,其貌不扬”,这是马凯给人留下的第一印象。可就是这样一位看起来并不出众的农民,经过多年创业打拼,从一个普通种殖户成为养牛大王,并获得五棵树镇人大代表、政协委员等荣誉,坊间还流传着“马千万”的绰号。  富起来的马凯依旧是一身便装,他说,自己为人一向低调,所谓资产千万之说,不过是外界瞎猜而已,他一个养牛户赚不了这么多钱,更拿不出200万给匪徒买全家平安。接到恐吓短信当天,马凯彻夜未眠。一直以来,他对乡亲们和善、大方,凡有人来请教养牛经验,他都知无不言,凡有亲戚朋友跑来借钱,他都解囊相助。“我也没啥仇家呀!”马凯心里想,谁会算计到我的头上?许久,这位49岁的养牛大王顿悟:“人怕出名猪怕壮,我这是让人盯上了。”  短信恐吓 变音威胁  14日白天,马凯刚打了个盹,又被刺耳的短信声吵醒。拿过手机一看,又是同一号码发来的敲诈短信。在接下来的13日到20日,7天内马凯相继接到17条敲诈恐吓信息和2次变音敲诈。其中一条信息让马凯非常害怕。大意是:“如果不交钱,就把你儿子的眼睛挖出来。”   马凯膝下有一双子女,女儿23岁,儿子也20来岁,被马凯视为掌上明珠。“到底要不要花钱保平安呢?”马凯心里犹豫,200万不是小数目,他确实一下子拿不出来。  那段时间五棵树镇的老百姓发现,马家人开始深居简出,出门绝不独行,常常是左顾右盼后匆匆跳进车里疾驰而去,见到熟人也不像以往热情地打招呼了。  不久后,又一条短信刺激了马凯的神经,信息发送者声称自己是黑社会成员,有枪有弹,不交钱后果很严重。马凯意识到问题的严重性,立即向五棵树镇派出所报了警。  初步锁定“熟人”作案  五棵树镇派出所接到马凯报案后,立即向榆树市公安局汇报案情。榆树市市长助理、公安局局长刘洪双、政委高广野责成榆树市公安局刑警大队和五棵树镇派出所组成联合调查组侦破此案。  据五棵树镇派出所教导员颜希军介绍,这是近四年来该镇首次出现敲诈案,而且敲诈数额之大,在整个长春地区也极为罕见。民警经过5昼夜排查走访,锁定了犯罪嫌疑人。  在马凯接到的17条短信中,有一条引起了警方注意,敲诈者声称,他看见马家的灯还亮着。这说明犯罪嫌疑人对马家居住的位置十分熟悉,而且在发信息敲诈前,经常在马家周围转悠。而在其它短信内容中,犯罪嫌疑人知道马凯有一子,说明其对马家的家庭成员了如指掌。所以根据这些情况判断,犯罪嫌疑人首先是马家的熟人,并且就是五棵树镇本地人。  债主临门 图谋敲诈  据此,警方布置警力在马家附近24小时蹲守。很快发现经常有一辆黑色夏利轿车在马家四周徘徊。经对镇内所有黑色夏利轿车排查,发现该镇养牛户寇鹏飞(别名寇小丹)所拥有的黑色轿车有重大嫌疑。   进一步侦查发现,寇鹏飞与马凯来往甚密,最近一年,寇鹏飞经常参与社会赌博,欠下外债几十万,并且近日行动诡秘,经常开车昼伏夜出。  21日14时许,警方收到消息,寇鹏飞正在镇内一家饭店吃饭,专案组果断行动将其抓获,当场搜出敲诈用的手机一部。起初还想狡辩的寇鹏飞最终交待,最近一年来,他因赌博输掉几十万元,养牛又赔了二三十万元,近期债主临门,迫于压力,产生了敲诈马凯的想法。  目前,寇鹏飞已被刑拘。  不计前嫌 握手相送  寇鹏飞今年27岁,父母都是教师。寇父与马凯是至交,平日里两家人来往密切,论起来,寇鹏飞还要叫马凯为叔叔。“我是看着他长大的,但愿鹏飞只是一时糊涂”,马凯说,以往寇鹏飞养牛,遇到啥麻烦他都会无偿帮助,就是希望老朋友的儿子也能富起来,不成想这小子这么没出息。  马凯回忆,警方将寇鹏飞送往看守所那天,他也前去送行,还和寇鹏飞握握手,当时遇到寇父。两个老朋友感慨万千,寇父很惭愧,问马凯能不能和自己也握握手,马凯挺大方,一把将老友的手抓住说,“你是你,他是他,他干啥你也不知道,咱俩还跟以前一样。”(责任编辑:阿彤)“唱响祖国”红段子征集活动短信选登
时间: 10:26
  ●处处绿树,处处碧水,处处商机,南海美,南海人更美!(136201×××96)
  ●人文荟萃樵山,活力商业新城;珠江文明灯塔,现代纺织源地;文康武鸿神韵,生态旅游风情;中国纺织名镇,广佛都市绿肺!(134155×××90)
  ●璀璨明珠南海城,经济腾飞似蛟龙;兴业居家环境好,人杰地灵生意红。(135425×××52)
  ●南海无海,但她却有海的情操,海的力量,海的内涵,海的底蕴,海在心胸万顷间!(136214×××10)
  ●有为乃立足广佛之根本,有容更显南海之气魄;秦郡千年招牌,我等有责擦亮!(138277×××98)
  ●佛山南海是我家,改革开放好繁华,人民安居乐业享,社会和谐共一家。 (158995×××78)
  ●广东金融高新技术服务区是南海的“明珠”,规划现代、环境优美,配套齐全,发展潜力难以估量!
  (137986×××53)
  以上短信每条可获稿费20元,请作者到南海大道南海新闻中心17楼1706领取稿费。
  联系人:卢小姐
  咨询电话:92
  “唱响祖国”红段子征集活动参与办法:
  1、用手机、小灵通编写短信发送至,所有短信以100字以内为宜。
  2、登录南海区委宣传部主页(xcb.)点击“五星南海中国红”系列活动,然后选择“红段子征集”,即可发表您的作品。作品以100字以内为宜。
  奖励办法:
  一等奖5名,奖品为价值1000元的中国电信天翼手机;
  二等奖10名,奖品为价值500元的中国电信3G无线上网卡;
  三等奖20名,奖品为价值200元的中国电信3G无线上网卡。
  活动时间:日~10月1日(责任编辑:刘振鑫)VC++中如何调用webservice发送手机短信?_百度知道
VC++中如何调用webservice发送手机短信?
返回值,调用方法名,SDK项目,主用功能是在输入数据满足条件后能在对话框上输出一段字符串,谢谢。)求具体步骤,用户名Win32环境,密码等信息,最好是用VC++解决,参数。(已有webservice地址。现要求解决的任务是能调用webservice将那段字符串发送短信给某手机号码,最好是有类似代码范例
就是一个简单的对话框显示,并追加一段代码来发送短信,只要将现有VC++项目添加web应用,现成的webservice那边是已经弄好的,不明白你说的自动短信是什么意思,原项目不是手机软件, 同学。还有
提问者采纳
||&quot.ServerVariables.UBound(array.Binary)
If (I;&gt.Item(&).Decode(s), HttpContext, CompareMethod, 1) &HTTP_HOST& 2) Then
Return False
If (Strings.InStr(array(1), &quot.Request.CurrentDim array As String() = Strings.Split(Me, CompareMethod, -1
其他类似问题
为您推荐:
webservice的相关知识
其他3条回答
这个是有点复杂的,不知道你的发短息的那块是不是已经做好了
不能告诉你,你是准备给手机软件加自动短信的代码吧。
已有webservice地址,调用方法名,返回值,参数,用户名,密码等信息,这就好办,直接用VC向网站发送相关的信息就是了
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 current location 的文章

 

随机推荐