按键精灵客户端接入Web文件更新系统教程
应用中心已经正式发布,Web文件更新系统的安装过程就不重复啰嗦了,直接进入主题
Web文件更新系统已经为我们提供了 文件更新器 BbyUpdater.exe
我们只需要在 按键精灵 里面调用文件更新器,传入对应的启动参数,就可以把Web文件更新系统完美的接入 小精灵客户端
下面我们分两步,把Web文件更新系统接入的 小精灵 客户端中
1、BbyUpdater.exe 启动参数说明
2、调用已经封装好的 文件更新 函数,接入客户端
BbyUpdater.exe 进程启动需要附加四个参数
token 百宝云对应云应用token
progname 百宝云对应云应用代码中的项目名称
pid 当前进程的PID,用于更新器,关闭当前进程,如果你是按键精灵,需要获取父级的进程PID,按键精灵具有特殊性
version 件版本号用于区别本地文件与服务器文件,注意版本号必须为1.0.0.0有格式
BbyUpdater 更新器启动参数格式下: - //通过 Runapp 命令打开更新器,并传入对应的参数,实现程序的下载更新。
- BbyUpdater.exe "token" "progname" "pid" "version"
复制代码每个参数之间必须使用空格隔开,参数需要加个双引号
首先,先把 BbyUpdater.exe 重命名为 BbyUpdater.zip ,添加到按键项目的附件中
然后,我们先在 Form1.Load 事件中 , 释放 BbyUpdater更新器,并将释放出来的 BbyUpdater.zip 文件重命名为 BbyUpdater.exe
- Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
- //界面初始化 释放 BbyUpdater更新文件,并重命名为 BbyUpdater.exe
- Event Form1.Load
- str = string(1024, 0)
- GetModuleFileName 0, str, len(str)
- 程序路径 = Replace(str, split(str, "")(ubound(split(str, ""))), "")
- file1 = 程序路径 & "BbyUpdater.zip"
- file2 = 程序路径 & "BbyUpdater.exe"
- PutAttachment ".", "BbyUpdater.zip"
- Call Plugin.File.ReNameFile(file1, file2)
- End Event
复制代码
接下来,再来看我们封装好的 文件更新 函数- Public Declare Function GetParent Lib "user32" Alias "GetParent" (ByVal hwnd As Long) As Long
- Public Declare Function GetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () As Long
- Public Declare Sub rtcDoEvents Lib "msvbvm60.dll" Alias "rtcDoEvents" () As Long
- Function GetCurrentPID()
- Hwnd = Form1.Hwnd
- Do
- hwnd = GetParent(hwnd)
- If hwnd = GetDesktopWindow() or hwnd=0 Then
- hwnd = oldhwnd
- Exit Do
- Else
- oldhwnd=hwnd
- End If
- rtcDoEvents
- Loop
- GetCurrentPID = Plugin.SysEx.GetProcessID(hwnd ) //safasdf
- End Function
- Function 文件更新(token, 项目名称, 版本号)
- //BbyUpdater.exe 进程启动需要附加四个参数
- //token 百宝云对应云应用token
- //progname 百宝云对应云应用代码中的项目名称
- //pid 当前进程的PID,用于更新器,关闭当前进程,如果你是按键精灵,需要获取父级的进程PID,按键精灵具有特殊性
- //version 文件版本号,注意版本号必须为1.0.0.0有格式
-
- str = string(1024, 0)
- GetModuleFileName 0, str, len(str)
- 程序路径 = Replace(str, split(str, "")(ubound(split(str, ""))), "")
- file1 = 程序路径 & "BbyUpdater.exe"
- progname = 项目名称
- pid = GetCurrentPID()
- command = file1 & " " & Chr(34) & token & Chr(34) & " " & Chr(34) & progname & Chr(34) & " " & pid & " " & Chr(34) & 版本号 & Chr(34)
- RunApp command
- End Function
复制代码
然后,我们介绍 文件更新 函数中三个参数的获取,这三个参数都可以通过管理后台来获取
参数 token 获取,在管理端,最下方的菜单可以找到token,并双击复制
参数 项目名称 获取,文件更新系统中,可以有多个不同的项目,用于区分不同的作用,项目名称根据我们实际使用的项目进行选择
参数 版本号 获取,版本号格式必须为1.0.0.0当本地版本号与管理后台的最新版的版本号不一致,更新器就会开始更新我们服务器上的文件,如果一致,则不会做任何操作
最后我们调用 文件更新 接口进行文件的更新 - Event Form1.Button1.Click
- fileHandle=Plugin.File.OpenFile(".\access.token") //从云虚拟桌面下载的客户端会自动access.token文件,可以读取后直接访问
- token=Plugin.File.ReadFile(fileHandle,32)
- Call Plugin.File.CloseFile(fileHandle)
- call 文件更新(token,"测试项目","1.0.0.0")
- End Event
复制代码
到这里,Web文件更新系统的按键客户端接入教程就完成了
大家赶紧动起手来,在自己的软件的接入Web文件更新系统的文件自动更新功能
最后面给大家看一个自动更新的效果图
按键客户端源码下载:
下载后请注意替换 access.token文件中的token
|