火箭>蓝区 > EMReadScreen api 方法未在缓冲区变量中存储值



尝试使用BlueZone软件提供的EMReadScreen方法从RUBY lang中的Bluezone屏幕读取值。但此方法不返回缓冲区字符串中的值。它在VB脚本中工作正常,但在Ruby中。

链接到 API 文档 - https://www3.rocketsoftware.com/bluezone/help/v71/en/bzsh/default.htm#%2Fbluezone%2Fhelp%2Fv71%2Fen%2Fbzsh%2Fbzaa_aref_EMReadScreen.htm

法典:

require 'win32ole'
class Dummy
  @system = WIN32OLE.new('BlueZone.System')
  sleep 2
  sessions = @system.Sessions
  sleep 2
  session = sessions.Open('path')
  sleep 2
  @system.WriteScreen("enter_screen", 18,40 ) # This one is working
  sleep 4
  @system.ReadScreen(@buffer_variable,05,18,40 ) # This line doesnt throw any error but buffer_varailble not storing any value.
  sleep 2
  puts @buffer_variable  # returns nothing, expecting to store "enter"
end

某些 BlueZone 函数要求您在使用变量之前对其进行初始化。 尝试在调用 ReadScreen 之前将@buffer_variable设置为空字符串:

  sleep 4
  @buffer_variable = ""
  @system.ReadScreen(@buffer_variable,05,18,40 )

最新更新