上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
PC/RPA/SikuliX
をテンプレートにして作成
資料室
PC/RPA/SikuliX をテンプレートにして作成
[
差分
|
バックアップ
|
リロード
]
[ ]
開始行:
* SikuliX
Sikuli(シクリ)は,デスクトップアプリケーションでの作業...
画像認識([[OpenCV>https://opencv.org/]])や文字認識OCR(...
また,Python(Jpython)などを使って操作をプログラム化出来...
SikulはJavaで実装されていてJVM上で動作する。このため,Win...
自動化をプログラムするのにIDEが備わっていて,プログラム言...
一般的な[[RPA(robotic process automation)>https://ja.wi...
Sikuliは,2009年にMITのUser Interface Design Groupで開発...
ソースコードは,[[github – sikuli>https://github.com/siku...
その後の開発とサポートは,[[RaiMan's SikuliX>http://sikul...
** Sikuli(SikuliX)で出来ないこと・苦手なこと
Sikuli(SikuliX)は手軽に始められてスクリプトの作成も比較的...
- 操作を自動で記録するレコーダー機能がない~
市販されているRPAに実装されているレコーダー機能は,人が操...
Sikuli(RPAとは言っていないが・・・)には,このレコーダー...
レコーダー機能はお手軽で有用なのだが,人が操作する時には...
レコーダー機能は慣れてくるとあまり使わなくなる傾向がある...
- 作成したスクリプトが他のPCで動作しないことが多い~
Sikuliは画面上に表示される画像を探して操作する位置を特定...
また,OSのデザインがカスタマイズされていてボタンの色やデ...
ディスプレイの解像度が異なっていても,画像のピクセルサイ...
- 表示倍率を変更すると動作しなくなる~
アプリケーションによっては表示倍率を変更する機能があった...
* Sikuliのインストール
[[Sikul>https://github.com/sikuli/sikuli]]が開発が終了し...
** SikuliXのインストール
[[SikuliX>http://sikulix.com/]]の最新安定バージョンは2.0....
SkuliXはJavaで動作するので,前もって[[Java:https://www.or...
- SikulX IDE~
[[SikulX IDE ver2.0.5の実行ファイル>https://launchpad.net...
- SikuliX API~
[[SikulX APIファイル>https://launchpad.net/sikuli/sikulix...
- スクリプトエンジン~
SikuliXはいくつかのスクリプトエンジンが使える。Jython(Py...
-- [[Jython:http://www.jython.org/]]~
[[こちらから>https://repo1.maven.org/maven2/org/python/jy...
-- [[Jruby:http://jruby.org/]]~
[[こちらから>https://repo1.maven.org/maven2/org/jruby/jru...
インストールは,ダウンロードしたファイルを適当な(日本語...
以下のファイルを,''C:\Users\<ユーザー名>\AppData\Roaming...
jython-standalone-2.7.4.jar
jruby-complete-9.2.0.0.jar
これでインストールしたディレクトリの''sikulixide-2.0.5.ja...
#ref(sikulix.png,,50%)
* Sikuliの機能
** よく使うコマンドコマンド
|コマンド|説明|h
|>|マウス操作 ...
|click(【画像】) |画面内から指定した画像を...
|doubleClick(【画像】) |画面内から指定した画像を...
|rightClick(【画像】) |画面内から指定した画像を...
|mouceMove(【画像】) |画面内から指定した画像を...
|drugDrop(【画像1】,【画像2】) |画像1から画像2までドラッ...
|>|キーボード操作 ...
|type("A") |Aキーを押す。 ...
|type(Key.ENTER) |Enterキーを押す。 ...
|type("c", Key.CTRL) |Ctrl+Cを押す。修飾キーは...
|paste(u"日本語") |カーソルの位置に指定した...
|>|制御系 ...
|wait(10) |10秒間待機する。 ...
|wait(【画像】) |画面内に指定した画像が見...
|wait(【画像】, 10) |画面内に指定した画像が見...
コマンドは画像を指定するが,メニューで指定することが出来...
メニューの7個のボタンは次の用途で使用する。~
|ボタン名 |説明 ...
|スクリーンショットを撮る|画面内からクリックしたい場所な...
|画像を挿入する |取得済みの画像をプログラムに使...
|Region |処理を行う範囲を指定する。 ...
|Location |画面左上を(0, 0)とした座標で位...
|Offset |相対距離を指定する。 ...
|実行 |プログラムを実行する。 ...
|スローモーションで実行 |マウス操作のみ,ゆっくり操作す...
** [[スクリプトと画像処理に関する機能>http://sikulix-2014...
マウスの動作やログ出力など,各種機能の動作に関わる共通仕...
|コマンド ...
|setShowActions ...
|exit ...
|Settings.setImageCache ...
|Settings.ActionLogs ...
|Settings.InfoLogs ...
|Settings.DebugLogs ...
|Settings.MinSimilarity ...
|Settings.MoveMouseDelay ...
|Settings.DelayBeforeMouseDown ...
|Settings.DelayBeforeDrag ...
|Settings.DelayBeforeDrop ...
|Settings.ClickDelay ...
|Settings.TypeDelay ...
|Settings.SlowMotionDelay ...
|Settings.WaitScanRate&br;Settings.ObserveScanRate ...
|Settings.ObserveMinChangedPixels ...
|Settings.AlwaysResize&br;ImageCallback ...
|Settings.UserLogs&br;Settings.UserLogPrefix&br;Debug.use...
|Settings.UserLogTime ...
|Debug.setUserLogFile ...
|getBundlePath() ...
|getBundleFolder() ...
|getParentPath() ...
|getParentFolder() ...
|makePath(path1, path2, path3, ...) ...
|makeFolder(path1, path2, path3, ...) ...
|unzip(fromFile, toFolder) ...
|setBundlePath(path-to-a-folder) ...
|getBundlePath() ...
|getImagePath() ...
|addImagePath((a-new-path) ...
|addHTTPImagePath ...
|removeImagePath ...
|resetImagePath ...
|addImportPath ...
|load ...
|runScript ...
** [[ユーザーやその他のアプリケーションの操作>http://siku...
スクリプトの実行条件を入力したりエラーメッセージを表示し...
|コマンド |説明 ...
|popat |ポップアップ表示の...
|popup |ポップアップを表示...
|popError |ポップアップウイン...
|popAsk |はい,いいえ,を表...
|input |入力フィールド付き...
|inputText |複数行の文字列を入...
|select(python)&br;popSelect(Ruby)|プルダウンメニュー...
|popFile |ファイル出力先とし...
|Env.addHotkey |コマンドラインから...
|Env.removeHotkey |Env.addHotkeyで追...
|openApp |App.openと同じ,ア...
|switchApp |openAppしたアプリ...
|closeApp |openAppしたアプリ...
|run(command) |バッチファイルの実...
** [[設定と環境変数>http://sikulix-2014.readthedocs.org/e...
Envクラスは旧バージョンとの互換性のためにあるが非推奨。~
|コマンド |説明 ...
|Sikulix.prefStore | ...
|Sikulix.prefLoad | ...
|Sikulix.prefRemove | ...
|Settings.getOS | ...
|Env.getOS | ...
|Settings.getOSVersion | ...
|Env.getOSVersion | ...
|Settings.isWindows | ...
|Settings.isMac | ...
|Settings.isLinux | ...
|Settings.getSikuliVersion | ...
|Env.getSikuliVersion | ...
|App.getClipb&br;Env.isLockOn |Numlockキーの状態を取得...
|Mouse.at&br;Env.getMouseLocation|マウスの座標位置を取得...
|Vision.setParameter | ...
|Vision.getParameter | ...
** [[画面の領域>http://sikulix-2014.readthedocs.org/en/la...
画像認識の対象範囲の設定。~
画像を検索,マウスの移動や画像認識対象範囲を座標で指定し...
|コマンド|説明|h
|getX||
|getY||
|setLocation||
|above|上方向|
|below|下方向|
|left |左方向|
|right|右方向|
** [[画面>http://sikulix-2014.readthedocs.org/en/latest/s...
デフォルトのスクリーン,マルチモニタのときのスクリーン,...
|コマンド|説明|h
|Screen |Screenクラス|
|getNumberScreens| |
|getBounds |バウンド領域を取得する。|
|capture |スクリーンを画像ファイルとしてキャプチ...
|selectRegion |範囲を指定して画像を保存する。|
|vncStart | |
** [[パターン>http://sikulix-2014.readthedocs.org/en/late...
画像検索機能(find,exists,clickなど)のオプション。~
IDEの中に貼り付けた画像を,クリックして表示する[パターン...
|コマンド|説明|h
|Pattern&br;similar&br;exact|90%以上の類似度で検索したい...
|targetOffset&br;getFilenameget&br;TargetOffset||
** [[マッチ>http://sikulix-2014.readthedocs.org/en/latest...
find系の処理では,最小類似度より類似度の高い画像を抽出す...
|コマンド|説明|h
|getScore&br;getTarget|findAll("img.png")&br;mm = SCREEN....
** [[ファイル画像の検索>http://sikulix-2014.readthedocs.o...
スクリーンの画像を検索対象とするのではなく,ファイル保存...
|コマンド|説明|h
|Finder|スクリーンの代わりに画像ファイルを検索する場合,...
|findAll|検索する。|
|hasNext&br;next|複数見つかった場合処理に使用する。|
|find||
** [[キー定数>http://sikulix-2014.readthedocs.org/en/late...
type()の引数に指定するキー定数。~
addHotkey()に使うmodifier keyとしては使えないことに注意す...
** [[アプリケーションクラス>http://sikulix-2014.readthedo...
|コマンド|説明|h
|focus|ポップアップ・ダイアログが他のウインドウの背面に隠...
|pause||
|App||
|isRunning||
|hasWindow||
|getWindow||
|getPID||
|getName||
|setUsing||
|open||
|close||
|focusedWindow||
|window||
** Sikuliの実行を停止する
Alt-Shift-Cで,スクリプトの停止が出来る。
終了行:
* SikuliX
Sikuli(シクリ)は,デスクトップアプリケーションでの作業...
画像認識([[OpenCV>https://opencv.org/]])や文字認識OCR(...
また,Python(Jpython)などを使って操作をプログラム化出来...
SikulはJavaで実装されていてJVM上で動作する。このため,Win...
自動化をプログラムするのにIDEが備わっていて,プログラム言...
一般的な[[RPA(robotic process automation)>https://ja.wi...
Sikuliは,2009年にMITのUser Interface Design Groupで開発...
ソースコードは,[[github – sikuli>https://github.com/siku...
その後の開発とサポートは,[[RaiMan's SikuliX>http://sikul...
** Sikuli(SikuliX)で出来ないこと・苦手なこと
Sikuli(SikuliX)は手軽に始められてスクリプトの作成も比較的...
- 操作を自動で記録するレコーダー機能がない~
市販されているRPAに実装されているレコーダー機能は,人が操...
Sikuli(RPAとは言っていないが・・・)には,このレコーダー...
レコーダー機能はお手軽で有用なのだが,人が操作する時には...
レコーダー機能は慣れてくるとあまり使わなくなる傾向がある...
- 作成したスクリプトが他のPCで動作しないことが多い~
Sikuliは画面上に表示される画像を探して操作する位置を特定...
また,OSのデザインがカスタマイズされていてボタンの色やデ...
ディスプレイの解像度が異なっていても,画像のピクセルサイ...
- 表示倍率を変更すると動作しなくなる~
アプリケーションによっては表示倍率を変更する機能があった...
* Sikuliのインストール
[[Sikul>https://github.com/sikuli/sikuli]]が開発が終了し...
** SikuliXのインストール
[[SikuliX>http://sikulix.com/]]の最新安定バージョンは2.0....
SkuliXはJavaで動作するので,前もって[[Java:https://www.or...
- SikulX IDE~
[[SikulX IDE ver2.0.5の実行ファイル>https://launchpad.net...
- SikuliX API~
[[SikulX APIファイル>https://launchpad.net/sikuli/sikulix...
- スクリプトエンジン~
SikuliXはいくつかのスクリプトエンジンが使える。Jython(Py...
-- [[Jython:http://www.jython.org/]]~
[[こちらから>https://repo1.maven.org/maven2/org/python/jy...
-- [[Jruby:http://jruby.org/]]~
[[こちらから>https://repo1.maven.org/maven2/org/jruby/jru...
インストールは,ダウンロードしたファイルを適当な(日本語...
以下のファイルを,''C:\Users\<ユーザー名>\AppData\Roaming...
jython-standalone-2.7.4.jar
jruby-complete-9.2.0.0.jar
これでインストールしたディレクトリの''sikulixide-2.0.5.ja...
#ref(sikulix.png,,50%)
* Sikuliの機能
** よく使うコマンドコマンド
|コマンド|説明|h
|>|マウス操作 ...
|click(【画像】) |画面内から指定した画像を...
|doubleClick(【画像】) |画面内から指定した画像を...
|rightClick(【画像】) |画面内から指定した画像を...
|mouceMove(【画像】) |画面内から指定した画像を...
|drugDrop(【画像1】,【画像2】) |画像1から画像2までドラッ...
|>|キーボード操作 ...
|type("A") |Aキーを押す。 ...
|type(Key.ENTER) |Enterキーを押す。 ...
|type("c", Key.CTRL) |Ctrl+Cを押す。修飾キーは...
|paste(u"日本語") |カーソルの位置に指定した...
|>|制御系 ...
|wait(10) |10秒間待機する。 ...
|wait(【画像】) |画面内に指定した画像が見...
|wait(【画像】, 10) |画面内に指定した画像が見...
コマンドは画像を指定するが,メニューで指定することが出来...
メニューの7個のボタンは次の用途で使用する。~
|ボタン名 |説明 ...
|スクリーンショットを撮る|画面内からクリックしたい場所な...
|画像を挿入する |取得済みの画像をプログラムに使...
|Region |処理を行う範囲を指定する。 ...
|Location |画面左上を(0, 0)とした座標で位...
|Offset |相対距離を指定する。 ...
|実行 |プログラムを実行する。 ...
|スローモーションで実行 |マウス操作のみ,ゆっくり操作す...
** [[スクリプトと画像処理に関する機能>http://sikulix-2014...
マウスの動作やログ出力など,各種機能の動作に関わる共通仕...
|コマンド ...
|setShowActions ...
|exit ...
|Settings.setImageCache ...
|Settings.ActionLogs ...
|Settings.InfoLogs ...
|Settings.DebugLogs ...
|Settings.MinSimilarity ...
|Settings.MoveMouseDelay ...
|Settings.DelayBeforeMouseDown ...
|Settings.DelayBeforeDrag ...
|Settings.DelayBeforeDrop ...
|Settings.ClickDelay ...
|Settings.TypeDelay ...
|Settings.SlowMotionDelay ...
|Settings.WaitScanRate&br;Settings.ObserveScanRate ...
|Settings.ObserveMinChangedPixels ...
|Settings.AlwaysResize&br;ImageCallback ...
|Settings.UserLogs&br;Settings.UserLogPrefix&br;Debug.use...
|Settings.UserLogTime ...
|Debug.setUserLogFile ...
|getBundlePath() ...
|getBundleFolder() ...
|getParentPath() ...
|getParentFolder() ...
|makePath(path1, path2, path3, ...) ...
|makeFolder(path1, path2, path3, ...) ...
|unzip(fromFile, toFolder) ...
|setBundlePath(path-to-a-folder) ...
|getBundlePath() ...
|getImagePath() ...
|addImagePath((a-new-path) ...
|addHTTPImagePath ...
|removeImagePath ...
|resetImagePath ...
|addImportPath ...
|load ...
|runScript ...
** [[ユーザーやその他のアプリケーションの操作>http://siku...
スクリプトの実行条件を入力したりエラーメッセージを表示し...
|コマンド |説明 ...
|popat |ポップアップ表示の...
|popup |ポップアップを表示...
|popError |ポップアップウイン...
|popAsk |はい,いいえ,を表...
|input |入力フィールド付き...
|inputText |複数行の文字列を入...
|select(python)&br;popSelect(Ruby)|プルダウンメニュー...
|popFile |ファイル出力先とし...
|Env.addHotkey |コマンドラインから...
|Env.removeHotkey |Env.addHotkeyで追...
|openApp |App.openと同じ,ア...
|switchApp |openAppしたアプリ...
|closeApp |openAppしたアプリ...
|run(command) |バッチファイルの実...
** [[設定と環境変数>http://sikulix-2014.readthedocs.org/e...
Envクラスは旧バージョンとの互換性のためにあるが非推奨。~
|コマンド |説明 ...
|Sikulix.prefStore | ...
|Sikulix.prefLoad | ...
|Sikulix.prefRemove | ...
|Settings.getOS | ...
|Env.getOS | ...
|Settings.getOSVersion | ...
|Env.getOSVersion | ...
|Settings.isWindows | ...
|Settings.isMac | ...
|Settings.isLinux | ...
|Settings.getSikuliVersion | ...
|Env.getSikuliVersion | ...
|App.getClipb&br;Env.isLockOn |Numlockキーの状態を取得...
|Mouse.at&br;Env.getMouseLocation|マウスの座標位置を取得...
|Vision.setParameter | ...
|Vision.getParameter | ...
** [[画面の領域>http://sikulix-2014.readthedocs.org/en/la...
画像認識の対象範囲の設定。~
画像を検索,マウスの移動や画像認識対象範囲を座標で指定し...
|コマンド|説明|h
|getX||
|getY||
|setLocation||
|above|上方向|
|below|下方向|
|left |左方向|
|right|右方向|
** [[画面>http://sikulix-2014.readthedocs.org/en/latest/s...
デフォルトのスクリーン,マルチモニタのときのスクリーン,...
|コマンド|説明|h
|Screen |Screenクラス|
|getNumberScreens| |
|getBounds |バウンド領域を取得する。|
|capture |スクリーンを画像ファイルとしてキャプチ...
|selectRegion |範囲を指定して画像を保存する。|
|vncStart | |
** [[パターン>http://sikulix-2014.readthedocs.org/en/late...
画像検索機能(find,exists,clickなど)のオプション。~
IDEの中に貼り付けた画像を,クリックして表示する[パターン...
|コマンド|説明|h
|Pattern&br;similar&br;exact|90%以上の類似度で検索したい...
|targetOffset&br;getFilenameget&br;TargetOffset||
** [[マッチ>http://sikulix-2014.readthedocs.org/en/latest...
find系の処理では,最小類似度より類似度の高い画像を抽出す...
|コマンド|説明|h
|getScore&br;getTarget|findAll("img.png")&br;mm = SCREEN....
** [[ファイル画像の検索>http://sikulix-2014.readthedocs.o...
スクリーンの画像を検索対象とするのではなく,ファイル保存...
|コマンド|説明|h
|Finder|スクリーンの代わりに画像ファイルを検索する場合,...
|findAll|検索する。|
|hasNext&br;next|複数見つかった場合処理に使用する。|
|find||
** [[キー定数>http://sikulix-2014.readthedocs.org/en/late...
type()の引数に指定するキー定数。~
addHotkey()に使うmodifier keyとしては使えないことに注意す...
** [[アプリケーションクラス>http://sikulix-2014.readthedo...
|コマンド|説明|h
|focus|ポップアップ・ダイアログが他のウインドウの背面に隠...
|pause||
|App||
|isRunning||
|hasWindow||
|getWindow||
|getPID||
|getName||
|setUsing||
|open||
|close||
|focusedWindow||
|window||
** Sikuliの実行を停止する
Alt-Shift-Cで,スクリプトの停止が出来る。
ページ名:
Counter: 0, today: 0, yesterday: 0
Copyright©2008 Yuji Ueno All Rights Reserved.
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
メインメニュー
ホーム
でぶlog
資料室
最新ページ一覧
全ページ一覧
ヘルプ
フォーラム
お問い合わせ