3using System.Threading.Tasks;
35 private readonly
string sessionId;
36 private readonly
string remoteJid;
40 private string deviceName =
string.Empty;
41 private int bitsPerPixel = 0;
44 private int width = 0;
45 private int height = 0;
46 private int tileSize = 0;
83 if (this.state != value)
101 internal set => this.screens = value;
109 get => this.bitsPerPixel;
110 internal set => this.bitsPerPixel = value;
119 internal set => this.left = value;
128 internal set => this.top = value;
137 internal set => this.width = value;
146 internal set => this.height = value;
154 get => this.tileSize;
155 internal set => this.tileSize = value;
163 get => this.deviceName;
164 internal set => this.deviceName = value;
167 internal void UpdateTile(
int X,
int Y,
string TileBase64)
177 internal Task ScanCompleted()
194 StringBuilder Xml =
new StringBuilder();
196 Xml.Append(
"<mouseMoved xmlns='");
198 Xml.Append(
"' sid='");
201 Xml.Append(X.ToString());
203 Xml.Append(Y.ToString());
206 this.SendMessage(Xml.ToString());
209 private Task SendMessage(
string Xml)
212 string.Empty,
this.remoteJid, Xml,
string.Empty,
string.Empty,
string.Empty,
string.Empty,
string.Empty,
null,
null);
223 StringBuilder Xml =
new StringBuilder();
225 Xml.Append(
"<mouseDown xmlns='");
227 Xml.Append(
"' sid='");
230 Xml.Append(X.ToString());
232 Xml.Append(Y.ToString());
234 Xml.Append(Button.ToString());
237 this.SendMessage(Xml.ToString());
248 StringBuilder Xml =
new StringBuilder();
250 Xml.Append(
"<mouseUp xmlns='");
252 Xml.Append(
"' sid='");
255 Xml.Append(X.ToString());
257 Xml.Append(Y.ToString());
259 Xml.Append(Button.ToString());
262 this.SendMessage(Xml.ToString());
273 StringBuilder Xml =
new StringBuilder();
275 Xml.Append(
"<mouseWheel xmlns='");
277 Xml.Append(
"' sid='");
280 Xml.Append(X.ToString());
282 Xml.Append(Y.ToString());
284 Xml.Append(Delta.ToString());
287 this.SendMessage(Xml.ToString());
296 StringBuilder Xml =
new StringBuilder();
298 Xml.Append(
"<keyDown xmlns='");
300 Xml.Append(
"' sid='");
302 Xml.Append(
"' key='");
303 Xml.Append(KeyCode.ToString());
306 this.SendMessage(Xml.ToString());
315 StringBuilder Xml =
new StringBuilder();
317 Xml.Append(
"<keyUp xmlns='");
319 Xml.Append(
"' sid='");
321 Xml.Append(
"' key='");
322 Xml.Append(KeyCode.ToString());
325 this.SendMessage(Xml.ToString());
Helps with common XML-related tasks.
static string Encode(string s)
Encodes a string for use in XML.
const string RemoteDesktopNamespace
http://waher.se/rdp/1.0
Maintains the client-side state of a Remote Desktop Session.
RemoteDesktopSessionState State
Session state changed.
string DeviceName
Name of device
EventHandler< TileEventArgs > TileUpdated
Event raised when a tile on the remote desktop has been updated.
void KeyDown(int KeyCode)
Reports a key having been pressed.
int Height
Height of screen
void MouseDown(int X, int Y, MouseButton Button)
Reports the mouse having been pressed down.
EventHandlerAsync StateChanged
Event raised when state has been changed.
RemoteDesktopSession(string SessionId, string RemoteJid, RemoteDesktopClient Client)
Maintains the client-side state of a Remote Desktop Session.
int BitsPerPixel
Bits per pixel.
void MouseUp(int X, int Y, MouseButton Button)
Reports the mouse having been released up.
RemoteDesktopClient Client
Remote Desktop Client
void MouseMoved(int X, int Y)
Reports the mouse having moved to a given position.
string RemoteJid
Remote JID
ScreenInfo[] Screens
Available remote screens.
EventHandlerAsync ScanComplete
Event raised when the screen has been successfully scanned and transferred.
void MouseWheel(int X, int Y, int Delta)
Reports the mouse wheel having been turned.
string SessionId
Session ID
void KeyUp(int KeyCode)
Reports a key having been released.
Information about a remote screen.
Event arguments for tile events.
delegate Task EventHandlerAsync(object Sender, EventArgs e)
Asynchronous version of EventArgs.
RemoteDesktopSessionState
State of a Remote Desktop Session
MouseButton
Enumeration identifying mouse button being used.
QoSLevel
Quality of Service Level for asynchronous messages. Support for QoS Levels must be supported by the r...
MessageType
Type of message received.
E2ETransmission
End-to-end encryption mode.