欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → [求助]vba如何读取指定注册表键值?

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4216人关注过本帖树形打印复制链接

主题:[求助]vba如何读取指定注册表键值?

帅哥哟,离线,有人找我吗?
bbking
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
[求助]vba如何读取指定注册表键值?  发帖心情 Post By:2014/4/8 13:41:34 [显示全部帖子]

比如我在后台里有句
把这个键值赋值成目前的交易时间供vba读取~
SETREGVAL('vba','mailtime',dynainfo(207));

但是vba如何读取我后台写入的指定的注册表键值呢?
下面这句没看懂~都不知道注册表键值去哪里找

'测试注册表读写
Sub TestRegistry()
 Set registry = CreateObject("stock.registry")
 Call registry.Open("software\weisoft\金字塔\settings")
 Call registry.WriteInt("id",123)
 result=registry.ReadInt("id")
 application.msgout result
End Sub


 回到顶部
帅哥哟,离线,有人找我吗?
bbking
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
  发帖心情 Post By:2014/4/9 9:26:45 [显示全部帖子]

图片点击可在新窗口打开查看


application.msgout result
这句弹不出来啊~

SETREGVAL('vba','mailtime',dynainfo(207));
我要使用mailtime这个键值~用vba与后台做应答~
怎么在vba里面调用出这个键值~

 回到顶部
帅哥哟,离线,有人找我吗?
bbking
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
  发帖心情 Post By:2014/4/9 10:01:59 [显示全部帖子]

首先用后台运行这句
SETREGVAL('vba','mailtime',dynainfo(207));
把时间赋值给注册表

然后用vba读取注册表这个键值~
vba再引用当前交易时间与这个键值对比~

if vba引用的当前交易时间-注册表键值>20秒 then begin//判断后台无应答为假死状态

StopAlarmRun       停止后台程序化预警

(这里可能需要停顿5-10秒,再启动后台)

StartAlarmRun      启动后台程序化预警

end


防止后台假死


 回到顶部
帅哥哟,离线,有人找我吗?
bbking
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
  发帖心情 Post By:2014/4/9 15:57:54 [显示全部帖子]

帮我想想办法啊

 回到顶部
帅哥哟,离线,有人找我吗?
bbking
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
  发帖心情 Post By:2014/4/10 1:23:50 [显示全部帖子]

谢谢这段vba代码
很好的范例
[此贴子已经被作者于2014/4/10 1:24:07编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
bbking
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
  发帖心情 Post By:2014/4/23 13:59:57 [显示全部帖子]

写个后台demo9003~就下面一段代码~
监控IF05~分笔周期高频刷新

SETREGVAL('vba','mailtime',dynainfo(207));

启动VBA运行7楼代码总是不断循环开关后台
   If ID = 1 Then
       MyTime = CStr(Hour(Time))+CStr(Minute(Time))+CStr(Second(Time))
       PelTime = TestRegistry()
      ‘ Application.MsgOut CLng(MyTime) - PelTime
Application.MsgOut CLng(MyTime)
Application.MsgOut PelTime
       If CLng(MyTime) - PelTime > 20 Then
           Application.MsgOut "发现后台异常,正在重启后台程序化"
           MarketData.StopAlarmRun
           MarketData.StartAlarmRun
       End If
   End If
End Sub

上面那句改一下~发现PelTime一直为0
~是否说明注册表读取出错?VBA一直没有读到正确的GETREGVAL('vba','mailtime',0)这个数值

 回到顶部