华视身份证读卡器网页信息采集失灵处理办法

文章描述了在使用身份证读卡器进行批量信息登记时遇到的问题,即读取约400-500人后读卡器失效,需重启电脑恢复。作者发现是ZKIDROnline.exe服务引起的问题,并编写了一个脚本来定时重启该服务,从而避免手动重启电脑。此外,还提供了创建计划任务的代码,以便按设定的间隔自动运行脚本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在采集信息登记时遇到一个问题,信息登记是用的身份证读卡器在网页端直接读取身份证信息并填入网页相应位置,遇到的问题是每次大概读400多不到500人时就会失灵,无法读取身份证信息,必须重启电脑才能生效,插拔读卡器,重启浏览器,清除缓存等不起作用。

经测试发现,虽然网页读卡失灵,但读卡器自带的软件并无问题,因此怀疑是网页插件导致的,经检测并未发现有插件,最后找到读卡器驱动ZKIDROnline.exe,安装后有个服务,如下图,尝试当出现问题后重启该服务,问题得到解决,可以再次读取身份证信息而无需重启电脑。

        手动操作比较麻烦,写了一个脚本文件,用来定时自动重启该服务。

脚本代码如下:

Set WshShell = WScript.CreateObject("WScript.Shell") 
If WScript.Arguments.Length = 0 Then 
  Set ObjShell = CreateObject("Shell.Application") 
  ObjShell.ShellExecute "wscript.exe" _ 
  , """" & WScript.ScriptFullName & """ RunAsAdministrator", , "runas", 1 
  WScript.Quit 
End if

Call InstallSchd(InsRestult)

Function SaveToDisk()

  dim fso, fs

  set fso = CreateObject("Scripting.FileSystemObject")

  set fs = fso.CreateTextFile("C:\ReadCard.vbs", true) '第二个参数表示目标文件存在时是否覆盖

  fs.writeline("Set WshShell = WScript.CreateObject(""WScript.Shell"") ")
  fs.writeline("If WScript.Arguments.Length = 0 Then")
  fs.writeline("Set ObjShell = CreateObject(""Shell.Application"") ")
  fs.writeline("  ObjShell.ShellExecute ""wscript.exe"" _ ")
  fs.writeline("  , """""""" & WScript.ScriptFullName & """""" RunAsAdministrator"", , ""runas"", 1 ")
  fs.writeline("  WScript.Quit ")
  fs.writeline("End if")

  fs.writeline("set WshShell = WScript.CreateObject (""WScript.Shell"")")
  fs.writeline("run=WshShell.Run (""net stop """"Security ZKIDROnline Service"""""",0,True)")
  fs.writeline("run=WshShell.Run (""net start """"Security ZKIDROnline Service"""""",0,True)")

  fs.Close()
  set fs = nothing
  set fso = nothing

End Function

Function InstallSchd(InsRestult)

  inputtime=inputbox("请输入重启服务间隔时间(小时),点击取消或直接确定为每隔2小时重启一次服务:","重启服务间隔时间")

  Call SaveToDisk()
  
  Set WshShell = WScript.CreateObject("WScript.Shell")  

  Set UserShell = CreateObject("wscript.network")
  
  AdminUser=UserShell.username
  
  if inputtime<>"" Then

    Run=WshShell.Run("SCHTASKS /Create /F /TN 核酸检测读卡器问题修复 /TR ""C:\ReadCard.vbs"" /RU """& AdminUser &""" /SC hourly /mo """& inputtime&"""",0,True)

  else

    Run=WshShell.Run("SCHTASKS /Create /F /TN 核酸检测读卡器问题修复 /TR ""C:\ReadCard.vbs"" /RU """& AdminUser &""" /SC hourly /mo 2",0,True)

  end if

  InsRestult=Run
  
  CheckInstall(Done)

End Function



Function CheckInstall(Done)
  if InsRestult=0 then 

   msgbox "计划任务安装成功"

  else

  InstallResult=msgbox ("安装失败,是否重新安装?",4,"请输入1-5的数字")

    if InstallResult=6 then Call InstallSchd(InsRestult)

  end if

End Function

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值