au3 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  #Encoding: UTF-8
2
2
  #This file is part of au3.
3
- #Copyright © 2009 Marvin Gülker
3
+ #Copyright © 2009, 2010 Marvin Gülker, Steven Heidel
4
4
  #
5
5
  #au3 is published under the same terms as Ruby.
6
6
  #See http://www.ruby-lang.org/en/LICENSE.txt
@@ -9,15 +9,18 @@ module AutoItX3
9
9
 
10
10
  class << self
11
11
 
12
- #====Arguments
12
+ #Maps a network drive.
13
+ #===Parameters
13
14
  #Every | is ment to be a backslash.
14
- #- device: The device letter to map the drive to, in the form <tt>"X:"</tt>. If this is an asterisk *, the next available letter will be used.
15
- #- remote_share: The address of the network drive, in the form <tt>"||Server|Drive"</tt> or <tt>"||Server|Share"</tt>.
16
- #- flags (0): A combination (via +) of 1 (PersistantMapping) and 8 (Show authentification dialog if neccessary).
17
- #- username (""): The username, of the form <tt>"username"</tt> or <tt>"Domain|username"</tt>.
18
- #- password (""): The login password.
19
- #====Description
20
- #Maps a network drive and raises an Au3Error if the action is not successful.
15
+ #[+device+] The device letter to map the drive to, in the form <tt>"X:"</tt>. If this is an asterisk *, the next available letter will be used.
16
+ #[+remote_share+] The address of the network drive, in the form <tt>"||Server|Drive"</tt> or <tt>"||Server|Share"</tt>.
17
+ #[+flags+] (0) A combination (via +) of 1 (PersistantMapping) and 8 (Show authentification dialog if neccessary).
18
+ #[+username+] ("") The username, of the form <tt>"username"</tt> or <tt>"Domain|username"</tt>.
19
+ #[+password+] (""): The login password.
20
+ #===Return value
21
+ #The assigned drive letter.
22
+ #===Raises
23
+ #[Au3Error] Failed to connect the network drive.
21
24
  def add_drive_map(device, remote_share, flags = 0, username = "", password = "")
22
25
  @functions[__method__] ||= AU3_Function.new("DriveMapAdd", 'SSLSSPI')
23
26
  buffer = " " * BUFFER_SIZE
@@ -35,21 +38,29 @@ module AutoItX3
35
38
  end
36
39
  end
37
40
 
38
- #Disconnects a network drive. +device+ can be either of form <tt>"X:"</tt> or
39
- #<tt>"||Server|share"</tt> (imagine every | to be a backslash).
40
- #Raises an Au3Error if the disconnection was unsucsessful.
41
+ #Disconnects a network drive.
42
+ #===Parameters
43
+ #[+device+] The device to disconnect. Can be either of form <tt>"X:"</tt> or <tt>"||Server|share</tt> (| is a backslash).
44
+ #===Return value
45
+ #nil.
46
+ #===Raises
47
+ #[Au3Error] Couldn't disconnect the network drive.
41
48
  def delete_drive_map(device)
42
49
  @functions[__method__] ||= AU3_Function.new("DriveMapDel", 'S', 'L')
43
50
  result = @functions[__method__].call(device)
44
51
  if result == 0
45
52
  raise(Au3Error, "Failed to remove remote device '#{device}'!")
46
53
  end
47
- true
54
+ nil
48
55
  end
49
56
 
50
- #Gets the server of the network drive named by +device+ or raises an Au3Error if it
51
- #can't access the device for some reason. The returned string will be of form
52
- #<tt>"||Server|drive"</tt> (every | is ment to be a backslash).
57
+ #Gets the server of a network drive.
58
+ #===Parameters
59
+ #[+device+] The device to check.
60
+ #===Return value
61
+ #A string of form <tt>"||Server|drive"</tt>, where every | is meant to be a backslash.
62
+ #===Raises
63
+ #[Au3Error] Couldn't retrieve the requested information.
53
64
  def get_drive_map(device)
54
65
  @functions[__method__] ||= AU3_Function.new("DriveMapGet", 'SPI')
55
66
  buffer = " " * BUFFER_SIZE
@@ -63,6 +74,14 @@ module AutoItX3
63
74
  end
64
75
 
65
76
  #Deletes a key-value pair in a standard <tt>.ini</tt> file.
