Rocket > BlueZone > EMReadScreen api Method not storing value in Buffer variable

223 Views Asked by At

Trying to read value from Bluezone screen in RUBY lang using EMReadScreen method provided by BlueZone software. But this method doesnt return value in the Buffer string. It works fine in VB script but in Ruby.

Link to API doc - https://www3.rocketsoftware.com/bluezone/help/v71/en/bzsh/default.htm#%2Fbluezone%2Fhelp%2Fv71%2Fen%2Fbzsh%2Fbzaa_aref_EMReadScreen.htm

Code :

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
1

There are 1 best solutions below

0
Kevin Casey On

Some BlueZone functions require you to initialize variables before using them. Try setting @buffer_variable to a blank string before calling ReadScreen:

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