请问都市夜猫大虾回答以下问题:

jamesfu 2011-11-21 04:54:02
vfp如何获取灵锐I的硬件"序列号":
我的代码:
Declare long LIV_open in living1.dll long,long,long@
Declare long LIV_get_hardware_info in living1.dll long handle,long@
LIV_open(vendor,0,@handle)
LOCAL info(4)
store 0 to info
LIV_get_hardware_info(handle,@info)
?LOCAL info(1) &&开发商编号
?LOCAL info(2) &&设备唯一序列号
?LOCAL info(3) &&生产日期
*结果得出全部三个是一样开发商编号
*查了一下:info是结构体类型,C#为
*public struct LIV_hardware_info
* {
* public int developerNumber; // 开发商编号
* [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
* public byte[] serialNumber; // 设备唯一序列号
* public int setDate; // 生产日期
* public int reservation; // 保留
* }
*问题是我要得出唯一序列号,及生产日期,如何设计这段代码?
...全文
130 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
都市夜猫 2011-11-21
  • 打赏
  • 举报
回复
我没有硬件,下面的代码你试试:
...
cInfo = replicate(chr(0), 4+8+4+4)
if 0 == LIV_get_hardware_info(handle, @cInfo)
? '开发商编号:', ctobin(substr(cInfo,1,4), 'rs')
? '设备唯一序列号:', substr(cInfo,1+4,8)
? '生产日期:', ctobin(substr(cInfo,1+4+8,4), 'rs')
endif

jamesfu 2011-11-21
  • 打赏
  • 举报
回复
最前面忘了设初始变量,前加一行代码:
store 0 to handle,vendor
代码下载链接: https://pan.quark.cn/s/b27638adc362 在工业自动化监控领域中,WinCC 被视为一种常用的可视化软件,其功能在于构建人机界面(HMI)以及SCADA系统。本资料将阐释在WinCC环境下如何构建一个展现管道中流体流动的动态效果,此功能主要通过C动作脚本来完成。在此过程中,我们需要构建两个矩形,分别标记为 rec1 和 rec2。这两个矩形的高度相等,但 rec1 的宽度要小于 rec2。在具体实施时,rec1 将作为展示流体运动的可见单元,而 rec2 则作为辅助元素,尽管其“显示”属性被设为关闭,但在程序执行期间,其属性参数对流体动画的表现起着决定性作用,因为 rec2 与 rec1 的宽度差将决定流体每次移动的长度。 随后,我们需要将 rec1 和 rec2 整合为一个自定义对象。在自定义对象的属性配置中,应包含 rec1.Left、rec1.Width、rec1.Visible 和 rec2.Width 这些核心属性。这些属性将有助于在C脚本中精确控制对象的位置和可见状态,以达成流体运动的视觉效果。同时,用户可根据实际需求增加其他属性,以增强自定义对象的功能性。 在自定义对象的C脚本部分,我们设定了一个周期为“250ms”的触发器。该脚本的核心职责是计算并更新流体块的位置。借助 GetPropBOOL、GetPropWord 和 GetLeft 函数,我们可以获取对象的当前状态,涵盖其可见性、位置及宽度等参数。在循环操作中,流体块(rec1)将向右移动 rec2 - rec1 的距离,一旦流体块移出显示范围(即 rec1 的右边界达到或超过 rec2 的左边界),它将重新回到起始位置,从而形成流体持续流动的模...

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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