77
+ #===Parameters
78
+ #[+filename+] The filename of the file.
79
+ #[+section+] The section the key resides in.
80
+ #[+key+] The key to delete.
81
+ #===Return value
82
+ #true on success, otherwise false.
83
+ #===Example
84
+ # AutoItX3.delete_ini_entry("myini.ini", "mysection", "mykey")
66
85
  def delete_ini_entry(filename, section, key)
67
86
  @functions[__method__] ||= AU3_Function.new("IniDelete", 'SSS', 'L')
68
87
  if @functions[__method__].call(filename.wide, section.wide, key.wide) == 0
@@ -72,9 +91,23 @@ module AutoItX3
72
91
  end
73
92
  end
74
93
 
75
- #Reads a value from a standard <tt>.ini</tt> file or returns the string given by +default+
76
- #if it can't find the key. The returned string will have a maximum length of 99,999 characters.
77
- def read_ini_entry(filename, section, key, default = nil)
94
+ #Reads a value from a standard <tt>.ini</tt> file.
95
+ #===Parameters
96
+ #[+filename+] The filename of the file.
97
+ #[+section+] The section the key resides in.
98
+ #[+key+] The key to read.
99
+ #[+default+] ("")A string to return on failure.
100
+ #===Return value
101
+ #The value of the +default+ parameter.
102
+ #===Example
103
+ # puts AutoItX3.read_ini_entry("myini.ini", "mysection", "mykey") #=> myvalue
104
+ # #Nonexistant key:
105
+ # puts AutoItX3.read_ini_entry("myini.ini", "mysection", "mynonexsistingkey") #=>
106
+ # #With default value
107
+ # puts AutoItX3.read_ini_entry("myini,ini", "mysection", "mynonexsistingkey", "NOTHING") #=> NOTHING
108
+ #===Remarks
109
+ #The returned string has a maximum length of <tt>AutoItX3::BUFFER_SIZE - 1 </tt> characters.
110
+ def read_ini_entry(filename, section, key, default = "")
78
111
  @functions[__method__] ||= AU3_Function.new("IniRead", 'SSSSPI')
79
112
  buffer = " " * BUFFER_SIZE
80
113
  buffer.wide!
@@ -82,8 +115,22 @@ module AutoItX3
82
115
  buffer.normal.strip
83
116
  end
84
117
 
85
- #Writes the specified key-value pair in a <tt>.ini</tt> file. Existing key-value pairs are overwritten.
86
- #A non-existing file will be created. Raises an Au3Error if +filename+ is read-only.
118
+ #Writes the specified key-value pair in a <tt>.ini</tt> file.
119
+ #===Parameters
120
+ #[+filename+] The file's filename.
121
+ #[+section+] The section you want to write in.
122
+ #[+key+] The key whose value you want to write.
123
+ #[+value+] The value to write.
124
+ #===Return value
125
+ #The +value+ argument.
126
+ #===Raises
127
+ #[Au3Error] +filename+ is read-only.
128
+ #===Example
129
+ # AutoItX3.write_ini_entry("minini.ini", "mysection", "mykey", "myvalue")
130
+ #===Remarks
131
+ #Both the +section+ and the +key+ will be created if they aren't there already. Likewise is the file if nonexistant.
132
+ #
133
+ #If the specified key-value pair already exists, it will be overwritten.
87
134
  def write_ini_entry(filename, section, key_value, value)
88
135
  @functions[__method__] ||= AU3_Function.new("IniWrite", 'SSSS', 'L')
89
136
 
@@ -1,6 +1,6 @@
1
1
  #Encoding: UTF-8
2
2
  #This file is part of au3.
3
- #Copyright © 2009 Marvin Gülker
3
+ #Copyright © 2009, 2010 Marvin Gülker, Steven Heidel
4
4
  #
5
5
  #au3 is published under the same terms as Ruby.
6
6
  #See http://www.ruby-lang.org/en/LICENSE.txt
@@ -9,8 +9,22 @@ module AutoItX3
9
9
 
10
10
  class << self
11
11
 
