autoit 0.2.0 → 1.0.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 53d50a4caae130f2996dedab201eb9f17bc09bf6
4
- data.tar.gz: 3bd70d365820029870a9ede35a17b46bc6951fb5
3
+ metadata.gz: 5043bf7dfa3ded0a8fb005a7dcea65637c02194b
4
+ data.tar.gz: c7b823e84ec8066a683ed75f980c9670644a297e
5
5
  SHA512:
6
- metadata.gz: 762d0d86f2ecc931a8acf8bf80f8a65029ad382d572e0e7bd127e09ac5a60dd19794d864fdbe98778b6a04bd059535e5fc0a19d25344691a317e2fd1711ad0f9
7
- data.tar.gz: a4bf5d761b5ef749d81c92bf596e6b19a11b4980e3d0aa96b558d174015b7391893e3c7c88746924aaf5158570cc84e554bcf52fe857c4542ef3f0825b300cb9
6
+ metadata.gz: 8aa86b1df27cf935cc8280e691ab2dc2c90e6ab416dd9efd9936ae4657f9aa72066ef9be6f1a3b7f391caab18b281f1432db1a0dfac65ff3f0f1bc73ea7d46cd
7
+ data.tar.gz: ea4a027d4bc59fd0b78f31d874d373a1c77edbc99039cca8efe4eb99dc3fcce227eb0eec8a500d0729a1d1494d3f6c5e0399a157fd06627dbd64b4474f973f2c
data/.gitignore CHANGED
@@ -6,3 +6,5 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ /rubocop.html
10
+ /.byebug_history
@@ -1,8 +1,11 @@
1
- ## 0.1.0 (2018-10-18)
1
+ ## 1.0.0 (2018-11-09)
2
2
 
3
3
  Changes:
4
4
 
5
- - Built the gem strucuture and first commit.
5
+ - Released first functional version using natives commands. Check this on README file.
6
+ - Implemented a built-in executable to install AutoIt DLLS on your OS: autoit install
7
+ - Wrapper methods to check texts and integers, to open app, close windows, open apps and clicks on
8
+ - command method to run native AutoIt commands
6
9
 
7
10
  Bugfixes:
8
11
 
@@ -10,4 +13,4 @@ Bugfixes:
10
13
 
11
14
  Documentation:
12
15
 
13
- - Nothing
16
+ - Created a complete version of README file
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
3
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  # Specify your gem's dependencies in autoit.gemspec
6
6
  gemspec
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- autoit (0.1.0)
5
- thor
4
+ autoit (0.2.0)
5
+ os
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
@@ -10,6 +10,7 @@ GEM
10
10
  ast (2.4.0)
11
11
  byebug (10.0.2)
12
12
  minitest (5.11.3)
13
+ os (1.0.0)
13
14
  parallel (1.12.1)
14
15
  parser (2.5.3.0)
15
16
  ast (~> 2.4.0)
@@ -25,7 +26,6 @@ GEM
25
26
  ruby-progressbar (~> 1.7)
26
27
  unicode-display_width (~> 1.0, >= 1.0.1)
27
28
  ruby-progressbar (1.10.0)
28
- thor (0.20.0)
29
29
  unicode-display_width (1.4.0)
30
30
 
31
31
  PLATFORMS
@@ -37,7 +37,7 @@ DEPENDENCIES
37
37
  byebug (~> 10.0)
38
38
  minitest (~> 5.0)
39
39
  rake (~> 10.0)
40
- rubocop (~> 0.49.0)
40
+ rubocop (>= 0.49.0)
41
41
 
42
42
  BUNDLED WITH
43
43
  1.16.6
