有的exe程序调用不像系统的exe程序一样直接写程序名字就行了,需要设置工作路径,完整脚本如下:
Function action
Const ForReading = 1, ForWriting = 2
Dim fso,MyFile,ReadLineTextFile '读文件变量
Dim MyArray'结果保存到数据中
If HMIRuntime.Tags("OP80_srun4").read=1 Then
HMIRuntime.Tags("OP80_烧录结果").Write ""
HMIRuntime.Tags("OP80_烧录版本").Write ""
HMIRuntime.Tags("write_time").Write ""
Do
Loop Until HMIRuntime.Tags("系统F4继电器反馈").Read
Dim WSH
Set WSH=CreateObject("Wscript.Shell")
WSH.currentdirectory = "E:downloadfilesdownloadprogramRFBT"'设置工作路径
WSH.Run "E:downloadfilesdownloadprogramRFBTRFBT.exe",1,False'打开exe文件
'查看烧录结果
Dim strComputer,objWMIService,colProcessList
strComputer = "."
Do
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\" & strComputer & "
ootcimv2")
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'RFBT.exe'")
Loop Until colProcessList.Count<=0
'等待烧录完成读取烧录结果
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.OpenTextFile("E:downloadfilesdownloadfilesDownloadStatus.log", ForReading)
ReadLineTextFile = MyFile.ReadLine ' Returns "Hello world!"
MyArray=Split(ReadLineTextFile,";")
HMIRuntime.Tags("OP80_烧录结果").Write MyArray(0)
HMIRuntime.Tags("OP80_烧录版本").Write MyArray(1)
HMIRuntime.Tags("write_time").Write MyArray(2)
MyFile.Close
End If
这个程序的的意思是等到烧录结束后读取烧录的结果的数据保存到wincc的变量中。
我要表达的主要蓝色字体的部分,其他的可以忽略。