module AutoClickMethods

Public Instance Methods

cursor_position() click to toggle source

END TEMP #####################

# File lib/auto_click.rb, line 165
def cursor_position
  point = " " * 8
  User32.GetCursorPos(point)
  point.unpack('LL')  
end
double_click() click to toggle source
# File lib/auto_click.rb, line 69
def double_click
  left_click
  left_click
end
double_click_32() click to toggle source
# File lib/auto_click.rb, line 119
def double_click_32
  left_click_32
  left_click_32
end
get_key_state(key_name) click to toggle source
# File lib/auto_click.rb, line 349
def get_key_state(key_name)
  code=VirtualKey.code_from_name(key_name)
  User32.GetKeyState(code)
  # For normal keys (such as a)
  # When the key is down the value is -128
  # When the key is up the value is 0
   
  # For toggle keys (such as capslock)
  # When the cap key is down and the caplock is on the value is -127
  # When the cap key is down and the caplock is off the value is -128
  # When the cap key is Up and the caplock is on the value is 1
  # When the cap key is Up and the caplock is off the value is 0
end
get_screen_resolution() click to toggle source
# File lib/auto_click.rb, line 21
def get_screen_resolution
  [User32.GetSystemMetrics(0), User32.GetSystemMetrics(1)]
end
key_down(key_name) click to toggle source
# File lib/auto_click.rb, line 205
def key_down(key_name)
  code=VirtualKey.code_from_name(key_name)
  send_input([InputStructure.keyboard_input(code,0x0000)])
end
key_down_32(key_name) click to toggle source
# File lib/auto_click.rb, line 153
def key_down_32(key_name)
  code=VirtualKey.code_from_name(key_name)
  send_input([InputStructure.keyboard_input_32(code,0x0000)])
end
key_stroke(key_name) click to toggle source
# File lib/auto_click.rb, line 199
def key_stroke(key_name)
  code=VirtualKey.code_from_name(key_name)
  send_input([InputStructure.keyboard_input(code,0x0000),
              InputStructure.keyboard_input(code,0x0002)])
end
key_stroke_32(key_name) click to toggle source
# File lib/auto_click.rb, line 147
def key_stroke_32(key_name)
  code=VirtualKey.code_from_name(key_name)
  send_input([InputStructure.keyboard_input_32(code,0x0000),
              InputStructure.keyboard_input_32(code,0x0002)])
end
key_up(key_name) click to toggle source
# File lib/auto_click.rb, line 210
def key_up(key_name)
  code=VirtualKey.code_from_name(key_name)
  send_input([InputStructure.keyboard_input(code,0x0002)])
end
key_up_32(key_name) click to toggle source
# File lib/auto_click.rb, line 158
def key_up_32(key_name)
  code=VirtualKey.code_from_name(key_name)
  send_input([InputStructure.keyboard_input_32(code,0x0002)])
end
left_click() click to toggle source
# File lib/auto_click.rb, line 39
def left_click
  send_input( [@@leftdown, @@leftup] )
end
left_click_32() click to toggle source
# File lib/auto_click.rb, line 89
def left_click_32
  send_input( [@@leftdown32, @@leftup32] )
end
left_drag(sx,sy,ex,ey) click to toggle source
# File lib/auto_click.rb, line 177
def left_drag(sx,sy,ex,ey)
  mouse_move sx,sy
  sleep 0.1
  send_input( [@@leftdown] )
  sleep 0.1
  mouse_move ex,ey
  sleep 0.1
  send_input( [@@leftup] )
  sleep 0.1
end
left_drag_32(sx,sy,ex,ey) click to toggle source
# File lib/auto_click.rb, line 125
def left_drag_32(sx,sy,ex,ey)
  mouse_move sx,sy
  sleep 0.1
  send_input( [@@leftdown32] )
  sleep 0.1
  mouse_move ex,ey
  sleep 0.1
  send_input( [@@leftup32] )
  sleep 0.1
end
middle_click() click to toggle source
# File lib/auto_click.rb, line 43
def middle_click
  send_input( [@@middledown, @@middleup] )
end
middle_click_32() click to toggle source
# File lib/auto_click.rb, line 93
def middle_click_32
  send_input( [@@middledown32, @@middleup32] )
end
mouse_down(button_name) click to toggle source
# File lib/auto_click.rb, line 47
def mouse_down(button_name)
  case button_name
  when :right
    send_input( [@@rightdown] )
  when :middle
    send_input( [@@middledown] )  
  else
    send_input( [@@leftdown] )
  end
end
mouse_down_32(button_name) click to toggle source
# File lib/auto_click.rb, line 97
def mouse_down_32(button_name)
  case button_name
  when :right
    send_input( [@@rightdown32] )
  when :middle
    send_input( [@@middledown32] )  
  else
    send_input( [@@leftdown32] )
  end
end
mouse_move(x,y) click to toggle source
# File lib/auto_click.rb, line 25
def mouse_move(x,y)
  User32.SetCursorPos(x,y)
end
mouse_move_percentage(x,y) click to toggle source
# File lib/auto_click.rb, line 29
def mouse_move_percentage(x,y)
  screen_resolution = get_screen_resolution()
  User32.SetCursorPos(get_screen_resolution[0]*x,get_screen_resolution[1]*y)
end
mouse_scroll(d) click to toggle source
# File lib/auto_click.rb, line 171
def mouse_scroll(d) 
  scroll = InputStructure.mouse_input(0,0,d*120,0x0800)
  send_input( [scroll])
