百宝云论坛

 找回密码
 立即注册
查看: 1459|回复: 2

【Web文件更新系统】 - 按键接入教程

[复制链接]

93

主题

198

帖子

2023

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2023
发表于 2016-7-28 01:24:39 | 显示全部楼层 |阅读模式
按键精灵客户端接入Web文件更新系统教程

应用中心已经正式发布Web文件更新系统的安装过程就不重复啰嗦了,直接进入主题
Web文件更新系统已经为我们提供了 文件更新器 BbyUpdater.exe
我们只需要在 按键精灵 里面调用文件更新器传入对应的启动参数,就可以把Web文件更新系统完美的接入 小精灵客户端

下面我们分两步,把Web文件更新系统接入的 小精灵 客户端中
1、BbyUpdater.exe 启动参数说明
2、调用已经封装好的 文件更新 函数,接入客户端
1、BbyUpdater.exe 启动参数说明


BbyUpdater.exe 进程启动需要附加四个参数
token                百宝云对应云应用token
progname         百宝云对应云应用代码中的项目名称
pid                    当前进程的PID,用于更新器,关闭当前进程,如果你是按键精灵,需要获取父级的进程PID,按键精灵具有特殊性
version              件版本号用于区别本地文件与服务器文件,注意版本号必须为1.0.0.0有格式

BbyUpdater 更新器启动参数格式下:
  1. //通过 Runapp 命令打开更新器,并传入对应的参数,实现程序的下载更新。
  2. BbyUpdater.exe "token" "progname" "pid" "version"
复制代码
每个参数之间必须使用空格隔开,参数需要加个双引号
2、调用封装好的 文件更新 接口

首先,先把 BbyUpdater.exe  重命名为 BbyUpdater.zip ,添加到按键项目的附件中

然后,我们先在 Form1.Load 事件中 , 释放 BbyUpdater更新器,并将释放出来的
BbyUpdater.zip 文件重命名为 BbyUpdater.exe
  1. Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long

  2. //界面初始化 释放 BbyUpdater更新文件,并重命名为 BbyUpdater.exe
  3. Event Form1.Load
  4.         str = string(1024, 0)
  5.         GetModuleFileName 0, str, len(str)
  6.         程序路径 = Replace(str, split(str, "")(ubound(split(str, ""))), "")
  7.         file1 = 程序路径 & "BbyUpdater.zip"        
  8.         file2 = 程序路径 & "BbyUpdater.exe"        
  9.         PutAttachment ".", "BbyUpdater.zip"
  10.         Call Plugin.File.ReNameFile(file1, file2)
  11. End Event
复制代码

接下来,再来看我们封装好的 文件更新 函数
  1. Public Declare Function GetParent Lib "user32" Alias "GetParent" (ByVal hwnd As Long) As Long
  2. Public Declare Function GetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () As Long
  3. Public Declare Sub rtcDoEvents Lib "msvbvm60.dll" Alias "rtcDoEvents" () As Long

  4. Function GetCurrentPID()
  5.     Hwnd = Form1.Hwnd
  6.     Do
  7.         hwnd = GetParent(hwnd)
  8.         If hwnd = GetDesktopWindow() or hwnd=0 Then
  9.                 hwnd = oldhwnd
  10.                 Exit Do
  11.         Else
  12.             oldhwnd=hwnd
  13.         End If
  14.         rtcDoEvents
  15.     Loop
  16.     GetCurrentPID = Plugin.SysEx.GetProcessID(hwnd )  //safasdf
  17. End Function

  18. Function 文件更新(token, 项目名称, 版本号)

  19.         //BbyUpdater.exe 进程启动需要附加四个参数
  20.         //token              百宝云对应云应用token
  21.         //progname                百宝云对应云应用代码中的项目名称
  22.         //pid                     当前进程的PID,用于更新器,关闭当前进程,如果你是按键精灵,需要获取父级的进程PID,按键精灵具有特殊性
  23.         //version                文件版本号,注意版本号必须为1.0.0.0有格式
  24.         
  25.         str = string(1024, 0)
  26.         GetModuleFileName 0, str, len(str)
  27.         程序路径 = Replace(str, split(str, "")(ubound(split(str, ""))), "")
  28.         file1 = 程序路径 & "BbyUpdater.exe"        
  29.     progname = 项目名称
  30.     pid = GetCurrentPID()
  31.     command = file1 & " " & Chr(34) & token & Chr(34) & " " & Chr(34) & progname & Chr(34) & " " & pid & " " & Chr(34) & 版本号 & Chr(34)
  32.     RunApp command
  33. End Function
复制代码

然后,我们介绍 文件更新 函数中三个参数的获取这三个参数都可以通过管理后台来获取
参数 token 获取
在管理端最下方的菜单可以找到token,并双击复制


参数 项目名称 获取文件更新系统中可以有多个不同的项目用于区分不同的作用项目名称根据我们实际使用的项目进行选择


参数 版本号 获取版本号格式必须为1.0.0.0
当本地版本号与管理后台的最新版的版本号不一致更新器就会开始更新我们服务器上的文件如果一致则不会做任何操作


最后我们调用 文件更新 接口进行文件的更新
  1. Event Form1.Button1.Click
  2.         fileHandle=Plugin.File.OpenFile(".\access.token")   //从云虚拟桌面下载的客户端会自动access.token文件,可以读取后直接访问
  3.         token=Plugin.File.ReadFile(fileHandle,32)
  4.         Call Plugin.File.CloseFile(fileHandle)   
  5.         call 文件更新(token,"测试项目","1.0.0.0")
  6. End Event
复制代码

到这里Web文件更新系统的按键客户端接入教程就完成了
大家赶紧动起手来,在自己的软件的接入Web文件更新系统的文件自动更新功能

最后面给大家看一个自动更新的效果图


按键客户端源码下载:
下载后请注意替换 access.token文件中的token

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1金钱 +1 收起 理由
13016112250 + 1 很给力!

查看全部评分

回复

使用道具 举报

4

主题

61

帖子

227

积分

钢铁侠

Rank: 3Rank: 3

积分
227
发表于 2016-7-28 10:37:00 | 显示全部楼层
这么好的东东,没人来顶~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
回复 支持 反对

使用道具 举报

5

主题

37

帖子

308

积分

钢铁侠

Rank: 3Rank: 3

积分
308
发表于 2016-7-28 20:36:06 | 显示全部楼层
更新函数返回值增加了吗?
天天看电脑,头像就是证明
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|百宝云论坛 ( 湘ICP备15007281号-2 )

GMT+8, 2018-10-22 22:07

Powered by bby! X3.4

© 2015-2018 baibaoyun

快速回复 返回顶部 返回列表