Skip to content

(Probably) the world's first one file RPA tool impremented by Golang!

License

Notifications You must be signed in to change notification settings

yasutakatou/rabbitRPA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rabbitRPA

(Probably) the world's first one file RPA tool impremented by Golang!

icon

lovely Lepus brachyurus!

So far, it only works on Windows.

demo

demo

solution

You try to automation on windows gui operation, you might use RPA tool. after, you will setup this tool requirement for execute. install, config file customize, and depend tool and more.

I wonder why, RPA tools are too fat.

I want do old installer to automate, only once. But, RPA set up is a pain in the ass. I think needs, light weight RPA tool.

features

  • one binary (it's not perfect)
  • light weight
  • very simple use
  • (Of course) free!

structure

  1. one execute file include all binary and dll files.
  2. when execute this, extract execute file for RPA, and OpenCV dll files.
  3. and then, execute RPA binary depend for OpenCV, Your operation recorded or replayed!

algorithm

this tool have two functions roughly. It's Record or Replay.

Record

When no option, tool is Record mode.

rabbitRPA.exe

tool executed and create require files, after follow message.

 - - recording start! you want to end this mode, key press ascii code (%d) - -

until input exit key code, your operation recorded.
(default exit key code is 27[Escape Key].)

After input exit key code, your operation is recorded tsv file and captures.

tsv file include target window title, move value mouse, click position.
captures include all screen, and target window capture.
tool calculates the capture's difference.
Therefore, If target windows moved another position, that position adjust.


Replay

Replay the operation using the file you just used. set you options.

rabbitRPA.exe -replay -import=output.tsv

"-replay" is replay mode option.
"-import" is exported tsv file for record mode.

your record will replay!

See here for other options.

installation

download binary from release page.
save binary file, copy to entryed execute path directory.

another

this tool depend gocv and statik.

GoCV
statik

step1. you install gocv(and opencv)

See below.

https://github.com/hybridgroup/gocv#windows

win_build_opencv.cmd

step2. "statik" set up

go get github.com/rakyll/statik

step3. clone this repository

git clone https://github.com/yasutakatou/rabbitRPA
cd rabbitRPA

step4. copy opencv dlls and converted by statik

Copy the dll from the opencv folder. (total 11 files)
ex) C:\opencv\build\install\x64\mingw\bin to .\rabbitRPA

libopencv_calib3d430.dll
libopencv_core430.dll
libopencv_dnn430.dll
libopencv_features2d430.dll
libopencv_flann430.dll
libopencv_highgui430.dll
libopencv_imgcodecs430.dll
libopencv_imgproc430.dll
libopencv_objdetect430.dll
libopencv_video430.dll
libopencv_videoio430.dll

Build the RPA tool.

go build do.go

converting by use statik.

cd rabbitRPA
statik -src=./ -include=*.dll,*.exe

Finally, package everything up.

go build rabbitRPA.go

uninstall

delete that binarys.

del or rm command. (it's simple!)

options

note) this options give to RPA binary(do.exe) as is. therefore, do.exe's options same too.

option name default value detail
-list false listing window titiles and exit
use to search target window title.
-replay false replay mode (true is enable)
-record true recording mode (true is enable)
default is on(recording mode)
-export output.tsv export file name
If exists same file name, it's overwriten.
-import input.tsv import file name
-debug false debug mode (true is enable)
-threshold 0.1 same window threshold
The lower the value, the more, select large difference.
If screen size is more larger when it's replay, try value lower.
-move 50 mouse move record threshold
record the mouse move par this value.
When value is lower, recording often.
-try 10 error and try counter
In case of wait next screen a while, set value larger.
-wait 250 loop wait Millisecond
-exitCode 27 recording mode to exit ascii key code
ascii code, please refer this site.
-tmpDir tmp temporary directory name
save captures to this directory.
If exists same directory name, it's overwriten.

Problem

  • If exists same title window, doing on smaller window handle.

Because search partial of window title.
When focus some tool, this tool's window title auto changed, this tool can't focus that.
Then, search partial.

  • Why double click don't record?

This tool depend golang module, and that module detect click count only.
I mean, When double click want to enable, must detect how long it takes to double click.
Each PC's specs are different. It's difficult!

copyright

(Probably) the world's first one file RPA tool impremented by Golang!
Copyright (c) 2020 yasutakatou

license

3-clause BSD License
and
Apache License Version 2.0

About

(Probably) the world's first one file RPA tool impremented by Golang!

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages