注册表操作,偶尔失败的问题

eisldkw 2019-06-21 09:41:06
公司开发的软件在退出时 主窗体的 QueryUnload进程中 , 保存退出时间到数据库和注册表,代码如下

dim QuitTime as date

QuitTime =now()

Conn.Execute " update softinfo set 退出时间='" & cstr(QuitTime ) & "' "

SaveSetting "本软件", "退出时间", cstr(QuitTime )

在软件刚开始运行时,软件会自动比对这两个退出时间,两致一致则进入操作界面,如不一致则关闭本程序

现在发现,偶尔会出现 保存到数据库中的时间与 从注册表中提取出的时间不一致,经比对发现软件退出时数据库中的保存的退出时间更新了,但注册表中保存的退出时间没有更新,WIN10下这种情况出现的比较多,XP下也有出现 。请问是何原因?有朋友猜测是杀毒软件之类阻碍了 软件退出时对注册表的操作。

请大家帮忙分析一下,是何原因,以及如何解决,感谢大家。




...全文
160 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
eisldkw 2019-06-24
  • 打赏
  • 举报
回复
引用 1 楼 脆皮大雪糕 的回复:
要不就先savesetting 然后getsetting看看结果对不对,结果对了再发数据库 不对的时候取错误写日志啥的,便于跟踪问题。 这种不是百分百触发的问题,比较麻烦。
感谢,非常感谢。
milaoshu1020 2019-06-21
  • 打赏
  • 举报
回复
你的参数个数好像不对,SaveSetting应该有4个参数,这样用:
SaveSetting app.exename,"本软件", "退出时间", cstr(QuitTime )

根据楼上的方法,可以做个for循环,重复写入20次,写入成功的话就退出循环;

dim i as integer
for i=1 to 20
SaveSetting app.exename,"本软件", "退出时间", cstr(QuitTime )
if getsetting(app.exename,"本软件", "推出时间","") = cstr(QuitTime) then
exit for
end if
next
eisldkw 2019-06-21
  • 打赏
  • 举报
回复
引用 1 楼 脆皮大雪糕 的回复:
要不就先savesetting 然后getsetting看看结果对不对,结果对了再发数据库
不对的时候取错误写日志啥的,便于跟踪问题。
这种不是百分百触发的问题,比较麻烦。


非常的感谢。
脆皮大雪糕 2019-06-21
  • 打赏
  • 举报
回复
要不就先savesetting 然后getsetting看看结果对不对,结果对了再发数据库 不对的时候取错误写日志啥的,便于跟踪问题。 这种不是百分百触发的问题,比较麻烦。
milaoshu1020 2019-06-21
  • 打赏
  • 举报
回复
改下错别字:
推->退

dim i as integer
for i=1 to 20
SaveSetting app.exename,"本软件", "退出时间", cstr(QuitTime )
if getsetting(app.exename,"本软件", "退出时间","") = cstr(QuitTime) then
exit for
end if
next
eisldkw 2019-06-21
  • 打赏
  • 举报
回复
引用 3 楼 milaoshu1020 的回复:
你的参数个数好像不对,SaveSetting应该有4个参数,这样用:
SaveSetting app.exename,"本软件", "退出时间", cstr(QuitTime )

根据楼上的方法,可以做个for循环,重复写入20次,写入成功的话就退出循环;

dim i as integer
for i=1 to 20
SaveSetting app.exename,"本软件", "退出时间", cstr(QuitTime )
if getsetting(app.exename,"本软件", "推出时间","") = cstr(QuitTime) then
exit for
end if
next


感谢,你说的对,是我把代码粘贴过来后,整理的时候把一个参数整理没了,工程项目中此处没错,是4个参数。谢谢。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