以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- [求助]vba如何读取指定注册表键值? (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=63612) |
|
-- 作者:bbking -- 发布时间:2014/4/8 13:41:34 -- [求助]vba如何读取指定注册表键值? 比如我在后台里有句 把这个键值赋值成目前的交易时间供vba读取~ SETREGVAL(\'vba\',\'mailtime\',dynainfo(207));但是vba如何读取我后台写入的指定的注册表键值呢? 下面这句没看懂~都不知道注册表键值去哪里找
|
|
-- 作者:王锋 -- 发布时间:2014/4/8 18:31:04 -- Sub TestRegistry()
这样试试 |
|
-- 作者:bbking -- 发布时间:2014/4/9 9:26:45 -- 这句弹不出来啊~ SETREGVAL(\'vba\',\'mailtime\',dynainfo(207)); 我要使用mailtime这个键值~用vba与后台做应答~ 怎么在vba里面调用出这个键值~
|
|
-- 作者:王锋 -- 发布时间:2014/4/9 9:52:34 -- 没弹出来说明这个VBA语句没有运行,你可以再把需求描述的清楚一些,我们再看看如何帮你解决 |
|
-- 作者:bbking -- 发布时间:2014/4/9 10:01:59 -- 首先用后台运行这句 SETREGVAL(\'vba\',\'mailtime\',dynainfo(207)); 把时间赋值给注册表 然后用vba读取注册表这个键值~ vba再引用当前交易时间与这个键值对比~ if vba引用的当前交易时间-注册表键值>20秒 then begin//判断后台无应答为假死状态 StopAlarmRun 停止后台程序化预警 (这里可能需要停顿5-10秒,再启动后台) StartAlarmRun 启动后台程序化预警 end 防止后台假死 |
|
-- 作者:bbking -- 发布时间:2014/4/9 15:57:54 -- 帮我想想办法啊 |
|
-- 作者:王锋 -- 发布时间:2014/4/9 18:38:43 -- \'VBA启动时事件
Sub APPLICATION_Timer(ID)
Function TestRegistry() |
|
-- 作者:bbking -- 发布时间:2014/4/10 1:23:50 -- 谢谢这段vba代码 很好的范例
[此贴子已经被作者于2014/4/10 1:24:07编辑过]
|
|
-- 作者:bbking -- 发布时间:2014/4/23 13:59:57 -- 写个后台demo9003~就下面一段代码~ 监控IF05~分笔周期高频刷新 启动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)这个数值
|
|
-- 作者:王锋 -- 发布时间:2014/4/23 14:05:37 -- 是的,你的注册表这个值有问题,你可以打开注册表编辑器,看看里面的数值到底PEL公式置进去没有
|