Build integrated IS/BS/CF financial workbooks in Excel.
日本語の概要は準備中です。原文の説明を表示しています。
Use when driving two monitors on Windows with cua-driver.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Erkenne alle aktiven Monitore auf Windows, transformiere Koordinaten
zwischen Primary und Secondary Monitoren, und steuere beide Monitore
via cua-driver (computer_use).
Python (multi-monitor.py)
├── ctypes (EnumDisplayMonitors + GetMonitorInfoW) ← primär
└── PowerShell Fallback (System.Windows.Forms.Screen) ← sekundär
MonitorManager
├── monitors[] → Liste aller Monitore mit Position & Größe
├── virtual_desktop → Vereinigung aller Monitore
├── transform_to_monitor → Koordinaten-Transformation
└── get_capture_region → Region für cua-driver capture
# Menschlesbarer Report
python /c/Users/damir/AppData/Local/openamer-laptop/scripts/multi_monitor.py
# Maschinenlesbares JSON
python /c/Users/damir/AppData/Local/openamer-laptop/scripts/multi_monitor.py --json
# Info über Monitor 2
python /c/Users/damir/AppData/Local/openamer-laptop/scripts/multi_monitor.py --monitor 2
Wenn Monitor 1 (primary) 1920x1080 bei (0,0) ist und Monitor 2 (secondary) 1920x1080 rechts daneben bei (1920,0):
# Transformiere Primary-Koordinate (100, 50) auf Virtual Desktop
python multi_monitor.py --transform 100 50
# → Quell: (100, 50) → Ziel: (2020, 50) auf Monitor 2
Aktuelle Limitation: computer_use(action='capture', app='screen') erfasst
nur den PRIMARY Monitor. Der Secondary Monitor ist im Capture unsichtbar.
Workaround — Koordinaten-Klick auf Secondary:
# 1. Monitor-Topologie abfragen
from scripts.multi_monitor import get_secondary_region, coordinate_transform
region = get_secondary_region()
# → {'x': 1920, 'y': 0, 'width': 1920, 'height': 1080, 'device_name': r'\\.\DISPLAY2'}
# 2. Koordinate auf Secondary transformieren
abs_x, abs_y = coordinate_transform(from_x=100, from_y=50, target_monitor=2)
# → (2020, 50)
# 3. Klick auf Secondary via absolute Koordinaten
computer_use(action="click", coordinate=[abs_x, abs_y])
# Schritt 1: Monitore erkennen
import sys
sys.path.insert(0, r"$OPENAMER_HOME\scripts")
from multi_monitor import MonitorManager
mgr = MonitorManager()
print(f"Monitore: {mgr.count}")
print(f"Secondary: {mgr.has_secondary}")
if not mgr.has_secondary:
print("⚠️ Nur ein Monitor aktiv.")
# Normalen cua-driver flow verwenden
computer_use(action="capture", app="screen")
else:
# Schritt 2: Koordinate auf Secondary vorbereiten
sec = mgr.secondary_monitors[0]
target_x = sec.x + 500 # 500px vom linken Rand des Secondary
target_y = sec.y + 300 # 300px vom oberen Rand des Secondary
# Schritt 3: Aktion auf Secondary
computer_use(action="capture", app="screen")
# → Zeigt nur Primary
# Schritt 4: Klick auf Secondary mit absoluten Koordinaten
computer_use(action="click", coordinate=[target_x, target_y], capture_after=True)
# Alle Monitore mit Bounds
powershell.exe -Command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Screen]::AllScreens | ForEach-Object { Write-Host ($_.DeviceName + ': ' + $_.Bounds.Width + 'x' + $_.Bounds.Height + ' at (' + $_.Bounds.X + ',' + $_.Bounds.Y + ') Primary=' + $_.Primary) }"
# JSON-Ausgabe
powershell.exe -File "$OPENAMER_HOME\scripts\detect-monitors.ps1"
Wenn eine App auf dem Secondary Monitor läuft, kann man sie direkt ansprechen:
# App auf Secondary starten
terminal('"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe" --new-window --window-position=1920,0 "https://example.com"')
# Dann via app= Namen capturen
computer_use(action="capture", app="Chrome")
# → Erfasst das Chrome-Fenster, egal auf welchem Monitor
Dies ist der zuverlässigste Weg für Dual-Monitor — starte die App
mit --window-position=MONITOR2_X,0 auf dem Secondary und capture
dann via app= Name, nicht via app='screen'.
MonitorManager| Methode | Beschreibung |
|---|---|
refresh() | Monitor-Topologie neu erkennen |
has_secondary | True wenn ≥2 Monitore |
count | Anzahl Monitore |
get_monitor(index) | Monitor per 1-basiertem Index |
get_monitor_at(x, y) | Monitor der Punkt enthält |
transform_to_monitor(target, x, y, from_primary=True) | Koordinate transformieren |
get_capture_region(index) | Bounds eines Monitors |
summary() | Menschlesbarer Report |
json_output() | JSON-Darstellung |
| Funktion | Beschreibung |
|---|---|
detect_monitors() | Nur Monitor-Liste |
coordinate_transform(x, y, target_monitor=2) | Kurzform |
get_secondary_region() | Region des 2. Monitors |
has_secondary ist False, transform_to_monitor(2) wirft ValueErrorcomputer_use(action='capture', app='screen') zeigt nur den PRIMARY Monitordelivery_mode='foreground' (siehe windows-computer-use Skill)windows-computer-use Skill — Chromium Scroll, UIA Quirks, Edge Problematikcomputer-use Skill — Canonical Cross-Plattform cua-driver Workflow$OPENAMER_HOME\scripts\multi_monitor.py — Das Skript$OPENAMER_HOME\scripts\detect-montors.ps1 — PowerShell Helperまだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Build integrated IS/BS/CF financial workbooks in Excel.
日本語の概要は準備中です。原文の説明を表示しています。
Run and grow the OpenAmer Agent-to-Agent swarm: identity, trust, node-to-node ask, signed skill/insight sharing, and the autonomous self-learning loop.
日本語の概要は準備中です。原文の説明を表示しています。
Use for A/B experiments on OpenAmer configs and skills.
日本語の概要は準備中です。原文の説明を表示しています。
Roleplay a hostile user to find and triage UX pain points.
日本語の概要は準備中です。原文の説明を表示しています。
Agent mesh: master/worker nodes, HTTP delegation, heartbeat.
日本語の概要は準備中です。原文の説明を表示しています。
Use for agentic commerce payments tasks. Candidate synthesized from trend radar; awaiting trial promotion.
日本語の概要は準備中です。原文の説明を表示しています。