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) 编辑 收藏 举报