12
- #Computes a checksum of the pixels in the specified region. If the checksum
13
- #changes, that only indidcates that *something* has changed, not *what*.
12
+ #Computes a checksum of the pixels in the specified region.
13
+ #===Parameters
14
+ #[+x1+] Upper-left X-Coordinate of the region.
15
+ #[+y1+] Upper-left Y-Coordinate of the region.
16
+ #[+x2+] Lower-right X-Coordinate of the region.
17
+ #[+y2+] Lower-right Y-Coordinate of the region.
18
+ #[+step+] (1) Indicatates how many pixels are used for the computation. Every <tt>step</tt>-th pixel will be checked.
19
+ #===Return value
20
+ #The computed checksum.
21
+ #===Example
22
+ # #Compute the checksum of [0, 0, 100, 100]
23
+ # p AutoItX3.pixel_checksum(0, 0, 100, 100) #=> 2252979179
24
+ # #Then move a window into this region.
25
+ # p AutoItX3.pixel_checksum(0, 0, 100, 100) #=> 4287194203
26
+ #===Remarks
27
+ #If the checksum changes, that only indidcates that *something* has changed, not *what*.
14
28
  #Note that this method may be very time-consuming, so think about increasing the
15
29
  #+step+ parameter (but bear in mind that that will generate more inaccurate checksums).
16
30
  def pixel_checksum(x1, y1, x2, y2, step = 1)
@@ -18,8 +32,18 @@ module AutoItX3
18
32
  @functions[__method__].call(x1, y1, x2, y2, step)
19
33
  end
20
34
 
21
- #Retrieves the *decimal* color value of a pixel. If you want the hexadecimal,
22
- #pass in true as a third parameter.
35
+ #Retrieves the color value of the pixel at the specified position.
36
+ #===Parameters
37
+ #[+x+] The pixel's X coordinate.
38
+ #[+y+] The pixel's Y coordinate.
39
+ #[+hex+] Changes the return value, see below.
40
+ #===Return value
41
+ #The decimal color value of the specified pixel. If you set +hex+ to true,
42
+ #you get a string in form <tt>#RRGGBB</tt> that describes the color in
43
+ #hexadecimal format.
44
+ #===Example
45
+ # p AutoItX3.get_pixel_color(15, 15) #=> 1057590
46
+ # p AutoItX3.get_pixel_color(15, 15, true) #=> "#102336"
23
47
  def get_pixel_color(x, y, hex = false)
24
48
  @functions[__method__] ||= AU3_Function.new("PixelGetColor", 'LL', 'L')
25
49
  res = @functions[__method__].call(x, y)
@@ -1,6 +1,6 @@
1
1
  #Encoding: UTF-8
2
2
  #This file is part of au3.
3
- #Copyright © 2009 Marvin Gülker
3
+ #Copyright © 2009, 2010 Marvin Gülker, Steven Heidel
4
4
  #
5
5
  #au3 is published under the same terms as Ruby.
6
6
  #See http://www.ruby-lang.org/en/LICENSE.txt
@@ -9,9 +9,23 @@ module AutoItX3
9
9
 
10
10
  class << self
11
11
 
12
- #Simulates the given keystrokes. If you don't
13
- #set +flag+ to true (which disables escape sequences), you may
14
- #use some of the follwing escape sequences in braces { and }
12
+ #Simulates keyboard input.
13
+ #===Parameters
14
+ #[+keys+] The keystrokes to simulate. See _Remarks_.
15
+ #[+flag+] (+false+) If set to +true+, escape sequences in braces { and } are ignored.
16
+ #===Return value
17
+ #nil.
18
+ #===Example
19
+ # #Simulate [SHIFT] + [A], [B] and [C].
20
+ # AutoItX3.send_keys("Abc")
21
+ # #Simulate [A], [ESC] and b.
22
+ # AutoItX3.send_keys("a{ESC}b")
23
+ # #Ignore the escape sequence and send it as regular keystrokes.
24
+ # AutoItX3.send_keys("a{ESC}b", true)
25
+ # #Sends [ALT] + [F]
26
+ # AutoItX3.send_keys("!F")
27
+ #===Remarks
28
+ #You may use some of the follwing escape sequences in braces { and }
15
29
  #(copied from the AutoItX3 help):
16
30
  # Escape sequence | Resulting keypress
17
31
  # ====================+============================================================
@@ -1,6 +1,6 @@
1
1
  #Encoding: UTF-8
2
2
  #This file is part of au3.
3
- #Copyright © 2009 Marvin Gülker
3
+ #Copyright © 2009, 2010 Marvin Gülker, Steven Heidel
4
4
  #
