Syscmd.Project.Update(False, True, False)
我将上述代码放在 maintablechanging 里面,希望切换主表时,提醒用户是否要对系统进行升级。如果他要升级,就点击Yes;如果他不要升级,就点击 No。但是运行时出现如下警告:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:在线升级失败!
详细错误信息:
不支持给定路径的格式。
请问要怎样修改代码?谢谢。
这个错误提示应该是升级路径不正确。
这个代码不应该放到maintablechanging,难道用户每切换一次主表,就提醒一次升级?我如果碰到这种程序第一时间考虑的是卸载掉。
考虑放到按钮,或者菜单里,然后用户自行点击。或者和帮助一样放到AfterOpenProject事件处理。
If LastInputTickCount > 300000 Then '停用5分钟则会执行
Dim s As String = FileSys.ReadAllText("\\BOSON\Foxtable\Foxtable\升级文件\update.txt") '取得最新发布时间
Dim dt1 As Date = CDate(s.Substring(0, 10))
If Publishdate = dt1 Then
If user.group IsNot Nothing Then
Dim Str1 As String = "用户名: " & User.Name & " 用户组别: " & user.group & " 系统发布日期: " & Publishdate '& " 当前时间: " & Date.now '当前时间没有意义
StatusBar.Message1 = Str1
Else
Dim Str1 As String = "用户名: " & User.Name & " 系统发布日期: " & Publishdate ' & " 当前时间: " & Date.now
StatusBar.Message1 = Str1
End If
ElseIf Publishdate < dt1 Then
If user.group IsNot Nothing Then
Dim Str1 As String = "用户名: " & User.Name & " 用户组别: " & user.group & " 系统发布日期: " & Publishdate & " 已有最新版本, 发布日期为 " & dt1 & ", 请适时重新登录系统。"
StatusBar.Message1 = Str1
Else
Dim Str1 As String = "用户名: " & User.Name & " 系统发布日期: " & Publishdate & " 已有最新版本, 发布日期为 " & dt1 & ", 请适时重新登录系统。"
StatusBar.Message1 = Str1
End If
End If
End If
上面代码放在 systemidle 里面,目的是:如果用户登录了旧版本的系统(比如2024-04-27发布的),那么当有了最新版本的系统(比如2024-05-07发布的)后,就会提示他目前使用的版本是哪个日期的,现在的最新版本是哪个日期的。但是实际上却只会显示最新版本的日期,而旧版本的日期却不显示,也就是说,没有执行红色那段代码。请问是什么原因?谢谢。
Dim dt1 As Date = CDate(s.Substring(0, 10))
If Publishdate = dt1 Then
'MsgBox("无需更新") 这句没问题
If user.group IsNot Nothing Then
Dim Str1 As String = "用户名: " & User.Name & " 用户组别: " & user.group & " 系统发布日期: " & Publishdate '& " 当前时间: " & Date.now '当前时间没有意义
StatusBar.Message1 = Str1
Else
Dim Str1 As String = "用户名: " & User.Name & " 系统发布日期: " & Publishdate ' & " 当前时间: " & Date.now
StatusBar.Message1 = Str1
End If
ElseIf Publishdate < dt1 Then
'MsgBox("提示你是否需要重新登录更新版本。") 这句没问题
If user.group IsNot Nothing Then
Dim Str1 As String = "用户名: " & User.Name & " 用户组别: " & user.group & " 系统发布日期: " & Publishdate & " 已有最新版本, 发布日期为 " & dt1 & ", 请适时重新登录系统。"
StatusBar.Message1 = Str1
'MsgBox("提示1:已有最新版本放行了,你是否需要重新登录更新版本。") 这句没问题
Else
Dim Str1 As String = "用户名: " & User.Name & " 系统发布日期: " & Publishdate & " 已有最新版本, 发布日期为 " & dt1 & ", 请适时重新登录系统。"
StatusBar.Message1 = Str1
'MsgBox("提示2:已有最新版本放行了,你是否需要重新登录更新版本。") 这句没问题
End If
End If
一4楼的代码,我加了多个 msgbox 进行测试(绿色那些代码),都会执行。但就是红色那部分内容出不来。
Dim Str1 As String = "用户名: " & User.Name & " 系统发布日期: " & Publishdate ' & " 当前时间: " & Date.now这儿也不对,多了个单引号
或是这样写试试
If LastInputTickCount > 300000 Then '停用5分钟则会执行
Dim s As String = FileSys.ReadAllText("\\BOSON\Foxtable\Foxtable\升级文件\update.txt") '取得最新发布时间
Dim dt1 As Date = CDate(s.Substring(0, 10))
If Publishdate = dt1 Then
If user.group IsNot Nothing Then
Dim Str1 As String = "用户名: " & User.Name & " 用户组别: " & user.group & " 系统发布日期: " & Publishdate '& " 当前时间: " & Date.now '当前时间没有意义
StatusBar.Message1 = Str1
Else
Dim Str1 As String = "用户名: " & User.Name & " 系统发布日期: " & Publishdate & " 当前时间: " & Date.now
StatusBar.Message1 = Str1
End If
End If
If Publishdate < dt1 Then
If user.group IsNot Nothing Then
Dim Str1 As String = "用户名: " & User.Name & " 用户组别: " & user.group & " 系统发布日期: " & Publishdate & " 已有最新版本, 发布日期为 " & dt1 & ", 请适时重新登录系统。"
StatusBar.Message1 = Str1
Else
Dim Str1 As String = "用户名: " & User.Name & " 系统发布日期: " & Publishdate & " 已有最新版本, 发布日期为 " & dt1 & ", 请适时重新登录系统。"
StatusBar.Message1 = Str1
End If
End If
End If
[此贴子已经被作者于2024/5/11 10:44:10编辑过]
意思是StatusBar没有显示红色的文字?
msgbox(Str1 ) 能不能显示完整的内容?
请看上图。当6楼所示的<提示1>出现时,左下角的显示内容就是正确的;但是当我点击<提示1>的《确定》按钮后,这个提示框会消失,但同时左下角的红色部分内容也会消失掉。
建议使用
StatusBar.Message2
或者试试
StatusBar.DefaultMessage = Str1
StatusBar.Message1 = Str1