VBS实现工作任务自动QQ提醒

     在现实工作中,大部分软件项目都流程化、版本化管理。每个人的工作任务都需要及时处理,才能够使工作高效的进行。为此就想到用VBS来实现工作任务自动QQ提醒的功能。其工作原理很简单:利用ADO实现数据库连接,来查询相关工作任务在不同环节的状态,通过建立QQ临时会话通知相关人员进行处理。这样就可以避免人工的去查询工作任务,使工作更加高效化。

     以下为该程序的源代码,将以下代码保存为如:Automatic_notification.vbs的vbs脚本文件。

''''''''''''''''''''配置信息部分''''''''''''''''''''
Dim logo_six
logo_six
= "SG186" rem 项目名称配置
dim item_code
item_code
= "330" rem 环节名称设置
dim state
state
= "0" rem 工单处理状态设置
dim at_emp_no
at_emp_no
= "32557" rem 指定处理人员设置
dim qq_id
qq_id
= "420363096" rem 创建会话的QQ号码
dim msg
msg
= "有工作任务,请及时处理!工单编号为:" rem 发送消息内容
dim Data_Source
Data_Source
="BRT170"
'''''''''''''''''''''''''''''''''''''''''''''''''''
Dim res,cmd,sql
Set res
=createobject("adodb.recordset")
Set cmd
=createobject("adodb.command")
Rem 连接数据库

Dim Connstring
Connstring
="Provider=OraOLEDB.Oracle.1;Password = query ;Persist Security Info=True; User ID = query ; Data Source = "&Data_Source&" ; Server = 172.19.201.170"
Cmd.activeconnection
= Connstring

rem 查询语句
sql
="SELECT wm_concat(app_no) app_no FROM sp_issue a WHERE substr(a.comp_code, 0, 4) IN (SELECT b.code_value FROM sp_code b WHERE b.logo_six = '"&logo_six&"') AND EXISTS (SELECT 1 FROM sp_process c WHERE c.item_code = '"&item_code&"' AND c.state = '"&state&"' AND c.at_emp_no='"&at_emp_no&"' AND c.app_no = a.app_no)"

Cmd.CommandText
=sql
Dim returnapp_no
Set res
=Cmd.Execute()
If res.EOF And res.BOF Then
res.Close
Else
If res(
0)<>"" Then
returnapp_no
=Cstr(res(0))
On Error Resume Next
str
=""&msg&""&returnapp_no&""
Set WshShell
=WScript.CreateObject("WScript.Shell")
WshShell.run
"mshta vbscript:clipboardData.SetData("+""""+"text"+""""+","+""""&str&""""+")(close)",0
WshShell.run
"tencent://message/?Menu=yes&uin="&qq_id&"&Site=&Service=200&sigT=2a39fb276d15586e1114e71f7af38e195148b0369a16a40fdad564ce185f72e8de86db22c67ec3c1",0,true
WScript.Sleep
1000
WshShell.SendKeys
"^v"
WshShell.SendKeys
"%s"
WshShell.sendkeys
"{enter}"
returnapp_no
=Cstr(res(0))
End If
End If
Set res
=Nothing
Set Cmd.activeconnection
=Nothing
Set Cmd
=Nothing

      可以进行test.vbs的如下相关配置:

      a.Connstring中可以进行数据库连接配置。

      b.sql中进行查询语句的设置,wm_concat函数将多行转换成一行,使程序效率化,logo_six为项目编号,item_code为当前环节,state为工单处理状态。

      c.str中可以配置预期输出的信息。

      d.uin为指定建立临时会话,接收消息的QQ号码。

      程序功能实现了,问题是我们不能每时每刻人工的去执行Automatic_notification.vbs,为此就需要实现批处理。以下提供两个版本的批处理实现方式。

      版本一:VBS批处理实现方式

set os = createobject("wscript.shell")
do
os.run
"Automatic_notification.vbs"
wscript.sleep
3000*60
loop

     版本二:BAT批处理实现方式

@echo off
:start
start Automatic_notification.vbs
ping
127.1 -n 2000 >nul
goto start

     将以上两种方式的代码分别保存为run.vbs、run.bat,直接运行run.vbs或者run.bat,其中run.vbs、run.bat中可以设置消息发送间隔时间。

posted on 2011-04-13 20:51  dfine.sqa  阅读(2020)  评论(2编辑  收藏  举报

导航