5
5
  #au3 is published under the same terms as Ruby.
6
6
  #See http://www.ruby-lang.org/en/LICENSE.txt
@@ -9,9 +9,20 @@ module AutoItX3
9
9
 
10
10
  class << self
11
11
 
12
- #Blocks user input or enables it (but the user can gain back control by
13
- #pressing [CTRL] + [ALT] + [DEL]). In older versions of Windows,
14
- #AutoIt may also be blocked. Does not work with Windows Vista.
12
+ #Blocks user input.
13
+ #===Parameters
14
+ #[+val+] Wheather the user input should be blocked or not.
15
+ #===Return value
16
+ #The passed argument, double-negated to ensure a boolean value.
17
+ #===Example
18
+ # p AutoItX3.input_blocked? #=> false
19
+ # AutoItX3.block_input = true
20
+ # p AutoItX3.input_blocked? #=> true
21
+ # AutoItX3.block_input = false
22
+ # p AutoItX3.input_blocked? #=> false
23
+ #===Remarks
24
+ #The user can gain back control by pressing [CTRL] + [ALT] + [DEL].
25
+ #In older versions of Windows AutoIt itself may also be blocked.
15
26
  def block_input=(val)
16
27
  @functions[__method__] ||= AU3_Function.new("BlockInput", 'L')
17
28
  @functions[__method__].call(!!val)
@@ -19,45 +30,72 @@ module AutoItX3
19
30
  end
20
31
 
21
32
  #Returns wheather or not input is blocked by AutoItX3.
33
+ #===Return value
34
+ #true or false.
35
+ #===Example
36
+ # #See #block_input.
37
+ #===Remarks
38
+ #This method fails to report that input has been enabled again if the
39
+ #user has pressed [CTRL] + [ALT] + [DEL] after a call to #block_input=.
22
40
  def input_blocked?
23
41
  @input_blocked ||= false
24
42
  end
25
43
 
26
- #Opens the cd drive named in +drive+. +drive+ should be of form
27
- #<tt>"X:"</tt>. The cd tray must be local at this computer, remote drives
44
+ #Opens a CD/DVD drive.
45
+ #===Parameters
46
+ #[+tray+] The drive to eject, a string of form <tt>"X:"</tt>.
47
+ #===Return value
48
+ #true on success, false otherwise.
49
+ #===Example
50
+ # AutoItX3.open_cd_tray("E:") #| true
51
+ # AutoItX3.open_cd_tray("Y:") #| false
52
+ #===Remarks
53
+ #The cd tray must be local at this computer, remote drives
28
54
  #cannot be accessed.
29
55
  def open_cd_tray(tray)
30
56
  @functions[__method__] ||= AU3_Function.new("CDTray", 'SS', 'L')
31
57
  raise(ArgumentError, "The drive name has to be of form 'X:'!") unless tray =~ /^\w:$/
32
- if @functions[__method__].call(tray.wide, "open".wide) == 0
33
- return false
34
- else
35
- return true
36
- end
58
+ @functions[__method__].call(tray.wide, "open".wide) == 1
37
59
  end
38
60
 
39
- #Closes a cd tray. +drive+ should be of form <tt>"X:"</tt>. The cd tray must
40
- #be local at this computer, remote drives cannot be accessed.
41
- #The method may return true if +drive+ is a laptop drive which can only be
61
+ #Closes a CD/DVD drive.
62
+ #===Parameters
63
+ #[+tray+] The drive to close.
64
+ #===Return value
65
+ #true on success, false otherwise.
66
+ #===Example
67
+ # AutoItX3.open_cd_tray("E:")
68
+ # AutoItX3.close_cd_tray("E:")
69
+ #===Remarks
70
+ #The cd tray must be local at this computer, remote drives
71
+ #cannot be accessed.
72
+ #This method may return true if +drive+ is a laptop drive which can only be
42
73
  #closed manually.
43
74
  def close_cd_tray(tray)
44
75
  @functions[__method__] ||= AU3_Function.new("CDTray", 'SS', 'L')
45
76
  raise(ArgumentError, "The drive name has to be of form 'X:'!") unless tray =~ /^\w:$/
46
- if @functions[__method__].call(tray.wide, "closed".wide) == 0
47
- return false
48
- else
49
- return true
50
- end
77
+ @functions[__method__].call(tray.wide, "closed".wide) == 1
51
78
  end