end
mouse_up(button_name) click to toggle source
# File lib/auto_click.rb, line 58
def mouse_up(button_name)
  case button_name
  when :right
    send_input( [@@rightup] )
  when :middle
    send_input( [@@middleup] )  
  else
    send_input( [@@leftup] )
  end
end
mouse_up_32(button_name) click to toggle source
# File lib/auto_click.rb, line 108
def mouse_up_32(button_name)
  case button_name
  when :right
    send_input( [@@rightup32] )
  when :middle
    send_input( [@@middleup32] )  
  else
    send_input( [@@leftup32] )
  end
end
right_click() click to toggle source
# File lib/auto_click.rb, line 35
def right_click
  send_input( [@@rightdown, @@rightup] )
end
right_click_32() click to toggle source
# File lib/auto_click.rb, line 85
def right_click_32
  send_input( [@@rightdown32, @@rightup32] )
end
right_drag(sx,sy,ex,ey) click to toggle source
# File lib/auto_click.rb, line 188
def right_drag(sx,sy,ex,ey)
  mouse_move sx,sy
  sleep 0.1
  send_input( [@@rightdown] )
  sleep 0.1
  mouse_move ex,ey
  sleep 0.1
  send_input( [@@rightup] )
  sleep 0.1
end
right_drag_32(sx,sy,ex,ey) click to toggle source
# File lib/auto_click.rb, line 136
def right_drag_32(sx,sy,ex,ey)
  mouse_move sx,sy
  sleep 0.1
  send_input( [@@rightdown32] )
  sleep 0.1
  mouse_move ex,ey
  sleep 0.1
  send_input( [@@rightup32] )
  sleep 0.1
end
send_input(inputs) click to toggle source
# File lib/auto_click.rb, line 15
def send_input(inputs)
  n = inputs.size
  ptr = inputs.collect {|i| i.to_s}.join
  User32.SendInput(n, ptr, inputs[0].size)    
end
type(string) click to toggle source
# File lib/auto_click.rb, line 215
def type(string)
  key_stroke(:capslock) if get_key_state(:capslock)==1
  string=string.to_s
  string.each_char do |c|
    if ('a'..'z').include? c
      key_stroke(c.to_sym)
    elsif ('A'..'Z').include? c
      key_down(:leftshift)
      key_stroke(c.to_sym)
      key_up(:leftshift)
    elsif ('0'..'9').include? c
      key_stroke(('num'+c).to_sym)
    else
      case c
      when ' '
        key_stroke(:space)
      when ';'
        key_stroke(:semicolon)
      when ':'
        key_down(:leftshift)
        key_stroke(:semicolon)
        key_up(:leftshift)
      when '='
        key_stroke(:equal)
      when '+'
        key_down(:leftshift)
        key_stroke(:plus)
        key_up(:leftshift)
      when ','
        key_stroke(:comma)
      when '<'
        key_down(:leftshift)
        key_stroke(:smallerthan)
        key_up(:leftshift)  
      when '-'
        key_stroke(:hyphen)
      when '_'
        key_down(:leftshift)
        key_stroke(:underscore)
        key_up(:leftshift)
      when '.'
        key_stroke(:period)
      when '>'
        key_down(:leftshift)
        key_stroke(:greaterthan)
        key_up(:leftshift)
      when '/'
        key_stroke(:slash)
      when '?'
        key_down(:leftshift)
        key_stroke(:question)
        key_up(:leftshift)
      when '`'
        key_stroke(:grave)
      when '~'
        key_down(:leftshift)
        key_stroke(:tilde)
        key_up(:leftshift)
      when '/'
        key_stroke(:slash)
      when '?'
        key_down(:leftshift)
        key_stroke(:question)
        key_up(:leftshift)  
      when '['
        key_stroke(:branket)
      when '{'
        key_down(:leftshift)
        key_stroke(:branket)
        key_up(:leftshift)
      when ']'
        key_stroke(:closebranket)
      when '}'
        key_down(:leftshift)
        key_stroke(:closebranket)
        key_up(:leftshift)
      when '\\'   # You need to esapce \ in the parameter string
        key_stroke(:backslash)
      when '|'
        key_down(:leftshift)
        key_stroke(:pipe)
        key_up(:leftshift)
      when '\''   # escape ' only for single quote string
        key_stroke(:quote)
      when '"'    # escape " only for double quote string
        key_down(:leftshift)
        key_stroke(:doublequote)
        key_up(:leftshift)
      when '!'
        key_down(:leftshift)
        key_stroke(:num1)
        key_up(:leftshift)
      when '@'
        key_down(:leftshift)
        key_stroke(:num2)
        key_up(:leftshift)  
      when '#'    # The sharp sign need to be escape in single quote string
        key_down(:leftshift)
        key_stroke(:num3)
        key_up(:leftshift)
      when '$'
        key_down(:leftshift)
        key_stroke(:num4)
        key_up(:leftshift)
      when '%'
        key_down(:leftshift)
        key_stroke(:num5)
        key_up(:leftshift)
      when '^'
        key_down(:leftshift)
        key_stroke(:num6)
        key_up(:leftshift)
      when '&'
        key_down(:leftshift)
        key_stroke(:num7)
        key_up(:leftshift)  
      when '*'
        key_down(:leftshift)
        key_stroke(:num8)
        key_up(:leftshift)
      when '('
        key_down(:leftshift)
        key_stroke(:num9)
        key_up(:leftshift)
      when ')'
        key_down(:leftshift)
        key_stroke(:num0)
        key_up(:leftshift)  
      end
      
    end
  end
end