Fix: Remote Desktop — 60fps, Screen-Wechsel live, Consent-Dialog sichtbar (v2.3.0)
- CaptureModeRunner: Thread.Sleep(150) → 16ms (~60fps) + Skip-if-unchanged via Pixel-Hash - RtcService: rdp_switch_screen Handler — Screen wechseln ohne Consent-Dialog - RtcService: Fallback bei Consent-Fehler → rdp_denied statt silent capture - RdpConsentWindow: WindowStyle=ToolWindow + ShowInTaskbar=True (jetzt in Taskleiste sichtbar) - RemoteDesktopPanel: Screen-Dropdown auch während aktiver Verbindung nutzbar - Version: 2.2.0 → 2.3.0 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -61,7 +61,9 @@ export default function RemoteDesktopPanel({ agentId, agentHostname, autoConnect
|
||||
img.src = 'data:image/jpeg;base64,' + msg.data;
|
||||
} else if (msg.type === 'rdp_denied') {
|
||||
setStatus('error');
|
||||
setError('Zugriff wurde vom Benutzer abgelehnt');
|
||||
setError(msg.reason === 'consent_spawn_failed'
|
||||
? 'Consent-Dialog konnte nicht geöffnet werden (schtasks-Fehler)'
|
||||
: 'Zugriff wurde vom Benutzer abgelehnt');
|
||||
ws.close();
|
||||
} else if (msg.type === 'rdp_disconnected') {
|
||||
setStatus('idle');
|
||||
@@ -119,8 +121,14 @@ export default function RemoteDesktopPanel({ agentId, agentHostname, autoConnect
|
||||
{/* Screen-Selektor */}
|
||||
<select
|
||||
value={screenIdx}
|
||||
onChange={e => setScreenIdx(Number(e.target.value))}
|
||||
disabled={status === 'connected' || status === 'connecting' || status === 'waiting'}
|
||||
onChange={e => {
|
||||
const newIdx = Number(e.target.value);
|
||||
setScreenIdx(newIdx);
|
||||
if (status === 'connected' && wsRef.current?.readyState === WebSocket.OPEN) {
|
||||
wsRef.current.send(JSON.stringify({ type: 'rdp_switch_screen', screen: newIdx }));
|
||||
}
|
||||
}}
|
||||
disabled={status === 'connecting' || status === 'waiting'}
|
||||
style={{ fontSize: 12, padding: '3px 8px', borderRadius: 7, border: '1px solid var(--border-color)', background: 'var(--bg-tertiary)', color: 'var(--text-primary)', cursor: 'pointer', marginLeft: 4 }}
|
||||
>
|
||||
{SCREEN_OPTIONS.map(o => (
|
||||
|
||||
Reference in New Issue
Block a user