求高手给写个VBS脚本!!!!

小弟想要实现这样一个功能;有文件AAA.txt和文件BBB.txt和软件C。(三者各自路径不同)1、第一步:判断AAA.txt是否更新(和AAA.txt自己的以前内容做比... 小弟想要实现这样一个功能;

有文件AAA.txt和文件BBB.txt和软件C。(三者各自路径不同)

1、第一步:判断AAA.txt 是否更新(和AAA.txt自己的以前内容做比较),如更新,则用AAA.txt覆盖BBB.txt,BBB.txt名字保持不变。

2、第二步:判断文件BBB.txt是否更新(刚被覆盖后即是),如更新,则执行软件C的“开始”按钮。

3、可循环。

4、可停止,暂停。

注:执行软件C的“开始”按钮可结合按键精灵来进行,如只用VBS的话更好!

本人对程序一窍不通!求高人给出代码,谢谢!
如有高手帮助到小弟,再追加300分!!
————————————————————
回答a5562257 :
“有文件AAA.txt和文件BBB.txt和软件C。(三者各自路径不同)”
“判断AAA.txt 是否更新(和AAA.txt自己的以前内容做比较)”
这里AAA.txt如果更新了 ,那么内容自然和以前不一样对不?可以用文件大小进行比较凑合下。如果AAA.txt更新了,文件一般和原来的AAA.txt大小不一样。
展开
 我来答
蔡瑀
2012-03-17 · TA获得超过231个赞
知道小有建树答主
回答量:424
采纳率:0%
帮助的人:331万
展开全部
'保存为vbs类型文件
set shell=createobject("wscript.shell")
set open=createobject("scripting.filesystemobject")
set word=createobject("Word.Application")
set tasks=word.tasks
file1="aaa.txt" '假设这是aaa,修改下路径即可
file2="bbb.txt" '假设这是bbb,修改下路径即可
file3="c.exe" '某c程序
button="^N" '某开始按钮的快捷键,你必须先确定这个快捷键按钮可以用键盘操作,且是否有效."^N"是Ctrl+N,"%N"是Alt+N.N可以是别的组合键
tmp1=envision("tmp")&"\tmp1" '这是aaa的临时记录文件
tmp2=envision("tmp")&"\tmp2" '这是bbb的临时记录文件
public function prtitle
for each i in tasks
if i.visible then prtitle=i.name:word.quit:exit for
next
end function
public function dir(byval exist)
if open.folderexists(exist&"\") then
if open.folderexists(exist) then dir=open.getfolder(exist) else dir=""
else
if open.fileexists(exist) then dir=open.getfile(exist) else dir=""
end if
end function
function copy(byval file1,file2)
open.copyfile file1,file2
end function
public function Envision(byval Val)
envision=shell.environment("Process").item(val)
if lcase(val)=lcase("cd") then envision=open.getfolder(".")
end function
'第一次必须记录文件,否则往后程序无法得知是否更新
'do 这是循环开始
if dir(file2)="" then open.createtextfile(file2).write ""
if dir(file1)="" then shell.popup file1&"不存在,程序无法执行!",3,wscript.scriptname,64:wscript.quit '如果aaa不存在的话程序自动退出
if open.getfile(file1).size=0 then shell.popup file1&"是空文件,程序无法执行!",3,wscript.scriptname,64:wscript.quit '如果aaa是空文件的话程序自动退出
read1=open.opentextfile(file1).readall
if dir(tmp2)="" then open.createtextfile(tmp2).write ""
if dir(tmp1)="" then
open.createtextfile(tmp1).write read1
if open.getfile(file1).size<>open.getfile(tmp1).size then
copy file1,file2
if open.getfile(file2).size<>open.getfile(tmp2).size then
shell.run file3,,1
shell.appactivate prtitle
shell.sendkeys button
else
popup file2&"没有变化",3,wscript.scriptname,64 '如不需提示可删除此行
'shell.run file3,,1
'shell.appactivate prtitle
'shell.sendkeys button
'wscript.quit '如果bbb没有更新的话就退出程序.这里如需要退出就把这一行第一个'字符去掉即可退出.反之如果不需要则不管或删除此行.若需要执行某C程序则将上面3行前面的'去掉
end if
else
popup file1&"没有变化,如果是第一次运行本程序,请再运行一次.",3,wscript.scriptname,64 '如不需提示可删除此行
end if
else
if open.getfile(file1).size<>open.getfile(tmp1).size then
copy file1,file2
if open.getfile(file2).size<>open.getfile(tmp2).size then
shell.run file3,,1
shell.appactivate prtitle
shell.sendkeys button
else
shell.popup file2&"没有变化",3,wscript.scriptname,64 '如不需提示可删除此行
'shell.run file3,,1
'shell.appactivate prtitle
'shell.
'shell.sendkeys button
'wscript.quit '如果bbb没有更新的话就退出程序.这里如需要退出就把这一行第一个'字符去掉即可退出.反之如果不需要则不管或删除此行.若需要执行某C程序则将上面3行前面的'去掉
end if
else
shell.popup file1&"没有变化",3,wscript.scriptname,64 '如不需提示可删除此行
end if
end if
'wscript.sleep 1000*30 '30秒执行一次
'loop 循环结束

'==================================
'代码没有经过任何测试,如果不符合实际要求.可以百度hi我.怎么用法自己调整.如需要循环执行将32行的'do前面的'去掉,和76行的'loop前面的'去掉.循环的时候系统肯定会很慢,不保证能正常使用电脑.如需定时循环一次可以将75行最前面的'去掉.
'==================================
追问
感谢!

1、运行时 提示系统找不到指定的文件,行60,代码 80070002 源:null

2、我的那个软件一直开着的,可是指定不了热键,软件压根不支持热键,怎么办?
veket的小号
2012-03-24 · TA获得超过3371个赞
知道大有可为答主
回答量:3762
采纳率:0%
帮助的人:3993万
展开全部
;;; autoit 脚本实现起来 很简单
;;; autoit 校验文件md5的方式来判断文件是否更新
;;; 退出出程序 用快捷键 【ctrl 和数字 1】

#include <ACN_HASH.au3>

Local $file_1 = "D:\h\test\a\AAA.txt"
Local $file_2 = "D:\h\test\b\BBB.txt"
Local $exefile = "D:\h\test\c\迅雷地址加解密工具.exe"
Local $inifile = "D:\h\test\test.ini"

Local $file_1_md5_in_ini = IniRead($inifile, "md5", "file1", "")
Local $file_2_md5_in_ini = IniRead($inifile, "md5", "file2", "")

Local $file_1_md5 = Check_Md5($file_1)
Local $file_2_md5 = Check_Md5($file_2)

HotKeySet("^1", "Quit")

While True
If $file_1_md5_in_ini = "" Or $file_2_md5_in_ini = "" Then
IniWrite($inifile, "md5", "file1", $file_1_md5)
IniWrite($inifile, "md5", "file2", $file_2_md5)
Else
If StringCompare($file_1_md5, $file_1_md5_in_ini) Then
FileCopy($file_1, $file_2, 1)
IniWrite($inifile, "md5", "file1", $file_1_md5)
$file_2_md5 = Check_Md5($file_2)
EndIf

If StringCompare($file_2_md5, $file_2_md5_in_ini) Then
MsgBox(0,"","2 md5 changed")
;;;;此处补上核心代码,执行软件C的“开始”按钮,的代码
;;;; 模拟鼠标点击取要抓取按钮的坐标autoit窗口信息工具
;;;; 如果有该按钮有快捷键也可以模拟发送快捷键
;;; 这段代码 需要知道你的软件到底怎样才能写出来
IniWrite($inifile, "md5", "file2", $file_2_md5)
EndIf
EndIf
Sleep(1000)
$file_1_md5_in_ini = IniRead($inifile, "md5", "file1", "")
$file_2_md5_in_ini = IniRead($inifile, "md5", "file2", "")
$file_1_md5 = Check_Md5($file_1)
$file_2_md5 = Check_Md5($file_2)
WEnd

Func Check_Md5(ByRef $Filename)
Local $BufferSize = 0x20000
Local $FileHandle = FileOpen($Filename, 16)
Local $MD5CTX = _MD5Init()
Local $i
For $i = 1 To Ceiling(FileGetSize($Filename) / $BufferSize)
_MD5Input($MD5CTX, FileRead($FileHandle, $BufferSize))
Next
Local $Hash = _MD5Result($MD5CTX)
FileClose($FileHandle)
Return $Hash
EndFunc

Func Quit()
ToolTip("谢谢使用!" & @CRLF & "退出 ~ ~",@DesktopWidth/2, @DesktopHeight/2)
Sleep(2000)
Exit
EndFunc

核心代码 写法 再给你个自动登陆qq 自动填写账号密码范例

;;;logoin qq11beta2
ShellExecute("C:\Program Files\Tencent\QQ2011beta\Bin\QQ.exe") 启动qq
While Not WinExists("QQ2011")等待qq的窗口出现
Sleep(1000)
WEnd

TrayTip("正在登陆QQ", "请稍候...", 3, 1)
Sleep(2000)

WinActivate("QQ2011") 将qq窗口设为活动窗口
Sleep(500)
Opt("MouseCoordMode", 2)

MouseClick("left", 180, 145) 在autoit窗口信息工具抓取的坐标位置 点击鼠标左键
Send("^A") 模拟键盘发送快捷键 ctrl + a 全选
Send("12345678") 发送账号

MouseClick("left", 180, 180)
Send("^A")发送快捷键 ctrl + a 全选
Send("123123") 模拟键盘发送密码
Send("{ENTER}") 模拟键盘按回车键
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a5562257
2012-03-17 · 超过63用户采纳过TA的回答
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:175万
展开全部
问题你怎么知道你以前的文件内容呢?你得记录先啊!你还是没说清楚问题的关键!你要对比,总要知道和谁对比吧,如果和自己对比那肯定一样的!你就一句和以前的对比 那谁知道哪个是以前的哪个是现在的呢
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式