52
79
 
53
80
  #Determines wheather the current user has administrator privileges.
81
+ #===Return value
82
+ #true or false,
83
+ #===Example
84
+ # p AutoItX3.is_admin? #=> false
54
85
  def is_admin?
55
86
  @functions[__method__] ||= AU3_Function.new("IsAdmin", 'V', 'L')
56
- return false if @functions[__method__].call == 0
57
- true
87
+ @functions[__method__].call == 1
58
88
  end
59
89
 
60
90
  #Writes +text+ to the Windows clipboard.
91
+ #===Parameters
92
+ #[+text+] The text to write.
93
+ #===Return value
94
+ #The argument passed.
95
+ #===Example
96
+ # AutoItX3.cliptext = "I love Ruby!"
97
+ # puts AutoItX3.cliptext #=> I love Ruby!
98
+ #===Remarks
61
99
  #You can't write NUL characters to the clipboard, the text will
62
100
  #be terminated.
63
101
  def cliptext=(text)
@@ -66,8 +104,16 @@ module AutoItX3
66
104
  text
67
105
  end
68
106
 
69
- #Returns the text saved in the clipboard. It will be truncated at the 99,999th character or
70
- #at a NUL char.
107
+ #Reads the Windows clipboard.
108
+ #===Return value
109
+ #The text saved in the clipboard, encoded in UTF-8.
110
+ #===Example
111
+ # puts AutoItX3.cliptext #=> I love Ruby!
112
+ #===Remarks
113
+ #Returns the text saved in the clipboard. It will be truncated at the
114
+ #<tt>AutoItX3::BUFFER_SIZE - 1</tt>th character or at a NUL character.
115
+ #
116
+ #If the clipboard doesn't contain text, this method returns an empty string.
71
117
  def cliptext
72
118
  @functions[__method__] ||= AU3_Function.new("ClipGet", 'PL')
73
119
  cliptext = " " * BUFFER_SIZE
@@ -80,9 +126,16 @@ module AutoItX3
80
126
  # tool_tip( text [, x = INTDEFAULT [, y = INTDEFAULT ] ] ) ==> nil
81
127
  # tooltip( text [, x = INTDEFAULT [, y = INTDEFAULT ] ] ) ==> nil
82
128
  #
83
- #Displays a tooltip at the given position. If +x+ and +y+ are ommited,
84
- #the tooltip will be displayed at the current cursor position. Coordinates
85
- #out of range are automatically corrected.
129
+ #Displays a tooltip at the given position.
130
+ #===Parameters
131
+ #[+text+] The text to display.
132
+ #[+x+] (+INTDEFAULT+) The X coordinate where to display the tooltip. Defaults to the cursor's X coordinate if ommited.
133
+ #[+y+] (+INTDEFAULT+) The Y coordinate where to display the tooltip. Defaults to the cursor's Y coordinate if ommited.
134
+ #===Return value
135
+ #nil.
136
+ #===Remarks
137
+ #Coordinates out of range are automatically corrected.
138
+ #
86
139
  #The tooltip will be deleted when the program ends, or after a system-dependent
87
140
  #timeout.
88
141
  def tool_tip(text, x = INTDEFAULT, y = INTDEFAULT)
@@ -91,8 +144,12 @@ module AutoItX3
91
144
  end
92
145
  alias tooltip tool_tip
93
146
 
94
- #Wait for the specified amount of milliseconds. In AutoIt, this function is named
95
- #"Sleep", but to avoid compatibility issues with Ruby's own sleep I decided to
147
+ #Wait for the specified amount of milliseconds.
148
+ #===Return value
149
+ #nil.
150
+ #===Remarks
151
+ #In AutoIt, this function is named "Sleep", but to avoid compatibility
152
+ #issues with Ruby's own sleep I decided to
96
153
  #name the function "msleep" (the "m" indicates "milli"). If you wish to name it
97
154
  #"sleep", simply define an alias.
98
155
  def msleep(msecs)
@@ -1,6 +1,6 @@
1
1
  #Encoding: UTF-8
2
2
  #This file is part of au3.
3
- #Copyright © 2009 Marvin Gülker
3
+ #Copyright © 2009, 2010 Marvin Gülker, Steven Heidel
4
4
  #
