All new mesh agents for all platforms..

This commit is contained in:
Ylian Saint-Hilaire 2021-01-07 14:28:10 -08:00
parent b9eff75127
commit c1aa77c5dd
31 changed files with 310 additions and 205 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -20,6 +20,7 @@ var agents = {
'meshagent_mips24kc': 28,
'meshagent_osx-arm-64': 29,
'meshagent_freebsd_x86-64': 30,
'meshagent_mipsel24kc': 40,
'meshagent_osx-universal-64': 10005
}

View File

@ -1,41 +1,43 @@
3: MeshService-signed.exe
C5A3A0E72CB84A63D143AB1EBD252806C744F7FEF836C046D2248DABC620C011A8A17F6C206A7D05B590C29BD6CB13FB
D04F8B16986ADB1BFF47BDDD59F46340383D11CD41D6469BB00389CF13D0D83F9B4D888A3ED3786D64B6ADC02A0C0F8B
4: MeshService64-signed.exe
B81478F62DEA3689060CC8CAB88472700D2EFFE9CE746FBA0DA4C8B0463B313C0E93E8E9915533917EA2FA975A43EF80
5BB4C3A33DDA9969DCB09D49CCC03BDADADF0AE92C2C6B4CDEDC15ADDEF3E7610692AA9A9D035D5394FF366E01583143
5: meshagent_x86
A7380290EB6FADE9959F7350B3968CC9E30E651C521FD7E0B70A57E1FE6BB62B35F56A31F2753D374D4A2F9FF0384A88
2BA71A13889CB8122F692C08F7E584105AC1F06F35B76626250193A802E38758C64631D8D21E368E1DD4C7979BCD2737
6: meshagent_x86-64
C257887C2B841C1FB11DDE43D7B1613221E5B8587AF18017B209D53179385F13E1E033E39CADF2468FAB215D9AC0BBD6
C0976857CF0DD1CF3C351BBC3600B01F44C37320E55C560B80FFE4C210DAB3F3679D00B783F9D71220AE8B4EB8CC2C3D
9: meshagent_arm
C32755B0D81ABC75E0280DFE9B8DB1BB0BB5BAA427D3B56DBAE3F1C82EDCD47F8D41D976B868B45DE44F8C17E9F3DF8E
D9712B3887D0CFC42AB34AA5F20CFF6DEA365763D15AB9AB96944A4C4D79397A6739B2655FE7A43D9E682365AEA1D04C
7: meshagent_mips
0507248CDB453A4A39118FBDBDD97DFDD0D352FEABB921B41805B7FB9625944C1D5CE8052DEB3D85D62595BF38C7285D
B1BBA76A882A94DDBA7495C47E12D08084E8DF4FBDC42B845D3EDA8251619E09C2711A86938709F7632A74CEBCB2E0BD
13: meshagent_pogo
813FA30DC7E621847E86FA0D46CE93F26C437434DDDC9D4310C3DAD753522DBA5093F9B30614C10DFC85CC0C8E47C147
3446406EBC932C86FDBE1E1CE4054C69CFB0205BAA628637A6FF9EC0D7FD9F5D4E367DDC7176BD6C8BBB403C56B2F417
15: meshagent_poky
9A00421800BA4D1BC33BCB92F75CFBB4F89ADBEB226B3511231D6A43193AF725BD9671A0B575EA31E62E80BE97C31BDF
BFAB371D470FEDD71F596A70C1644F1B9C26A63C02CB7C9FEEBD6DE7BE8E4DD3626E82584DE9AE6A0C5C16B87C0F8AC2
16: meshagent_osx-x86-64
2C38C6485EFAF676939115D95DCA6A2940869877AEE94141205AC3B0B4BB0A2824E243E36364B57FA1F382A637008C47
7557D0B215D3515A42A34E785B6E2FED7B6DA080C95110D9E2C39AC5E51B3CC7ECDBDB6C35D74976F2035EBCF3C243D4
18: meshagent_poky64
A88917ACF1D8F10C8010D4D559D05AAD80E2734028DF62519ADAC6D698CF9876979E4B8C18E90136EA702583077A84C5
BDFEDE77C241042383D321019999D8BAFC2CAE9F3EC7F624FE010BC4143D22A1247011184E303AA66F3AD5E26ABCAA1A
19: meshagent_x86_nokvm
E15237BA64E133A7FC195715B1AFC83E0E78D1989D41AF2A078A32C33F4649CD3028C98E4B96EE331C9375ECE83BB0DF
325002F2672CB7E6796149519D1C57CEABF20590CC0AD1E216C68829F3A0233184E45E4E86ED6377BB1F2BB0FB3421AF
20: meshagent_x86-64_nokvm
0636C2229A637ED1E7052C4F4D51911AA268F409C896FFF3132C7E579D80619DE2761EEA7312AA61402929201BEFD4DE
0E3B0B1B4B20AF17FC2ED6F533704C870C5F5E7BFAE05AF4DBA300CBF9F314857858FC5C8CC4B5239EEF5161D0CCE370
24: meshagent_arm-linaro
8FACABD8642C81B6384B3FBCA13229ABEF9E437C99573AB02772AD99BD7AAEDBB890FECB2701E795A80A4CDE270E11E1
7DAB24A6E91C7C487917DB0AEFC64355741831F44A8BB03ADDE894AC5245AFE1CB579622D4AB91C6D54EC0F277F316B1
25: meshagent_armhf
A6379984018A32037918FEF6E2A98EA74F19084C360AB86A75AF961F190B55145C1990D8928710A52A60C3838D44E4DE
B7EF3319345E087B30A659217045AB1113700E699D2DF323B21CC2686EEA40CC026F4D5360FDAEDE83A729E24ACD0356
26: meshagent_arm64
30DD71FCAF2AFA658D17ADCCEFDF3CC49710FA0B924F913AB3404FF52EC30C0DD0FD04EB7B44DF5F7A7B12B0E9210857
4D6DC7639CC08125826CE1533C1521AE2851DDA9A86AEC5BA49A119EB83EBBE97FE84BF47339319487B8284CA94ADC6B
27: meshagent_armhf2
705ECB4FAECE84532D7342F9967558C3D2453498253ED6D88BACCEA63840DE0561BA8EEB024D3F17CBA45B66BB6FF592
C5DE4DEFE076565AEE46C3E18AE8230E99BB48B80408FC258391984F4FCFFC0B4FA4A021A1E6F257E3FFBF6A3CD5E1AA
28: meshagent_mips24kc
E1BC0CEF35D1632E8E05DC200C1B8E6C8C8DB46528CCB7DDE90BFF13AA31FBB7082D7E9AF0E9BE133948FFE543EC319B
B5F6381B6E1B27B96B6E2DD4311A1B9F72ADE517E91E8C4F90BD96AA0DAAFF683F6F0D3D7C85C064FD7537040CF7A155
29: meshagent_osx-arm-64
FCB0289AC41FADA104A3384CF0C1F1E4ACDCD1FA2C159184E188B0C0AC08AACF60D68259B158F0B8531569B34B015421
E0AD07AF070BDD0C06B8A7C0066748AF98A5FE4456166460783C66F37B30492E1FE3C9E3F8F23937C8088D17E760E4A8
30: meshagent_freebsd_x86-64
5415F85F6CCE836FD22D3D5B5C5EC01EED4049FCA0B1594D9EFD4B3376FB8EA7AB58DF8DF38BFA1F27489772751BEF60
8F101BD69F85A6F55517113B9BAC860ECF45FA002B141095023C258A677C057BB9A3E9EEF45CBAA69CCDC8F92AF41BBD
40: meshagent_mipsel24kc
F8E9A1FC4554A94E02B73B9E726C5467E73A41B899EDAD469606B2B0879FF4F200CDD7BAD45A4BE979EF8B8CF706843D
10005: meshagent_osx-universal-64
E96593397A9E2ACA86C6CB71C0C352F80F8918AFB593C147F64EF4E9DDF105C9780D66459DA21D8C761C9D55B4D52D4E
551B21C162F8C60575C741B45C6C068B6AD7A53299C521D1D61F7239EC2A6EAE917ED948FD5F0EBB5D19ECB40602C227

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
agents/meshagent_mipsel24kc Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -2339,6 +2339,7 @@ function CreateMeshCentralServer(config, args) {
28: { id: 28, localname: 'meshagent_mips24kc', rname: 'meshagent', desc: 'Linux MIPS24KC (OpenWRT)', update: true, amt: false, platform: 'linux', core: 'linux-noamt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' }, // MIPS Router with OpenWRT
29: { id: 29, localname: 'meshagent_osx-arm-64', rname: 'meshagent', desc: 'Apple macOS ARM-64', update: true, amt: false, platform: 'osx', core: 'linux-noamt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' }, // Apple Silicon ARM 64bit
30: { id: 30, localname: 'meshagent_freebsd_x86-64', rname: 'meshagent', desc: 'FreeBSD x86-64', update: true, amt: false, platform: 'freebsd', core: 'linux-noamt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' }, // FreeBSD x64
40: { id: 28, localname: 'meshagent_mipsel24kc', rname: 'meshagent', desc: 'Linux MIPSEL24KC (OpenWRT)', update: true, amt: false, platform: 'linux', core: 'linux-noamt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' }, // MIPS Router with OpenWRT
10003: { id: 3, localname: 'MeshService.exe', rname: 'meshagent.exe', desc: 'Win x86-32 service, unsigned', update: true, amt: true, platform: 'win32', core: 'windows-amt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' }, // Unsigned version of the Windows MeshAgent x86
10004: { id: 4, localname: 'MeshService64.exe', rname: 'meshagent.exe', desc: 'Win x86-64 service, unsigned', update: true, amt: true, platform: 'win32', core: 'windows-amt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' }, // Unsigned version of the Windows MeshAgent x64
10005: { id: 10005, localname: 'meshagent_osx-universal-64', rname: 'meshagent', desc: 'Apple macOS Universal Binary', update: true, amt: false, platform: 'osx', core: 'linux-noamt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' } // Apple Silicon + x86 universal binary

View File

@ -856,6 +856,84 @@
"player.handlebars->p11->deskarea0->deskarea4->1->timespan"
]
},
{
"en": "0x020009",
"xloc": [
"default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
]
},
{
"en": "0x020073",
"xloc": [
"default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
]
},
{
"en": "0x080057",
"xloc": [
"default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
]
},
{
"en": "0x0A0053",
"xloc": [
"default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
]
},
{
"en": "0x100000",
"xloc": [
"default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
]
},
{
"en": "0x100025",
"xloc": [
"default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
]
},
{
"en": "0x100026",
"xloc": [
"default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
]
},
{
"en": "0x100027",
"xloc": [
"default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
]
},
{
"en": "0x100028",
"xloc": [
"default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
]
},
{
"en": "0x10004C",
"xloc": [
"default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
]
},
{
"en": "0x10004D",
"xloc": [
"default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
]
},
{
"en": "0x100052",
"xloc": [
"default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
]
},
{
"en": "0x11004D",
"xloc": [
"default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
]
},
{
"cs": "1 aktivní relace",
"de": "1 aktive Sitzung",
@ -19010,7 +19088,7 @@
"zh-cht": "輸入",
"xloc": [
"default-mobile.handlebars->container->page_content->column_l->p10->p10desktop->deskarea4->1->3->11->DeskControlSpan",
"default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->11->DeskControlSpan",
"default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->13->DeskControlSpan",
"desktop.handlebars->p11->deskarea0->deskarea4->3->9->DeskControlSpan"
]
},
@ -38929,7 +39007,7 @@
"zh-chs": "切换鼠标和键盘输入",
"zh-cht": "切換鼠標和鍵盤輸入",
"xloc": [
"default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->11",
"default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->13",
"desktop.handlebars->p11->deskarea0->deskarea4->3->9"
]
},