data/README.md CHANGED
@@ -1,10 +1,27 @@
1
- # Autoit
1
+ ![AutoIt Logo](https://www.autoitscript.com/images/logo_autoit_210x72@2x.png "AutoIt Logo")Ruby Version
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/autoit`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ #
4
+ AutoIt is a gem to handle and integrate Windows Automation in your project and tests using the AutoIt software and Windows OLE
5
+ objects. With AutoIt gem you can run easily wrapper methods or run natives AutoIt commands.
4
6
 
5
- TODO: Delete this and the text above, and describe your gem
7
+ >We are building a new concept to match Windows elements called WPath. Yes, this is similar to the known XPath and we are
8
+ trying to bring this feature to easily find elements on the screen. For example: `//Calculator/Button[@id=135]` will match an
9
+ element on the screen with title 'Calculator', with class Button and ID 135.
6
10
 
7
- ## Installation
11
+ We recommend to build a project structure using BDD Cucumber (http://cucumber.io) with the gem BDDFire (https://github.com/Shashikant86/bddfire) to have a complete and full of features tool for your automation project focused highly on your business, not just in code.
12
+
13
+ Enjoy this awesome project together. Use, review, contribute and give us a <a class="github-button" href="https://github.com/rpossan/autoit" data-icon="octicon-star" aria-label="Star rpossan/autoit on GitHub">STAR</a>!
14
+
15
+ 1. [Installation](#1---installation)
16
+ 2. [Usage](#2---usage)
17
+ 3. [Basics - Getting started](#3---basics---getting-started)
18
+ 4. [Development](#4---development)
19
+ 5. [Contributing](#5---contributing)
20
+ 6. [License](#6---license)
21
+ 7. [Code of Conduct](#7---code-of-conduct)
22
+ 8. [Support](#8---support)
23
+
24
+ ## 1 - Installation
8
25
 
9
26
  Add this line to your application's Gemfile:
10
27
 
@@ -20,24 +37,141 @@ Or install it yourself as:
20
37
 
21
38
  $ gem install autoit
22
39
 
23
- ## Usage
40
+ AutoIt Installation:
41
+
42
+ AutoIt gem has a executable 'autoit' with the command 'install' to install the AutoIt DLL's for Operating System 32 or 64 bits.
43
+
44
+ You can install autoit manually by yourself following the instructions: https://www.autoitscript.com/site/autoit/downloads/
45
+
46
+ If you have already installed AutoIt DLLs on your system ignore this step.
47
+
48
+ DLLs are located and will be up to date on the folder: https://github.com/rpossan/autoit/tree/master/vendor
49
+
50
+ ```sh
51
+ $ autoit install
52
+ ```
53
+
54
+ System will ask for Administrator access. Click on "Yes" to register the properly DLL on your system register.
55
+
56
+ ![](https://github.com/rpossan/files/blob/master/autoit/autoit_install.gif)
57
+
58
+ ## 2 - Usage
59
+
60
+ The basics of usage is very simples.
61
+ First step you need to instance an object (or call directly) from the class Control of AutoIt module.
62
+
63
+ ```ruby
64
+ control = AutoIt::Control.new
65
+ ```
66
+
67
+ Once object instanced, you can call the method "command" to run native AutoIt commands exactly how you can see in the
68
+ AutoIt library documentation: https://www.autoitscript.com/autoit3/docs/functions/.
69
+
70
+ First argument of this method is the command that you want to run following of the AutoIt function arguments.
71
+
72
+ ```ruby
73
+ control.command('run', ['calc']) # Open the Windows calculator
74
+
75
+ # Click on element located by 'Calculator' title, '8' text and ID 138
76
+ control.command('ControlClick', ['Calculator', '8', '[ID:138]'])
77
+ ```
78
+ This example of use is exaclty as AutoIt ControlClick funtcion documentation: https://www.autoitscript.com/autoit3/docs/functions/ControlClick.htm
79
+
80
+ Using ruby wrapper methods:
81
+
82
+ >_This is UNDER construction - Keep your autoit gem up to date to get all features)_
83
+ ```ruby
84
+ # Open app and run executables
85
+ control.open_app('calc') # open Windows calculator. Can be a executable or path to an .exe file
86
+
87
+ # Closing windows
88
+ control.win_close 'Calculator' # close window with title 'Calculator'
89
+
90
+ # Clicking elements
91
+ control.click_on('Calculator', '[ID:135]', '5') # click on element with window title 'Calculator', ID 135 and text '5'
92
+ control.click_on('135') # Click on first element found with id 135
93
+ control.click_on({class: "Button", instance: 9, id: 138, text: "5"}) #Using a hash of arguments
94
+ control.click_on('//Calculator[@id=135]') # Using WPath - Our innovative way to match elements by paths, similar to XPath for HTML
95
+
96
+ # Check if it has a given integer value on the window with title Calculator
97
+ control.has_int?('Calculator', 10)
98
+
99
+ # Check if it has a given text on the window with title Calculator
100
+ control.has_int?('Calculator', "MC")
101
+ ```
102
+
103
+ Example of how to automate the sum using the Windows Calculator with wrapper methods:
104
+ ```ruby
105
+ my_control = AutoIt::Control.new # instance object
106
+ my_control.click_on('Calculator', '[ID:135]', '5') # click on '5'
107
+ my_control.click_on('Calculator', '[ID:93]', '+') # click on '+'
108
+ my_control.click_on('Calculator', '[ID:135]', '5') # click on '5'
109
+ my_control.click_on('Calculator', '[ID:121]', '=') # click on '='
110
+
111
+ if my_control.has_int?('Calculator', 10)
112
+ puts "Yes, I see 10 text on the the result element!"
113
+ end
114
+
115
+ my_control.win_close 'Calculator' # Close window with 'Calculator' title
116
+ ```
117
+
118
+ Same example but now using native commands of AutoIt DLL:
119
+ ```ruby
120
+ my_control = AutoIt::Control.new # instance object
121
+ key_8 = ['Calculator', '8', '[ID:138]'] # An array with options
122
+ my_control.command('run', ['calc']) # Execute AutoIt native run command
123
+ my_control.command('WinWaitActive', ['Calculator', nil, 30]) # Execute AutoIt native WinWaitActive
124
+ my_control.command('ControlClick', key_8) # Execute AutoIt native ControlClick clicking with key_8 variable args
125
+ my_control.command('WinClose', ['Calculator']) # Close window passing the title
126
+ ```
127
+
128
+ See its running on IRB (Interactive Ruby mode):
129
+ ![](https://github.com/rpossan/files/blob/master/autoit/autoit_irb.gif)
130
+
131
+ ## 3 - Basics - Getting started
132
+
133
+ * Install Ruby: Linux is recommended to use http://rvm.io. For Windows use Ruby Installer (Next, next ... Finish): https://rubyinstaller.org/
134
+
135
+ * In command line test your environment:
136
+ ```sh
137
+ $ ruby -v
138
+ ruby 2.5.1p57 (2018-03-29 revision 63029) [x64-mingw32]
139
+ ```
140
+
141
+ * Install autoit gem or use on a Bundler project (https://bundler.io/):
142
+ ```sh
143
+ $ gem install autoit
144
+ Successfully installed autoit-0.2.0
145
+ Parsing documentation for autoit-0.2.0
146
+ Done installing documentation for autoit after 1 seconds
147
+ 1 gem installed
148
+ ```
24
149
 
25
- TODO: Write usage instructions here
150
+ * Start using and implement your project. We recommend to build a project structure using BDD Cucumber (http://cucumber.io)
151
+ with the gem BDDFire (https://github.com/Shashikant86/bddfire) to have a complete and full of features tool for your
152
+ automation project focused highly on your business, not just in coding.
26
153
 
27
- ## Development
154
+ ## 4 - Development
28
155
 
29
156
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
157
 
31
158
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
159
 
33
- ## Contributing
160
+ ## 5 - Contributing
34
161
 
35
162
  Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/autoit. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
36
163
 
37
- ## License
164
+ ## 6 - License
38
165
 
39
166
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
40
167
 
41
- ## Code of Conduct
168
+ ## 7 - Code of Conduct
42
169
 
43
170
  Everyone interacting in the Autoit project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/autoit/blob/master/CODE_OF_CONDUCT.md).
171
+
172
+
173
+ ## 8 - Support
174
+ You can starting contacting the developer team members or just openning an issue in the project:
175
+ https://github.com/rpossan/autoit/issues
176
+
177
+ For more details, please send me an e-mail. I'll have the pleasure talking to you: ronaldo.possan@gmail.com
data/Rakefile CHANGED
@@ -1,10 +1,16 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
3
 
4
4
  Rake::TestTask.new(:test) do |t|
5
- t.libs << "test"
6
- t.libs << "lib"
7
- t.test_files = FileList["test/**/*_test.rb"]
5
+ t.libs << 'test'
6
+ t.libs << 'lib'
7
+ t.test_files = FileList['test/**/*_test.rb']
8
+
9
+ desc 'Run Rubocop analysis and open in the browser'
10
+ task :rubocop do
11
+ system "rubocop -f html -o rubocop.html -c rubocop.yml &\
12
+ start chrome rubocop.html"
13
+ end
8
14
  end
9
15
 
10
- task :default => :test
16
+ task default: :test
@@ -1,20 +1,35 @@
1
-
2
1
  lib = File.expand_path("../lib", __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require "autoit/version"
5
-
6
- Gem::Specification.new do |spec|
4
+ Gem::Specification.new do |spec|
7
5
  spec.name = "autoit"
8
6
  spec.version = Autoit::VERSION
9
7
  spec.authors = ["Ronaldo Possan"]
10
8
  spec.email = ["ronaldo.possan@gmail.com"]
11
9
 
12
- spec.summary = "A ruby gem wrapper to interface with AutoIt"
13
- spec.description = "[ALPHA VERSION - Not completed!] An interface to execute and automate Windows platform with AutoIt"
10
+ spec.summary = <<-EOF
11
+ AutoIt is a gem to handle and integrate Windows Automation in your project and tests using the AutoIt software and Windows OLE
12
+ objects. With AutoIt gem you can run easily wrapper methods or run natives AutoIt commands.
13
+ Enjoy this awesome project together. Use, review, contribute and give us a STAR!
14
+ EOF
15
+
16
+ spec.description = <<-EOF
17
+ AutoIt is a gem to integrate in your automation project and tests using the AutoIt software for interact with Windows OLE
18
+ objects. With AutoIt gem you can run the easy wrapper methods or run natives AutoIt commands.
19
+
20
+ We are building a new concept to match Windows elements called WPath. Yes, this is similar to the known XPath and we are
21
+ trying to bring this feature to easily find elements on the screen. For example: `//Calculator/Button[@id=135]` will match an
22
+ element on the screen with title "Calculator", with class Button and ID 135.
23
+
24
+ We recommend to build a project structure using BDD Cucumber (http://cucumber.io) with the gem BDDFire (https://github.com/Shashikant86/bddfire)
25
+ to have a complete and full of features tool for your automation project focused highly on your business, not just in code.
26
+
27
+ Enjoy this awesome project together. Use, review, contribute and give us a STAR!
28
+ EOF
29
+
14
30
  spec.homepage = "https://github.com/rpossan/autoit"
15
31
  spec.license = "MIT"
16
-
17
- # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
32
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
33
  # to allow pushing to a single host or delete this section to allow pushing to any host.
19
34
  if spec.respond_to?(:metadata)
20
35
  #spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
@@ -25,21 +40,18 @@ Gem::Specification.new do |spec|
25
40
  raise "RubyGems 2.0 or newer is required to protect against " \
26
41
  "public gem pushes."
27
42
  end
28
-
29
- # Specify which files should be added to the gem when it is released.
43
+ # Specify which files should be added to the gem when it is released.
30
44
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
31
45
  spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
32
46
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
33
47
  end
34
- spec.bindir = "exe"
35
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
48
+ spec.bindir = "bin"
49
+ spec.executables << "autoit"
36
50
  spec.require_paths = ["lib"]
37
-
38
- spec.add_dependency "thor"
39
-
51
+ spec.add_dependency "os"
40
52
  spec.add_development_dependency "bundler", "~> 1.16"
41
- spec.add_development_dependency "rake", "~> 10.0"
42
- spec.add_development_dependency "minitest", "~> 5.0"
43
- spec.add_development_dependency "rubocop", "~> 0.49.0"
44
53
  spec.add_development_dependency "byebug", "~> 10.0"
54
+ spec.add_development_dependency "minitest", "~> 5.0"
55
+ spec.add_development_dependency "rake", "~> 10.0"
56
+ spec.add_development_dependency "rubocop", ">= 0.49.0"
45
57
  end
data/bin/autoit CHANGED
@@ -1,3 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- puts "ola"
3
+ require 'autoit/install'
4
+
5
+ Autoit::Install.start(ARGV)
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "autoit"
3
+ require 'bundler/setup'
4
+ require 'autoit'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
8
8
 
9
9
  # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
10
+ # require 'pry'
11
11
  # Pry.start
12
12
 
13
- require "irb"
13
+ require 'irb'
14
14
  IRB.start(__FILE__)
@@ -1,6 +1,6 @@
1
- require "autoit/version"
2
- require "autoit/control"
1
+ require 'autoit/version'
2
+ require 'autoit/control'
3
3
 
4
+ # Main module to load and execute AutoIt commands
4
5
  module AutoIt
5
-
6
6
  end
@@ -1,35 +1,53 @@
1
- #require 'Win32API'
1
+ # require 'Win32API'
2
2
  require 'win32ole'
3
3
 
4
- class Control
5
-
6
- attr_reader :win
7
-
8
- def initialize
9
- @win = WIN32OLE.new('AutoItX3.Control')
10
- end
11
-
12
- def command(cmd, opt)
13
- win.send(cmd, opt)
14
- end
15
-
16
- def open_app(app)
17
- win.run app
18
- end
19
-
20
- def click_on(title, text=nil, id)
21
- win.WinWaitActive(title, nil, 30)
22
- win.ControlClick(title, text, id)
23
- end
24
-
25
- def get_text(title)
26
- win.WinGetText(title)
4
+ module AutoIt
5
+ # Class module to execute control commands on AutoIt DLL. Its possible
6
+ # to run native commands and some methods for object
7
+ class Control
8
+ attr_reader :win
9
+
10
+ def initialize
11
+ @win = WIN32OLE.new('AutoItX3.Control')
12
+ end
13
+
14
+ def command(cmd, args = {})
15
+ execute { win.send(cmd, *args) }
16
+ end
17
+
18
+ def win_close(title)
19
+ execute { win.WinClose title }
20
+ end
21
+
22
+ def open_app(app)
23
+ execute { win.run app }
24
+ end
25
+
26
+ def click_on(title, id, text = nil)
27
+ execute do
28
+ win.WinWaitActive(title, nil, 30)
29
+ win.ControlClick(title, text, id)
30
+ end
31
+ end
32
+
33
+ def get_text(title)
34
+ win.WinGetText(title)
35
+ end
36
+
37
+ def has_int?(title, value)
38
+ found = get_text title
39
+ found.to_i == value
40
+ end
41
+
42
+ def has_text?(title, text)
43
+ found = get_text title
44
+ found.to_s.chomp == text.to_s
45
+ end
46
+
47
+ private
48
+
49
+ def execute
50
+ yield > 0
51
+ end
27
52
  end
28
-
29
- def has_text?(title, text, get_int=false)
30
- found = get_text title
31
- found = text.to_i.to_s if get_int
32
- found == text
33
- end
34
-
35
- end
53
+ end
@@ -0,0 +1,18 @@
1
+ require 'thor'
2
+ require 'byebug'
3
+ require 'os'
4
+
5
+ # Not implemented yet
6
+ module Autoit
7
+ # Module to supports CLI commands
8
+ class Install < Thor
9
+ desc 'install', 'Install AutoIt DLLs to run properly.'
10
+ long_desc <<-D
11
+ 'install' Install specific AutoIt DLL on your operation system (X86 or 64 bits version).
12
+ D
13
+ option :format
14
+ def install
15
+ system "vendor\\register#{OS.bits}.bat"
16
+ end
17
+ end
18
+ end
@@ -1,3 +1,3 @@
1
1
  module Autoit
2
- VERSION = "0.2.0"
2
+ VERSION = '1.0.0'.freeze
3
3
  end
@@ -0,0 +1,3 @@
1
+ AllCops:
2
+ Exclude:
3
+ - '**/*.gemspec'
@@ -0,0 +1,32 @@
1
+
2
+ @echo off
3
+
4
+ :: BatchGotAdmin
5
+ :-------------------------------------
6
+ REM --> Check for permissions
7
+ IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
8
+ >nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
9
+ ) ELSE (
10
+ >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
11
+ )
12
+
13
+ REM --> If error flag set, we do not have admin.
14
+ if '%errorlevel%' NEQ '0' (
15
+ echo Requesting administrative privileges...
16
+ goto UACPrompt
17
+ ) else ( goto gotAdmin )
18
+
19
+ :UACPrompt
20
+ echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
21
+ set params= %*
22
+ echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params:"=""%", "", "runas", 1 >> "%temp%\getadmin.vbs"
23
+
24
+ "%temp%\getadmin.vbs"
25
+ del "%temp%\getadmin.vbs"
26
+ exit /B
27
+
28
+ :gotAdmin
29
+ pushd "%CD%"
30
+ CD /D "%~dp0"
31
+ :--------------------------------------
32
+ regsvr32.exe %~dp0AutoItX3.dll
@@ -0,0 +1,32 @@
1
+
2
+ @echo off
3
+
4
+ :: BatchGotAdmin
5
+ :-------------------------------------
6
+ REM --> Check for permissions
7
+ IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
8
+ >nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
9
+ ) ELSE (
10
+ >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
11
+ )
12
+
13
+ REM --> If error flag set, we do not have admin.
14
+ if '%errorlevel%' NEQ '0' (
15
+ echo Requesting administrative privileges...
16
+ goto UACPrompt
17
+ ) else ( goto gotAdmin )
18
+
19
+ :UACPrompt
20
+ echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
21
+ set params= %*
22
+ echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params:"=""%", "", "runas", 1 >> "%temp%\getadmin.vbs"
23
+
24
+ "%temp%\getadmin.vbs"
25
+ del "%temp%\getadmin.vbs"
26
+ exit /B
27
+
28
+ :gotAdmin
29
+ pushd "%CD%"
30
+ CD /D "%~dp0"
31
+ :--------------------------------------
32
+ regsvr32.exe %~dp0AutoItX3_x64.dll
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autoit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ronaldo Possan
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-05 00:00:00.000000000 Z
11
+ date: 2018-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: thor
14
+ name: os
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.16'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rake
42
+ name: byebug
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
@@ -67,42 +67,52 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '5.0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rubocop
70
+ name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.49.0
75
+ version: '10.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.49.0
82
+ version: '10.0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: byebug
84
+ name: rubocop
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '10.0'
89
+ version: 0.49.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '10.0'
97
- description: "[ALPHA VERSION - Not completed!] An interface to execute and automate
98
- Windows platform with AutoIt"
96
+ version: 0.49.0
97
+ description: |
98
+ AutoIt is a gem to integrate in your automation project and tests using the AutoIt software for interact with Windows OLE
99
+ objects. With AutoIt gem you can run the easy wrapper methods or run natives AutoIt commands.
100
+
101
+ We are building a new concept to match Windows elements called WPath. Yes, this is similar to the known XPath and we are
102
+ trying to bring this feature to easily find elements on the screen. For example: `//Calculator/Button[@id=135]` will match an
103
+ element on the screen with title "Calculator", with class Button and ID 135.
104
+
105
+ We recommend to build a project structure using BDD Cucumber (http://cucumber.io) with the gem BDDFire (https://github.com/Shashikant86/bddfire)
106
+ to have a complete and full of features tool for your automation project focused highly on your business, not just in code.
107
+
108
+ Enjoy this awesome project together. Use, review, contribute and give us a STAR!
99
109
  email:
100
110
  - ronaldo.possan@gmail.com
101
- executables: []
111
+ executables:
112
+ - autoit
102
113
  extensions: []
103
114
  extra_rdoc_files: []
104
115
  files:
105
- - ".byebug_history"
106
116
  - ".gitignore"
107
117
  - ".travis.yml"
108
118
  - CHANGELOG.MD
@@ -118,12 +128,14 @@ files:
118
128
  - bin/console
119
129
  - bin/setup
120
130
  - lib/autoit.rb
121
- - lib/autoit/cli.rb
122
131
  - lib/autoit/control.rb
132
+ - lib/autoit/install.rb
123
133
  - lib/autoit/version.rb
134
+ - rubocop.yml
124
135
  - vendor/AutoItX3.dll
125
136
  - vendor/AutoItX3_x64.dll
126
- - vendor/register.bat
137
+ - vendor/register32.bat
138
+ - vendor/register64.bat
127
139
  homepage: https://github.com/rpossan/autoit
128
140
  licenses:
129
141
  - MIT
@@ -150,5 +162,8 @@ rubyforge_project:
150
162
  rubygems_version: 2.6.12
151
163
  signing_key:
152
164
  specification_version: 4
153
- summary: A ruby gem wrapper to interface with AutoIt
165
+ summary: AutoIt is a gem to handle and integrate Windows Automation in your project
166
+ and tests using the AutoIt software and Windows OLE objects. With AutoIt gem you
167
+ can run easily wrapper methods or run natives AutoIt commands. Enjoy this awesome
168
+ project together. Use, review, contribute and give us a STAR!
154
169
  test_files: []
@@ -1,39 +0,0 @@
1
- q
2
- text
3
- found
4
- quit
5
- win.WinGetText(title)
6
- win.ControlGetText(title)
7
- title
8
- q
9
- win
10
- win.methods
11
- win.StringInStr(win, text)
12
- text
13
- win
14
- c
15
- q
16
- c
17
- text
18
- c
19
- win.ControlClick(screen, text, id)
20
- quit
21
- win.ControlClick(screen, "5", id)
22
- win.ControlClick(screen, "5", id, "{SPACE}")
23
- win.ControlClick(screen, "7", id, "{SPACE}")
24
- win.ControlSend(screen, "7", id, "{SPACE}")
25
- win.ControlSend(screen, "7", id, "{CLICK}")
26
- win.ControlSend(screen, text, id, "{CLICK}")
27
- win.ControlSend(screen, text, id, "{SPACE}")
28
- win.ControlSend("Calcu")
29
- id
30
- text
31
- screen
32
- win.ControlSend(screen, text, id)
33
- q
34
- win.ControlSend(screen, text, id)
35
- "Calculator", "5", "[ID:135]"
36
- id
37
- text
38
- screen
39
- c
@@ -1,17 +0,0 @@
1
- require 'thor'
2
-
3
- module Autoit
4
- # Module to supports CLI commands
5
- class CLI < Thor
6
-
7
- desc "install INPUT", "Install Platform"
8
- long_desc <<-D
9
- 'install INPUT' Install platform on Windows.
10
- D
11
- option :format
12
- def install(input)
13
- system "vendor/register.bat"
14
- end
15
- end
16
-
17
- end
@@ -1,3 +0,0 @@
1
- @echo off
2
- regsvr32.exe %~dp0lib\AutoItX3.dll
3
- regsvr32.exe %~dp0lib\AutoItX3_x64.dll