5
5
  #au3 is published under the same terms as Ruby.
6
6
  #See http://www.ruby-lang.org/en/LICENSE.txt
@@ -34,13 +34,24 @@ module AutoItX3
34
34
 
35
35
  class << self
36
36
 
37
- #====Arguments
38
- #- x (INTDEFAULT): The X position. The cursor's current X if not specified.
39
- #- y (INTDEFAULT): The Y position. The cursor's current Y if not specified.
40
- #- button("Primary"): The mouse button to click width. On a mouse for left-handed people the right, for right-handed people the left mouse button.
41
- #- clicks(1): The number of times to click.
42
- #- speed(10): The speed the mouse cursor will move with. If set to 0, the cursor is set immediatly.
43
- #
37
+ #Executes a mouse click.
38
+ #===Parameters
39
+ #* x (INTDEFAULT): The X position. The cursor's current X if not specified.
40
+ #* y (INTDEFAULT): The Y position. The cursor's current Y if not specified.
41
+ #* button(<tt>"Primary"</tt>): The mouse button to click width. On a mouse for left-handed people the right, for right-handed people the left mouse button.
42
+ #* clicks(1): The number of times to click.
43
+ #* speed(10): The speed the mouse cursor will move with. If set to 0, the cursor is set immediatly.
44
+ #===Return value
45
+ #nil.
46
+ #===Raises
47
+ #[Au3Error] Invalid mouse button specified.
48
+ #===Example
49
+ # #Normal mouse click at (100|100).
50
+ # AutoItX3.mouse_click(100, 100)
51
+ # #Click with the right (or left if buttons are swapped) button
52
+ # AutoItX3.mouse_click(AutoItX3::INTDEFAULT, AutoItX3::INTDEFAULT, "Secondary")
53
+ # #Don't move the cursor
54
+ # AutoItX3.mouse_click(100, 100, "Primary", 1, 0)
44
55
  #Clicks the mouse.
45
56
  def mouse_click(x = INTDEFAULT, y = INTDEFAULT, button = "Primary", clicks = 1, speed = 10)
46
57
  @functions[__method__] ||= AU3_Function.new("MouseClick", 'SLLLL', 'L')
@@ -50,7 +61,22 @@ module AutoItX3
50
61
  nil
51
62
  end
52
63
 
53
- #Performes a drag & drop operation with the given parameters.
64
+ #Performes a drag & drop operation.
65
+ #===Parameters
66
+ #[+x1+] The start X coordinate.
67
+ #[+y1+] The start Y coordinate.
68
+ #[+x2+] The goal X coordinate.
69
+ #[+y2+] The goal Y coordinate.
70
+ #[+button+] The button to hold down while moving.
71
+ #[+speed+] The cursor's speed. If 0, the cursor is set directly to the goal position.
72
+ #===Return value
73
+ #nil.
74
+ #===Raises
75
+ #[Au3Error] Invalid mouse button specified.
76
+ #===Example
77
+ # AutoItX3.drag_mouse(10, 10, 73, 86)
78
+ # #With the secondary mouse button
79
+ # AutoItX3.drag_mouse(10, 10, 73, 86, "Secondary")
54
80
  def drag_mouse(x1, y1, x2, y2, button = "Primary", speed = 10)
55
81
  @functions[__method__] ||= AU3_Function.new("MouseClickDrag", 'SLLLLL', 'L')
56
82
  @functions[__method__].call(button.wide, x1, y1, x2, y2, speed)
@@ -63,7 +89,15 @@ module AutoItX3
63
89
  # hold_mouse_down( [ button = "Primary" ] ) ==> nil
64
90
  # mouse_down( [ button = "Primary" ] ) ==> nil
65
91
  #
66
- #Holds a mouse button down (the left by default, or the right if mouse buttons are swapped).
92
+ #Holds a mouse button down.
93
+ #===Parameters
94
+ #[+button+] (<tt>"Primary"</tt>) The button to hold down.
95
+ #===Return value
96
+ #nil.
97
+ #===Example
98
+ # AutoItX3.hold_mouse_down("Primary")
99
+ # AutoItX3.hold_mouse_down("Secondary")
100
+ #===Remarks
67
101
  #You should release the mouse button somewhen.
68
102
  def hold_mouse_down(button = "Primary")
69
103
  @functions[__method__] ||= AU3_Function.new("MouseDown", 'S')
