Class: ScreenDriver::Driver

Inherits:
Object
  • Object
show all
Defined in:
lib/driver/driver.rb

Instance Method Summary collapse

Constructor Details

#initializeDriver

Returns a new instance of Driver.



4
5
6
7
8
# File 'lib/driver/driver.rb', line 4

def initialize
  @screen = Screen.new
  @mouse = Mouse.new
  @keys = Keys.new
end

Instance Method Details

#convert(image) ⇒ Object

Converts an image into an array of RGB values



97
98
99
100
101
# File 'lib/driver/driver.rb', line 97

def convert(image)
  ib = @screen.get_image(image)
  is = ImageSearch.new
  is.rgbArray(ib)  
end

#doubleclick(image) ⇒ Object



78
79
80
81
82
83
84
85
86
# File 'lib/driver/driver.rb', line 78

def doubleclick(image)
  screenshot = @screen.screenshot
  srch = @screen.get_image(image)
  is = ImageSearch.new
  is.searchImage(screenshot, srch)
  if (is.getX >= 0 && is.getY >= 0)
    @mouse.double_click(is.getX, is.getY)
  end
end

#find(image) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/driver/driver.rb', line 42

def find(image)
  ss = @screen.screenshot
  srch = @screen.get_image(image)
  is = ImageSearch.new
  is.searchImage(ss, srch)
  puts "#{is.getX} #{is.getY}"  
  if (is.getX < 0 || is.getY < 0)
    return false
  else
    return true
  end
end

#get_arr(image) ⇒ Object

Gets an array of RGB values. Slower than the convert function.



90
91
92
93
# File 'lib/driver/driver.rb', line 90

def get_arr(image)
  img = @screen.get_image(image)
  @screen.img_to_rgb_array(img)
end

#left_click(image) ⇒ Object



67
68
69
70
71
72
73
74
75
76
# File 'lib/driver/driver.rb', line 67

def left_click(image)
  screenshot = @screen.screenshot
  srch = @screen.get_image(image)
  is = ImageSearch.new
  is.searchImage(screenshot, srch)
  if (is.getX >= 0 && is.getY >= 0)
    @mouse.left_click(is.getX, is.getY)
  end

end

#move_mouse(image) ⇒ Object



55
56
57
58
59
60
61
62
63
64
# File 'lib/driver/driver.rb', line 55

def move_mouse(image)
  screenshot = @screen.screenshot
  srch = @screen.get_image(image)
  is = ImageSearch.new
  is.searchImage(screenshot, srch)
  if (is.getX >= 0 && is.getY >= 0)
    @mouse.mouse_move(is.getX, is.getY)
  end

end

#press_keys(string) ⇒ Object



10
11
12
13
14
15
16
17
18
# File 'lib/driver/driver.rb', line 10

def press_keys(string)
  robot = Robot.new
  keys = string.upcase.split("")
  keys.each do |key|
    kc = @keys.get(key)
    robot.keyPress(kc)
    robot.keyRelease(kc)
  end
end

#press_modified_key(modifier, key) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/driver/driver.rb', line 20

def press_modified_key(modifier, key)
  m = @keys.get(modifier.upcase)
  k = @keys.get(key.upcase)
  robot = Robot.new
  robot.keyPress(m)
  robot.keyPress(k)
  robot.keyRelease(k)
  robot.keyRelease(m)
end

#screen_to_file(filename) ⇒ Object



30
31
32
33
# File 'lib/driver/driver.rb', line 30

def screen_to_file(filename)
  ss = @screen.screenshot
  @screen.put_image(ss, filename)
end

#search(img1, img2) ⇒ Object

Search function will allow you to search for a images within image files.



105
106
107
108
109
110
111
112
# File 'lib/driver/driver.rb', line 105

def search(img1, img2)
  i1 = @screen.get_image(img1)
  i2 = @screen.get_image(img2)
  is = ImageSearch.new
  #is.rgbArray(ib)  
  is.searchImage(i1, i2)
  return is.getX, is.getY
end

#sub_screen_to_file(filename, x, y, w, h) ⇒ Object



35
36
37
38
39
40
# File 'lib/driver/driver.rb', line 35

def sub_screen_to_file(filename, x, y, w, h)
  ss = @screen.screenshot
  sub = ss.getSubimage(x, y, w, h)
  @screen.put_image(sub, filename)

end