View File

@ -684,22 +684,21 @@
<input id="softKeyboard" autocomplete="off" type="password" style="z-index:200;opacity:0;width:1px;height:1px" onfocus="keyboardFocusChange()" onblur="keyboardFocusChange()" onkeypress="return ondeskkeypress(event)" onkeydown="return ondeskkeydown(event)" onkeyup="return ondeskkeyup(event)" />
</div>
<div id="deskButtonMenu" style="display:none;position:absolute;top:10px;left:10px;right:55px;bottom:10px;z-index:1000">
<div class="menuButton" onclick="deskMenuButton(5)">Win</div>
<div class="menuButton" onclick="deskMenuButton(10)">Ctrl-Alt-Del</div>
<div class="menuButton" onclick="deskMenuButton(13)">ESC</div>
<div class="menuButton" onclick="deskMenuButton(0)">WIN + Down</div>
<div class="menuButton" onclick="deskMenuButton(1)">WIN + Up</div>
<div class="menuButton" onclick="deskMenuButton(2)">WIN + L</div>
<div class="menuButton" onclick="deskMenuButton(3)">WIN + M</div>
<div class="menuButton" onclick="deskMenuButton(4)">Shift + WIN + M</div>
<div class="menuButton" onclick="deskMenuButton(6)">WIN + R</div>
<div class="menuButton" onclick="deskMenuButton(7)">ALT + F4</div>
<div class="menuButton" onclick="deskMenuButton(8)">CTRL + W</div>
<div class="menuButton" onclick="deskMenuButton(9)">ALT + TAB</div>
<div class="menuButton" onclick="deskMenuButton(11)">TAB</div>
<div class="menuButton" onclick="deskMenuButton(12)">Shift + F10</div>
<div class="menuButton" onclick="deskMenuButton(0x100000)">Win</div>
<div class="menuButton" onclick="deskMenuButton(0x0A0053)">Ctrl-Alt-Del</div>
<div class="menuButton" onclick="deskMenuButton(0x00001B)">ESC</div>
<div class="menuButton" onclick="deskMenuButton(0x100028)">WIN + Down</div>
<div class="menuButton" onclick="deskMenuButton(0x100026)">WIN + Up</div>
<div class="menuButton" onclick="deskMenuButton(0x10004C)">WIN + L</div>
<div class="menuButton" onclick="deskMenuButton(0x10004D)">WIN + M</div>
<div class="menuButton" onclick="deskMenuButton(0x11004D)">Shift + WIN + M</div>
<div class="menuButton" onclick="deskMenuButton(0x100052)">WIN + R</div>
<div class="menuButton" onclick="deskMenuButton(0x020073)">ALT + F4</div>
<div class="menuButton" onclick="deskMenuButton(0x080057)">CTRL + W</div>
<div class="menuButton" onclick="deskMenuButton(0x020009)">ALT + TAB</div>
<div class="menuButton" onclick="deskMenuButton(0x000009)">TAB</div>
<div class="menuButton" onclick="deskMenuButton(0x010079)">Shift + F10</div>
</div>
<div id=p10desktop style="overflow:hidden;position:absolute;top:55px;bottom:0px;width:100%;display:none">
<div id=deskarea1 style="position:absolute;top:0px;width:100%;height:32px">
<div style="padding-top:2px;padding-bottom:2px;background:#C0C0C0;height:32px">
@ -3482,94 +3481,87 @@
}
// Remote desktop special key combos for Windows
function deskSendKeys(key) {
function deskSendKeys(xkey) {
if (xxdialogMode || desktop == null || desktop.State != 3) return;
var ks = key ? key : Q('deskkeys').value;
if (ks == 0) { // WIN + Down arrow
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe7, 1], [0xff54, 1], [0xff54, 0], [0xffe7, 0]]); // Intel AMT: Meta-left down, Down arrow press, Down arrow release, Meta-left release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN, 0x5B], [desktop.m.KeyAction.DOWN, 40], [desktop.m.KeyAction.UP, 40], [desktop.m.KeyAction.EXUP, 0x5B]]); // Agent: L-Winkey press, Down arrow press, Down arrow release, L-Winkey release
}
} else if (ks == 1) { // WIN + Up arrow
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe7, 1], [0xff52, 1], [0xff52, 0], [0xffe7, 0]]); // Intel AMT: Meta-left down, Up arrow press, Up arrow release, Meta-left release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN, 0x5B], [desktop.m.KeyAction.DOWN, 38], [desktop.m.KeyAction.UP, 38], [desktop.m.KeyAction.EXUP, 0x5B]]); // MeshAgent: L-Winkey press, Up arrow press, Up arrow release, L-Winkey release
}
} else if (ks == 2) { // WIN + L
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe7, 1], [0x6c, 1], [0x6c, 0], [0xffe7, 0]]); // Intel AMT: Meta-left down, 'l' press, 'l' release, Meta-left release
} else {
desktop.sendCtrlMsg('{"action":"lock"}');
//desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN,0x5B],[desktop.m.KeyAction.DOWN,76],[desktop.m.KeyAction.UP,76],[desktop.m.KeyAction.EXUP,0x5B]]); // MeshAgent: L-Winkey press, 'L' press, 'L' release, L-Winkey release
//desktop.m.SendKeyMsgKC(desktop.m.KeyAction.EXDOWN, 0x5B);
//desktop.m.SendKeyMsgKC(desktop.m.KeyAction.DOWN, 76);
//desktop.m.SendKeyMsgKC(desktop.m.KeyAction.UP, 76);
//desktop.m.SendKeyMsgKC(desktop.m.KeyAction.EXUP, 0x5B);
}
} else if (ks == 3) { // WIN + M
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe7, 1], [0x6d, 1], [0x6d, 0], [0xffe7, 0]]); // Intel AMT: Meta-left down, 'm' press, 'm' release, Meta-left release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN, 0x5B], [desktop.m.KeyAction.DOWN, 77], [desktop.m.KeyAction.UP, 77], [desktop.m.KeyAction.EXUP, 0x5B]]); // MeshAgent: L-Winkey press, 'M' press, 'M' release, L-Winkey release
}
} else if (ks == 4) { // Shift + WIN + M
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe1, 1], [0xffe7, 1], [0x6d, 1], [0x6d, 0], [0xffe7, 0], [0xffe1, 0]]); // Intel AMT: Shift-left down, Meta-left down, 'm' press, 'm' release, Meta-left release, Shift-left release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.DOWN, 16], [desktop.m.KeyAction.EXDOWN, 0x5B], [desktop.m.KeyAction.DOWN, 77], [desktop.m.KeyAction.UP, 77], [desktop.m.KeyAction.EXUP, 0x5B], [desktop.m.KeyAction.UP, 16]]); // MeshAgent: L-shift press, L-Winkey press, 'M' press, 'M' release, L-Winkey release, L-shift release
}
} else if (ks == 5) { // WIN
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe7, 1], [0xffe7, 0]]); // Intel AMT: Meta-left down, Meta-left release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN, 0x5B], [desktop.m.KeyAction.EXUP, 0x5B]]); // MeshAgent: L-Winkey press, L-Winkey release
}
} else if (ks == 6) { // WIN + R
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe7, 1], [0x72, 1], [0x72, 0], [0xffe7, 0]]); // Intel AMT: Meta-left down, 'r' press, 'r' release, Meta-left release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN, 0x5B], [desktop.m.KeyAction.DOWN, 82], [desktop.m.KeyAction.UP, 82], [desktop.m.KeyAction.EXUP, 0x5B]]); // MeshAgent: L-Winkey press, 'R' press, 'R' release, L-Winkey release
}
} else if (ks == 7) { // ALT-F4
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe9, 1], [0xffc1, 1], [0xffc1, 0], [0xffe9, 0]]); // Intel AMT: Alt down, 'F4' press, 'F4' release, Alt release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN, 18], [desktop.m.KeyAction.DOWN, 115], [desktop.m.KeyAction.UP, 115], [desktop.m.KeyAction.EXUP, 18]]); // MeshAgent: Alt press, 'F4' press, 'F4' release, Alt release
}
} else if (ks == 8) { // CTRL-W
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe3, 1], [0x77, 1], [0x77, 0], [0xffe3, 0]]); // Intel AMT: Ctrl down, 'w' press, 'w' release, Ctrl release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN, 17], [desktop.m.KeyAction.DOWN, 87], [desktop.m.KeyAction.UP, 87], [desktop.m.KeyAction.EXUP, 17]]); // MeshAgent: Ctrl press, 'W' press, 'W' release, Ctrl release
}
} else if (ks == 9) { // ALT-TAB
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe9, 1], [0xff09, 1], [0xff09, 0], [0xffe9, 0]]); // Intel AMT: Alt down, 'TAB' press, 'TAB' release, Alt release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN, 18], [desktop.m.KeyAction.DOWN, 9], [desktop.m.KeyAction.UP, 9], [desktop.m.KeyAction.EXUP, 18]]); // MeshAgent: Alt press, 'TAB' press, 'TAB' release, Alt release
}
} else if (ks == 10) { // CTRL-ALT-DEL
desktop.m.sendcad();
} else if (ks == 11) { // TAB
if (desktop.contype == 2) {
desktop.m.sendkey([[0xff09, 1], [0xff09, 0]]); // Intel AMT: 'TAB' press, 'TAB' release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.DOWN, 9], [desktop.m.KeyAction.UP, 9]]); // MeshAgent: 'TAB' press, 'TAB' release
}
} else if (ks == 12) { // Shift-F10
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe1, 1], [0xffc7, 1], [0xffc7, 0], [0xffe1, 0]]); // Intel AMT: Left-Shift Down, F10 down, F10 up, Left-Shift Up
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.DOWN, 16], [desktop.m.KeyAction.DOWN, 121], [desktop.m.KeyAction.UP, 121], [desktop.m.KeyAction.UP, 16]]); // MeshAgent: Left-Shift Down, F10 down, F10 up, Left-Shift Up
}
} else if (ks == 13) { // ESC
if (desktop.contype == 2) {
desktop.m.sendkey([[27, 1], [27, 0]]); // Intel AMT: ESC press, ESC release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.DOWN, 27], [desktop.m.KeyAction.UP, 27]]); // MeshAgent: ESC press, ESC release
}
// Construct the key command
var ks = xkey ? xkey : parseInt(Q('deskkeys').value);
if (ks == 0x0A0053) { desktop.m.sendcad(); return; } // CTRL-ALT-DEL
if ((desktop.contype == 1) && (ks == 0x100052)) { desktop.sendCtrlMsg('{"action":"lock"}'); return; } // Lock desktop
var flags = (ks & 0xFF0000) >> 16, key = (ks & 0xFFFF), keyArray = [], keyArray2 = [];
var amtTranslate = {
8: 0xff08, // BackSpace
9: 0xff09, // Tab
13: 0xff0d, // Return or Enter
27: 0xff1b, // Escape
45: 0xff63, // Insert
46: 0xffff, // Delete
36: 0xff50, // Home
35: 0xff57, // End
33: 0xff55, // Page Up
34: 0xff56, // Page Down
37: 0xff51, // Left arrow
38: 0xff52, // Up arrow
39: 0xff53, // Right arrow
40: 0xff54, // Down arrow
112: 0xffbe, // F1
113: 0xffbf, // F2
114: 0xffc0, // F3
115: 0xffc1, // F4
116: 0xffc2, // F5
117: 0xffc3, // F6
118: 0xffc4, // F7
119: 0xffc5, // F8
120: 0xffc6, // F9
121: 0xffc7, // F10
122: 0xffc8, // F11
123: 0xffc9 // F12
}
// 0x010000 = Shift
// 0x020000 = Left-Alt
// 0x080000 = Ctrl
// 0x100000 = Window
// Examples:
// WIN+DOWN = 0x100028
// WIN+UP = 0x100026
// WIN+L = 0x10004C
// WIN+M = 0x10004D
// Shift+WIN+M = 0x11004D
// WIN = 0x100000
// WIN+R = 0x100052
// ALT+F4 = 0x020073
// CTRL+W = 0x080057
// ALT+TAB = 0x020009
// CTRL-ALT-DEL = 0x0A0053
// WIN-LEFT = 0x100025
// WIN-RIGHT = 0x100027
// SHIFT+F10 = 0x010079
if (desktop.contype == 2) {
// Intel AMT
if (flags & 1) { keyArray.push([0xffe1, 1]); keyArray2.push([0xffe1, 0]); } // Shift
if (flags & 2) { keyArray.push([0xffe9, 1]); keyArray2.push([0xffe9, 0]); } // Left-alt
if (flags & 8) { keyArray.push([0xffe3, 1]); keyArray2.push([0xffe3, 0]); } // Ctrl
if (flags & 16) { keyArray.push([0xffe7, 1]); keyArray2.push([0xffe7, 0]); } // Windows key
if (amtTranslate[key]) { key = amtTranslate[key]; }
if ((key >= 65) && (key <= 90)) { key += 32; }
if (key != 0) { keyArray.push([key, 1]); keyArray2.push([key, 0]); }
keyArray2.reverse();
for (var i = 0; i < keyArray2.length; i++) { keyArray.push(keyArray2[i]); }
desktop.m.sendkey(keyArray);
} else {
// Agent desktop
if (flags & 1) { keyArray.push([desktop.m.KeyAction.DOWN, 16]); keyArray2.push([desktop.m.KeyAction.UP, 16]); } // Shift
if (flags & 2) { keyArray.push([desktop.m.KeyAction.EXDOWN, 18]); keyArray2.push([desktop.m.KeyAction.EXUP, 18]); } // Left-alt
if (flags & 8) { keyArray.push([desktop.m.KeyAction.EXDOWN, 17]); keyArray2.push([desktop.m.KeyAction.EXUP, 17]); } // Ctrl
if (flags & 16) { keyArray.push([desktop.m.KeyAction.EXDOWN, 0x5B]); keyArray2.push([desktop.m.KeyAction.EXUP, 0x5B]); } // Windows key
if (key != 0) { keyArray.push([desktop.m.KeyAction.DOWN, key]); keyArray2.push([desktop.m.KeyAction.UP, key]); }
keyArray2.reverse();
for (var i = 0; i < keyArray2.length; i++) { keyArray.push(keyArray2[i]); }
desktop.m.SendKeyMsgKC(keyArray);
}
}

