Agent Skills by ALSEL
Anthropic Claudeその他⭐ リポ 0品質スコア 50/100

pywinauto

pywinautoを使用してWindowsデスクトップアプリケーションを自動操作します。ウィンドウの検出やコントロールの検査、ボタンのクリック、テキスト入力など、Win32/UIAアプリケーションをプログラムから自在に制御できます。

description の原文を見る

Automate Windows desktop applications using pywinauto. Discover windows, inspect controls, click buttons, type text, and drive any Win32/UIA application programmatically.

SKILL.md 本文

Windows UI オートメーション (pywinauto)

pywinauto を使用して任意の Windows デスクトップアプリケーションを操作します:ウィンドウの発見、コントロールの検査、ボタンのクリック、テキストの入力、コンテンツの読み取りが可能です。 2つのバックエンドをサポートしています:Win32 API(従来型アプリケーション)と MS UI Automation(モダンアプリケーション)。

ユースケース

  • ユーザーが「XX アプリのそのボタンをクリックして」「このフォームを自動入力して」と依頼
  • API のないデスクトップアプリケーション(ERP システム、社内管理システムなど)を操作する必要がある
  • GUI アプリケーションをバッチ操作する(データの自動入力など)
  • 他のアプリケーションのインターフェース上のテキストコンテンツを読み取る必要がある

バックエンドの選択

バックエンドパラメータ対応アプリケーション
Win32 APIbackend="win32"MFC、VB6、VCL、シンプルな WinForms
MS UI Automationbackend="uia"WinForms、WPF、UWP Store アプリケーション、Qt5、ブラウザ

どちらを使うか不確定な場合は、まず uia を試してください。コントロールが見つからない場合は win32 に切り替えてください。

コマンドリファレンス

既存のアプリケーションに接続

from pywinauto import Application

# 方法 1:ウィンドウタイトルで接続
app = Application(backend="uia").connect(title="記事本", timeout=10)

# 方法 2:プロセス名で接続
app = Application(backend="uia").connect(path="notepad.exe")

# 方法 3:プロセス ID で接続
app = Application(backend="uia").connect(process=12345)

新しいアプリケーションを起動

from pywinauto import Application

app = Application(backend="uia").start("notepad.exe")
# ウィンドウが表示されるまで待機
app.window(title_re=".*記事本.*").wait("ready", timeout=10)

ウィンドウとコントロールの発見

# すべてのトップレベルウィンドウをリストアップ
from pywinauto import Desktop
windows = Desktop(backend="uia").windows()
for w in windows:
    print(f"{w.window_text()}{w.class_name()}")

# ウィンドウコントロールツリーを出力(デバッグ用)
dlg = app.window(title_re=".*記事本.*")
dlg.print_control_identifiers()

ボタンとメニューのクリック

dlg = app.window(title="記事本")

# メニューをクリック
dlg.menu_select("ファイル->開く")

# ボタンをクリック(テキストマッチングによる)
dlg.child_window(title="OK", control_type="Button").click()

# ボタンをクリック(auto_id による)
dlg.child_window(auto_id="btnSubmit").click()

テキストの入力

dlg = app.window(title="記事本")

# 編集ボックスに入力
edit = dlg.child_window(control_type="Edit")
edit.set_text("入力するコンテンツ")

# キーボード入力をシミュレート(特殊キーをサポート)
edit.type_keys("Hello{ENTER}World", with_spaces=True)

# 特殊キー:{ENTER} {TAB} {ESC} {DELETE} {BACKSPACE}
# 修飾キー:^ = Ctrl、% = Alt、+ = Shift
# 例:Ctrl+A = ^a、Ctrl+Shift+S = ^+s

インターフェースコンテンツの読み取り

dlg = app.window(title="記事本")

# テキストボックスの内容を読み取る
content = dlg.child_window(control_type="Edit").window_text()

# リストアイテムを読み取る
listbox = dlg.child_window(control_type="List")
items = [item.window_text() for item in listbox.children()]

# テーブルを読み取る
table = dlg.child_window(control_type="Table")
for row in table.children():
    cells = [c.window_text() for c in row.children()]
    print(" | ".join(cells))

待機と同期

# ウィンドウが表示されるまで待機
dlg = app.window(title="保存").wait("visible", timeout=10)

# ウィンドウが非表示になるまで待機
app.window(title="読み込み中...").wait_not("visible", timeout=30)

# コントロールが有効になるまで待機
dlg.child_window(title="送信").wait("enabled", timeout=5)

ウィンドウ管理

dlg = app.window(title="記事本")

# 最大化 / 最小化 / 復元
dlg.maximize()
dlg.minimize()
dlg.restore()

# 移動とサイズ変更
dlg.move_window(x=100, y=100, width=800, height=600)

# 前面に設定
dlg.set_focus()

# 閉じる
dlg.close()

スクロール

from pywinauto import mouse

# 指定座標で 3 行下にスクロール
mouse.scroll(coords=(500, 400), wheel_dist=-3)

# 5 行上にスクロール
mouse.scroll(coords=(500, 400), wheel_dist=5)

# コントロール内でスクロール(先にコントロール位置を取得)
rect = dlg.child_window(control_type="List").rectangle()
mouse.scroll(coords=(rect.mid_point()), wheel_dist=-3)

マウス座標操作

from pywinauto import mouse

# マウスを座標に移動
mouse.move(coords=(500, 300))

# 指定座標で左クリック
mouse.click(coords=(500, 300))

# 右クリック
mouse.right_click(coords=(500, 300))

# ダブルクリック
mouse.double_click(coords=(500, 300))

ドラッグ

from pywinauto import mouse

# ドラッグ:(100,200) から (300,400) へ
mouse.press(coords=(100, 200))
mouse.move(coords=(300, 400))
mouse.release(coords=(300, 400))

典型的なワークフロー

1. Desktop().windows() でオープンしているウィンドウをリストアップ
2. app.connect() でターゲットアプリケーションに接続
3. dlg.print_control_identifiers() でコントロールツリーを確認
4. コントロールタイプと属性に基づいてターゲット要素を特定
5. 操作を実行(click / set_text / type_keys / scroll)
6. 結果を読み取るか、操作完了を待機

セーフティルール

  • 操作前に必ず HITL 確認:どのアプリケーションのどのコントロールを操作するかをユーザーに通知
  • ユーザー文書を自動的に閉じない:保存されていない文書の close() を呼び出さない
  • 管理者ウィンドウを操作しない:UAC ポップアップとシステム設定をスキップ
  • 操作失敗時にスクリーンショットをフィードバック:ユーザーに現在のインターフェース状態を見せる
  • 各操作ステップ間に 0.5 秒の間隔を設ける:UI が応答しないほど操作が速くなるのを回避

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
malue-ai
リポジトリ
malue-ai/dazee-small
ライセンス
MIT
最終更新
不明

Source: https://github.com/malue-ai/dazee-small / ライセンス: MIT

関連スキル

汎用その他⭐ リポ 1,982

superfluid

Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper

by LeoYeAI
汎用その他⭐ リポ 100

civ-finish-quotes

実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。

by huxiuhan
汎用その他⭐ リポ 1,110

nookplot

Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。

by BankrBot
汎用その他⭐ リポ 59

web3-polymarket

Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。

by elophanto
汎用その他⭐ リポ 52

ethskills

Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。

by jiayaoqijia
汎用その他⭐ リポ 44

xxyy-trade

このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。

by Jimmy-Holiday
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: malue-ai · malue-ai/dazee-small · ライセンス: MIT