@@ -75,7 +109,11 @@ module AutoItX3
75
109
  # cursor_id ==> aFixnum
76
110
  # get_cursor_id ==> aFixnum
77
111
  #
78
- #Returns one of the *_CURSOR constants to indicate which cursor icon is actually shown.
112
+ #Get the cursor that is shown at the moment.
113
+ #===Return value
114
+ #One of the *_CURSOR constants to indicate which cursor icon is actually shown.
115
+ #===Example
116
+ # p AutoItX3.cursor_id #=> 5 #IBEAM_CURSOR, that one with the >I< form for editing texts.
79
117
  def cursor_id
80
118
  @functions[__method__] ||= AU3_Function.new("MouseGetCursor", '', 'L')
81
119
  @functions[__method__].call
@@ -85,7 +123,11 @@ module AutoItX3
85
123
  # cursor_pos ==> anArray
86
124
  # get_cursor_pos ==> anArray
87
125
  #
88
- #Returns the current cursor position in a two-element array of form <tt>[x, y]</tt>.
126
+ #Returns the current cursor position.
127
+ #===Return value
128
+ #The current cursor position in a two-element array of form <tt>[x, y]</tt>.
129
+ #===Example
130
+ # p AutoItX3.cursor_pos #=> [127, 345]
89
131
  def cursor_pos
90
132
  @functions[:cursor_pos_x] ||= AU3_Function.new("MouseGetPosX", 'V', 'L')
91
133
  @functions[:cursor_pos_y] ||= AU3_Function.new("MouseGetPosY", 'V', 'L')
@@ -96,8 +138,13 @@ module AutoItX3
96
138
  # move_mouse( x , y [, speed = 10 ] ) ==> nil
97
139
  # mouse_move( x , y [, speed = 10 ] ) ==> nil
98
140
  #
99
- #Moves the mouse cursor to the given position. If +speed+ is 0,
100
- #it's set immediately.
141
+ #Moves the mouse cursor to the given position.
142
+ #===Parameters
143
+ #[+x+] The goal X coordinate.
144
+ #[+y+] The goal Y coordinate.
145
+ #[+speed+] (+10+) The speed to move the cursor with. 0 means no movement and the cursor is set directly to the goal position.
146
+ #===Return value
147
+ #nil.
101
148
  def move_mouse(x, y, speed = 10)
102
149
  @functions[__method__] ||= AU3_Function.new("MouseMove", 'LLL', 'L')
103
150
  @functions[__method__].call(x, y, speed)
@@ -109,14 +156,33 @@ module AutoItX3
109
156
  # mouse_up( [ button = "Primary" ] ) ==> nil
110
157
  #
111
158
  #Releases a mouse button hold down by #hold_mouse_down.
159
+ #===Parameters
160
+ #[+button+] (<tt>"Primary"</tt>) The mouse button to release.
161
+ #===Return value
162
+ #nil.
163
+ #===Example
164
+ # AutoItX3.hold_mouse_down
165
+ # AutoItX3.release_mouse
166
+ # #With the secondary button
167
+ # AutoItX3.hold_mouse_down("Secondary")
168
+ # AutoItX3.release_mouse("Secondary")
112
169
  def release_mouse(button = "Primary")
113
170
  @functions[__method__] ||= AU3_Function.new("MouseUp", 'S')
114
171
  @functions[__method__].call(button.wide)
115
172
  nil
116
173
  end
117
174
 
118
- #Scrolls up or down the mouse wheel +times+ times. Use
119
- #ether "Up" or "Down" as the value for +direction+.
175
+ #Scrolls up or down the mouse wheel.
176
+ #===Parameters
177
+ #[+direction+] The scrolling direction, either <tt>"up</tt> or <tt>"down</tt>.
178
+ #[+times+] The scrolling steps. These <b>are not</b> full wheel turns.
179
+ #===Return value
180
+ #nil.
181
+ #===Example
182
+ # #5 steps up.
183
+ # AutoItX3.mouse_wheel("up")
184
+ # #3 steps down.
185
+ # AutoItX3.mouse_wheel("down", 3)
120
186
  def mouse_wheel(direction, times = 5)
121
187
  @functions[__method__] ||= AU3_Function.new("MouseWheel", 'SL')
122
188
  @functions[__method__].call(direction.wide, times)