View File

@ -627,6 +627,7 @@
<span id=DeskRefreshButton title="Refresh the desktop"><img id=DeskRefreshButtonImage src='images/icon-refresh.png' onclick=deskRefreshFunction() height=16 width=16 style=padding-top:2px /></span>
</div>
<div>
<!--
<select id="deskkeys">
<option value=10>Ctrl+Alt+Del</option>
<option value=5>Win</option>
@ -642,6 +643,37 @@
<option value=11>Win+Left</option>
<option value=12>Win+Right</option>
</select>
// WIN+DOWN = 0x100028
// WIN+UP = 0x100026
// WIN+L = 0x10004C
// WIN+M = 0x10004D
// Shift+WIN+M = 0x11004D
// WIN = 0x100000
// WIN+R = 0x100052
// ALT+F4 = 0x020073
// CTRL+W = 0x080057
// ALT+TAB = 0x020009
// CTRL-ALT-DEL = 0x0A0053
// WIN-LEFT = 0x100025
// WIN-RIGHT = 0x100027
-->
<select id="deskkeys">
<option value=0x0A0053>Ctrl+Alt+Del</option>
<option value=0x100000>Win</option>
<option value=0x100028>Win+Down</option>
<option value=0x100026>Win+Up</option>
<option value=0x10004C>Win+L</option>
<option value=0x10004D>Win+M</option>
<option value=0x11004D>Shift+Win+M</option>
<option value=0x100052>Win+R</option>
<option value=0x020073>Alt-F4</option>
<option value=0x080057>Ctrl-W</option>
<option value=0x020009>Alt-Tab</option>
<option value=0x100025>Win+Left</option>
<option value=0x100027>Win+Right</option>
</select>
<input id="DeskWD" type=button value="Send" onkeypress="return false" onkeydown="return false" onclick="deskSendKeys()" />
<input id="DeskESC" style="display:none" type="button" value="ESC" onkeypress="return false" onkeydown="return false" onclick="sendDeskEsc()" />
<input id="DeskClip" style="" type="button" value="Clipboard" onkeypress="return false" onkeydown="return false" onclick="showDeskClip()" />
@ -7429,86 +7461,85 @@
function deskSendKeys() {
Q('DeskWD').blur();
if (xxdialogMode || desktop == null || desktop.State != 3) return;
var ks = Q('deskkeys').value;
if (ks == 0) { // WIN+Down arrow
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe7,1],[0xff54,1],[0xff54,0],[0xffe7,0]]); // Intel AMT: Meta-left down, Down arrow press, Down arrow release, Meta-left release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN,0x5B],[desktop.m.KeyAction.DOWN,40],[desktop.m.KeyAction.UP,40],[desktop.m.KeyAction.EXUP,0x5B]]); // Agent: L-Winkey press, Down arrow press, Down arrow release, L-Winkey release
}
} else if (ks == 1) { // WIN+Up arrow
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe7,1],[0xff52,1],[0xff52,0],[0xffe7,0]]); // Intel AMT: Meta-left down, Up arrow press, Up arrow release, Meta-left release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN,0x5B],[desktop.m.KeyAction.DOWN,38],[desktop.m.KeyAction.UP,38],[desktop.m.KeyAction.EXUP,0x5B]]); // MeshAgent: L-Winkey press, Up arrow press, Up arrow release, L-Winkey release
}
} else if (ks == 2) { // WIN+L arrow
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe7,1],[0x6c,1],[0x6c,0],[0xffe7,0]]); // Intel AMT: Meta-left down, 'l' press, 'l' release, Meta-left release
} else {
desktop.sendCtrlMsg('{"action":"lock"}');
//desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN,0x5B],[desktop.m.KeyAction.DOWN,76],[desktop.m.KeyAction.UP,76],[desktop.m.KeyAction.EXUP,0x5B]]); // MeshAgent: L-Winkey press, 'L' press, 'L' release, L-Winkey release
//desktop.m.SendKeyMsgKC(desktop.m.KeyAction.EXDOWN, 0x5B);
//desktop.m.SendKeyMsgKC(desktop.m.KeyAction.DOWN, 76);
//desktop.m.SendKeyMsgKC(desktop.m.KeyAction.UP, 76);
//desktop.m.SendKeyMsgKC(desktop.m.KeyAction.EXUP, 0x5B);
}
} else if (ks == 3) { // WIN+M arrow
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe7,1],[0x6d,1],[0x6d,0],[0xffe7,0]]); // Intel AMT: Meta-left down, 'm' press, 'm' release, Meta-left release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN,0x5B],[desktop.m.KeyAction.DOWN,77],[desktop.m.KeyAction.UP,77],[desktop.m.KeyAction.EXUP,0x5B]]); // MeshAgent: L-Winkey press, 'M' press, 'M' release, L-Winkey release
}
} else if (ks == 4) { // Shift+WIN+M arrow
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe1,1],[0xffe7,1],[0x6d,1],[0x6d,0],[0xffe7,0],[0xffe1,0]]); // Intel AMT: Shift-left down, Meta-left down, 'm' press, 'm' release, Meta-left release, Shift-left release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.DOWN,16],[desktop.m.KeyAction.EXDOWN,0x5B],[desktop.m.KeyAction.DOWN,77],[desktop.m.KeyAction.UP,77],[desktop.m.KeyAction.EXUP,0x5B],[desktop.m.KeyAction.UP, 16]]); // MeshAgent: L-shift press, L-Winkey press, 'M' press, 'M' release, L-Winkey release, L-shift release
}
} else if (ks == 5) { // WIN
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe7,1],[0xffe7,0]]); // Intel AMT: Meta-left down, Meta-left release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN,0x5B], [desktop.m.KeyAction.EXUP,0x5B]]); // MeshAgent: L-Winkey press, L-Winkey release
}
} else if (ks == 6) { // WIN+R
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe7,1],[0x72,1],[0x72,0],[0xffe7,0]]); // Intel AMT: Meta-left down, 'r' press, 'r' release, Meta-left release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN, 0x5B], [desktop.m.KeyAction.DOWN, 82], [desktop.m.KeyAction.UP, 82], [desktop.m.KeyAction.EXUP, 0x5B]]); // MeshAgent: L-Winkey press, 'R' press, 'R' release, L-Winkey release
}
} else if (ks == 7) { // ALT-F4
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe9,1],[0xffc1,1],[0xffc1,0],[0xffe9,0]]); // Intel AMT: Alt down, 'F4' press, 'F4' release, Alt release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN, 18], [desktop.m.KeyAction.DOWN, 115], [desktop.m.KeyAction.UP, 115], [desktop.m.KeyAction.EXUP, 18]]); // MeshAgent: Alt press, 'F4' press, 'F4' release, Alt release
}
} else if (ks == 8) { // CTRL-W
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe3,1],[0x77,1],[0x77,0],[0xffe3,0]]); // Intel AMT: Ctrl down, 'w' press, 'w' release, Ctrl release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN, 17], [desktop.m.KeyAction.DOWN, 87], [desktop.m.KeyAction.UP, 87], [desktop.m.KeyAction.EXUP, 17]]); // MeshAgent: Ctrl press, 'W' press, 'W' release, Ctrl release
}
} else if (ks == 9) { // ALT-TAB
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe9, 1], [0xff09, 1], [0xff09, 0], [0xffe9, 0]]); // Intel AMT: Alt down, 'TAB' press, 'TAB' release, Alt release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN, 18], [desktop.m.KeyAction.DOWN, 9], [desktop.m.KeyAction.UP, 9], [desktop.m.KeyAction.EXUP, 18]]); // MeshAgent: Alt press, 'TAB' press, 'TAB' release, Alt release
}
} else if (ks == 10) { // CTRL-ALT-DEL
desktop.m.sendcad();
} else if (ks == 11) { // WIN-LEFT
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe7, 1], [0xff51, 1], [0xff51, 0], [0xffe7, 0]]); // Intel AMT: Meta-left down, Left arrow press, Left arrow release, Meta-left release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN, 0x5B], [desktop.m.KeyAction.DOWN, 37], [desktop.m.KeyAction.UP, 37], [desktop.m.KeyAction.EXUP, 0x5B]]);
}
} else if (ks == 12) { // WIN-RIGHT
if (desktop.contype == 2) {
desktop.m.sendkey([[0xffe7, 1], [0xff53, 1], [0xff53, 0], [0xffe7, 0]]); // Intel AMT: Meta-left down, Right arrow press, Right arrow release, Meta-left release
} else {
desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN, 0x5B], [desktop.m.KeyAction.DOWN, 39], [desktop.m.KeyAction.UP, 39], [desktop.m.KeyAction.EXUP, 0x5B]]);
}
// Construct the key command
var ks = parseInt(Q('deskkeys').value);
if (ks == 0x0A0053) { desktop.m.sendcad(); return; } // CTRL-ALT-DEL
if ((desktop.contype == 1) && (ks == 0x100052)) { desktop.sendCtrlMsg('{"action":"lock"}'); return; } // Lock desktop
var flags = (ks & 0xFF0000) >> 16, key = (ks & 0xFFFF), keyArray = [], keyArray2 = [];
var amtTranslate = {
8 : 0xff08, // BackSpace
9 : 0xff09, // Tab
13 : 0xff0d, // Return or Enter
27 : 0xff1b, // Escape
45 : 0xff63, // Insert
46 : 0xffff, // Delete
36 : 0xff50, // Home
35 : 0xff57, // End
33 : 0xff55, // Page Up
34 : 0xff56, // Page Down
37 : 0xff51, // Left arrow
38 : 0xff52, // Up arrow
39 : 0xff53, // Right arrow
40 : 0xff54, // Down arrow
112 : 0xffbe, // F1
113 : 0xffbf, // F2
114 : 0xffc0, // F3
115 : 0xffc1, // F4
116 : 0xffc2, // F5
117 : 0xffc3, // F6
118 : 0xffc4, // F7
119 : 0xffc5, // F8
120 : 0xffc6, // F9
121 : 0xffc7, // F10
122 : 0xffc8, // F11
123 : 0xffc9 // F12
}
// 0x010000 = Shift
// 0x020000 = Left-Alt
// 0x080000 = Ctrl
// 0x100000 = Window
// Examples:
// WIN+DOWN = 0x100028
// WIN+UP = 0x100026
// WIN+L = 0x10004C
// WIN+M = 0x10004D
// Shift+WIN+M = 0x11004D
// WIN = 0x100000
// WIN+R = 0x100052
// ALT+F4 = 0x020073
// CTRL+W = 0x080057
// ALT+TAB = 0x020009
// CTRL-ALT-DEL = 0x0A0053
// WIN-LEFT = 0x100025
// WIN-RIGHT = 0x100027
// SHIFT+F10 = 0x010079
if (desktop.contype == 2) {
// Intel AMT
if (flags & 1) { keyArray.push([0xffe1, 1]); keyArray2.push([0xffe1, 0]); } // Shift
if (flags & 2) { keyArray.push([0xffe9, 1]); keyArray2.push([0xffe9, 0]); } // Left-alt
if (flags & 8) { keyArray.push([0xffe3, 1]); keyArray2.push([0xffe3, 0]); } // Ctrl
if (flags & 16) { keyArray.push([0xffe7, 1]); keyArray2.push([0xffe7, 0]); } // Windows key
if (amtTranslate[key]) { key = amtTranslate[key]; }
if ((key >= 65) && (key <= 90)) { key += 32; }
if (key != 0) { keyArray.push([key, 1]); keyArray2.push([key, 0]); }
keyArray2.reverse();
for (var i = 0; i < keyArray2.length; i++) { keyArray.push(keyArray2[i]); }
desktop.m.sendkey(keyArray);
} else {
// Agent desktop
if (flags & 1) { keyArray.push([desktop.m.KeyAction.DOWN, 16]); keyArray2.push([desktop.m.KeyAction.UP, 16]); } // Shift
if (flags & 2) { keyArray.push([desktop.m.KeyAction.EXDOWN, 18]); keyArray2.push([desktop.m.KeyAction.EXUP, 18]); } // Left-alt
if (flags & 8) { keyArray.push([desktop.m.KeyAction.EXDOWN, 17]); keyArray2.push([desktop.m.KeyAction.EXUP, 17]); } // Ctrl
if (flags & 16) { keyArray.push([desktop.m.KeyAction.EXDOWN, 0x5B]); keyArray2.push([desktop.m.KeyAction.EXUP, 0x5B]); } // Windows key
if (key != 0) { keyArray.push([desktop.m.KeyAction.DOWN, key]); keyArray2.push([desktop.m.KeyAction.UP, key]); }
keyArray2.reverse();
for (var i = 0; i < keyArray2.length; i++) { keyArray.push(keyArray2[i]); }
desktop.m.SendKeyMsgKC(keyArray);
}
}
@ -7543,7 +7574,7 @@
// New unicode typing
desktop.m.SendStringUnicode(txt);
} else {
// Old scan code typing. Remove this when non-Windows platforms support Unicode.
// Old scan code typing. This is for non-unicode system.
for (var i in txt) {
var a = txt.charCodeAt(i), b = ltxt.charCodeAt(i);
if (((a >= 65) && (a <= 90)) || ((a >= 97) && (a <= 122))) {