💻
SwiftでmacOSを操作するライブラリを作った
はじめに
タイトルの通り、SwiftでmacOSを操作するライブラリを作ったのでその使い方を紹介します。
スターくれたら嬉しいです。
インストール方法
SPMでインストールすることができます。macOSが対象のためiOSでは利用できません。追加後import SwiftAutoGUI
するとライブラリが使えるようになります。
dependencies: [
// Dependencies declare other packages that this package depends on.
.package(url: "https://github.com/NakaokaRei/SwiftAutoGUI", branch: "master")
],
targets: [
.target(
name: "MyProject",
dependencies: [..., "SwiftAutoGUI"]
)
...
]
キー入力
以下のようにSwiftAutoGUIクラスのメソッド呼び出すことmacOSにキー入力の命令を送ることができます。対応しているキーはKeycode.swiftに書いてあります。
以下のサンプルのようにショートカットの入力もでき、例えばctrl + ←
と命令を送ることで仮想デスクトップの移動などができます。
※現在はUSキーボードのみ対応しているため、JISキーボードだと正常に動作しない場合があります。(キー配列によってCGKeycode
の値が違う)
// 「ctrl + ←」のショートカット入力
SwiftAutoGUI.sendKeyShortcut([.control, .leftArrow])
// 音声アップ
SwiftAutoGUI.keyDown(.soundUp)
SwiftAutoGUI.keyUp(.soundUp)
マウス操作
マウス操作も同様にSwiftAutoGUIクラスのメソッドを呼びだすとマウスの移動、クリック、スクロールといった基本的な命令を発生させることができます。
// 現在の位置からdx、dyだけ移動
SwiftAutoGUI.moveMouse(dx: 10, dy: 10)
// 現在の位置でクリック
SwiftAutoGUI.leftClick()
// 現在の位置で各スクロール
SwiftAutoGUI.vscroll(clicks: 10) // up
SwiftAutoGUI.vscroll(clicks: -10) // down
SwiftAutoGUI.hscroll(clicks: 10) // left
SwiftAutoGUI.hscroll(clicks: -10) // right
最後に
今後はJISキーボードの対応、他OSの対応、イベントの追加などをしていきたいです。
Discussion
フローティングウインドウ(always top most)も入れて欲しいです。