All new mesh agents for all platforms..
Ylian Saint-Hilaire committed
Jan 7, 2021 at 14:28 UTC
c1aa77c5ddac326d6217432e3bf99489f9367e8d
31 files changed
+310
-205
agents/MeshCmd-signed.exe
Binary files a/agents/MeshCmd-signed.exe and b/agents/MeshCmd-signed.exe differ
agents/MeshCmd64-signed.exe
Binary files a/agents/MeshCmd64-signed.exe and b/agents/MeshCmd64-signed.exe differ
agents/MeshService-signed.exe
Binary files a/agents/MeshService-signed.exe and b/agents/MeshService-signed.exe differ
agents/MeshService.exe
Binary files a/agents/MeshService.exe and b/agents/MeshService.exe differ
agents/MeshService64-signed.exe
Binary files a/agents/MeshService64-signed.exe and b/agents/MeshService64-signed.exe differ
agents/MeshService64.exe
Binary files a/agents/MeshService64.exe and b/agents/MeshService64.exe differ
agents/hashagents.js
+1
@@ -20,6 +20,7 @@ var agents = {
20
'meshagent_mips24kc': 28,
21
'meshagent_osx-arm-64': 29,
22
'meshagent_freebsd_x86-64': 30,
23
+ 'meshagent_mipsel24kc': 40,
24
'meshagent_osx-universal-64': 10005
25
}
26
agents/hashagents.txt
+22
-20
@@ -1,41 +1,43 @@
1
3: MeshService-signed.exe
2
-C5A3A0E72CB84A63D143AB1EBD252806C744F7FEF836C046D2248DABC620C011A8A17F6C206A7D05B590C29BD6CB13FB
2
+D04F8B16986ADB1BFF47BDDD59F46340383D11CD41D6469BB00389CF13D0D83F9B4D888A3ED3786D64B6ADC02A0C0F8B
3
4: MeshService64-signed.exe
4
-B81478F62DEA3689060CC8CAB88472700D2EFFE9CE746FBA0DA4C8B0463B313C0E93E8E9915533917EA2FA975A43EF80
4
+5BB4C3A33DDA9969DCB09D49CCC03BDADADF0AE92C2C6B4CDEDC15ADDEF3E7610692AA9A9D035D5394FF366E01583143
5
5: meshagent_x86
6
-A7380290EB6FADE9959F7350B3968CC9E30E651C521FD7E0B70A57E1FE6BB62B35F56A31F2753D374D4A2F9FF0384A88
6
+2BA71A13889CB8122F692C08F7E584105AC1F06F35B76626250193A802E38758C64631D8D21E368E1DD4C7979BCD2737
7
6: meshagent_x86-64
8
-C257887C2B841C1FB11DDE43D7B1613221E5B8587AF18017B209D53179385F13E1E033E39CADF2468FAB215D9AC0BBD6
8
+C0976857CF0DD1CF3C351BBC3600B01F44C37320E55C560B80FFE4C210DAB3F3679D00B783F9D71220AE8B4EB8CC2C3D
9
9: meshagent_arm
10
-C32755B0D81ABC75E0280DFE9B8DB1BB0BB5BAA427D3B56DBAE3F1C82EDCD47F8D41D976B868B45DE44F8C17E9F3DF8E
10
+D9712B3887D0CFC42AB34AA5F20CFF6DEA365763D15AB9AB96944A4C4D79397A6739B2655FE7A43D9E682365AEA1D04C
11
7: meshagent_mips
12
-0507248CDB453A4A39118FBDBDD97DFDD0D352FEABB921B41805B7FB9625944C1D5CE8052DEB3D85D62595BF38C7285D
12
+B1BBA76A882A94DDBA7495C47E12D08084E8DF4FBDC42B845D3EDA8251619E09C2711A86938709F7632A74CEBCB2E0BD
13
13: meshagent_pogo
14
-813FA30DC7E621847E86FA0D46CE93F26C437434DDDC9D4310C3DAD753522DBA5093F9B30614C10DFC85CC0C8E47C147
14
+3446406EBC932C86FDBE1E1CE4054C69CFB0205BAA628637A6FF9EC0D7FD9F5D4E367DDC7176BD6C8BBB403C56B2F417
15
15: meshagent_poky
16
-9A00421800BA4D1BC33BCB92F75CFBB4F89ADBEB226B3511231D6A43193AF725BD9671A0B575EA31E62E80BE97C31BDF
16
+BFAB371D470FEDD71F596A70C1644F1B9C26A63C02CB7C9FEEBD6DE7BE8E4DD3626E82584DE9AE6A0C5C16B87C0F8AC2
17
16: meshagent_osx-x86-64
18
-2C38C6485EFAF676939115D95DCA6A2940869877AEE94141205AC3B0B4BB0A2824E243E36364B57FA1F382A637008C47
18
+7557D0B215D3515A42A34E785B6E2FED7B6DA080C95110D9E2C39AC5E51B3CC7ECDBDB6C35D74976F2035EBCF3C243D4
19
18: meshagent_poky64
20
-A88917ACF1D8F10C8010D4D559D05AAD80E2734028DF62519ADAC6D698CF9876979E4B8C18E90136EA702583077A84C5
20
+BDFEDE77C241042383D321019999D8BAFC2CAE9F3EC7F624FE010BC4143D22A1247011184E303AA66F3AD5E26ABCAA1A
21
19: meshagent_x86_nokvm
22
-E15237BA64E133A7FC195715B1AFC83E0E78D1989D41AF2A078A32C33F4649CD3028C98E4B96EE331C9375ECE83BB0DF
22
+325002F2672CB7E6796149519D1C57CEABF20590CC0AD1E216C68829F3A0233184E45E4E86ED6377BB1F2BB0FB3421AF
23
20: meshagent_x86-64_nokvm
24
-0636C2229A637ED1E7052C4F4D51911AA268F409C896FFF3132C7E579D80619DE2761EEA7312AA61402929201BEFD4DE
24
+0E3B0B1B4B20AF17FC2ED6F533704C870C5F5E7BFAE05AF4DBA300CBF9F314857858FC5C8CC4B5239EEF5161D0CCE370
25
24: meshagent_arm-linaro
26
-8FACABD8642C81B6384B3FBCA13229ABEF9E437C99573AB02772AD99BD7AAEDBB890FECB2701E795A80A4CDE270E11E1
26
+7DAB24A6E91C7C487917DB0AEFC64355741831F44A8BB03ADDE894AC5245AFE1CB579622D4AB91C6D54EC0F277F316B1
27
25: meshagent_armhf
28
-A6379984018A32037918FEF6E2A98EA74F19084C360AB86A75AF961F190B55145C1990D8928710A52A60C3838D44E4DE
28
+B7EF3319345E087B30A659217045AB1113700E699D2DF323B21CC2686EEA40CC026F4D5360FDAEDE83A729E24ACD0356
29
26: meshagent_arm64
30
-30DD71FCAF2AFA658D17ADCCEFDF3CC49710FA0B924F913AB3404FF52EC30C0DD0FD04EB7B44DF5F7A7B12B0E9210857
30
+4D6DC7639CC08125826CE1533C1521AE2851DDA9A86AEC5BA49A119EB83EBBE97FE84BF47339319487B8284CA94ADC6B
31
27: meshagent_armhf2
32
-705ECB4FAECE84532D7342F9967558C3D2453498253ED6D88BACCEA63840DE0561BA8EEB024D3F17CBA45B66BB6FF592
32
+C5DE4DEFE076565AEE46C3E18AE8230E99BB48B80408FC258391984F4FCFFC0B4FA4A021A1E6F257E3FFBF6A3CD5E1AA
33
28: meshagent_mips24kc
34
-E1BC0CEF35D1632E8E05DC200C1B8E6C8C8DB46528CCB7DDE90BFF13AA31FBB7082D7E9AF0E9BE133948FFE543EC319B
34
+B5F6381B6E1B27B96B6E2DD4311A1B9F72ADE517E91E8C4F90BD96AA0DAAFF683F6F0D3D7C85C064FD7537040CF7A155
35
29: meshagent_osx-arm-64
36
-FCB0289AC41FADA104A3384CF0C1F1E4ACDCD1FA2C159184E188B0C0AC08AACF60D68259B158F0B8531569B34B015421
36
+E0AD07AF070BDD0C06B8A7C0066748AF98A5FE4456166460783C66F37B30492E1FE3C9E3F8F23937C8088D17E760E4A8
37
30: meshagent_freebsd_x86-64
38
-5415F85F6CCE836FD22D3D5B5C5EC01EED4049FCA0B1594D9EFD4B3376FB8EA7AB58DF8DF38BFA1F27489772751BEF60
38
+8F101BD69F85A6F55517113B9BAC860ECF45FA002B141095023C258A677C057BB9A3E9EEF45CBAA69CCDC8F92AF41BBD
39
+40: meshagent_mipsel24kc
40
+F8E9A1FC4554A94E02B73B9E726C5467E73A41B899EDAD469606B2B0879FF4F200CDD7BAD45A4BE979EF8B8CF706843D
41
10005: meshagent_osx-universal-64
40
-E96593397A9E2ACA86C6CB71C0C352F80F8918AFB593C147F64EF4E9DDF105C9780D66459DA21D8C761C9D55B4D52D4E
42
+551B21C162F8C60575C741B45C6C068B6AD7A53299C521D1D61F7239EC2A6EAE917ED948FD5F0EBB5D19ECB40602C227
43
agents/meshagent_arm
Binary files a/agents/meshagent_arm and b/agents/meshagent_arm differ
agents/meshagent_arm-linaro
Binary files a/agents/meshagent_arm-linaro and b/agents/meshagent_arm-linaro differ
agents/meshagent_arm64
Binary files a/agents/meshagent_arm64 and b/agents/meshagent_arm64 differ
agents/meshagent_armhf
Binary files a/agents/meshagent_armhf and b/agents/meshagent_armhf differ
agents/meshagent_armhf2
Binary files a/agents/meshagent_armhf2 and b/agents/meshagent_armhf2 differ
agents/meshagent_freebsd_x86-64
Binary files a/agents/meshagent_freebsd_x86-64 and b/agents/meshagent_freebsd_x86-64 differ
agents/meshagent_mips
Binary files a/agents/meshagent_mips and b/agents/meshagent_mips differ
agents/meshagent_mips24kc
Binary files a/agents/meshagent_mips24kc and b/agents/meshagent_mips24kc differ
agents/meshagent_mipsel24kc
Binary files /dev/null and b/agents/meshagent_mipsel24kc differ
agents/meshagent_osx-arm-64
Binary files a/agents/meshagent_osx-arm-64 and b/agents/meshagent_osx-arm-64 differ
agents/meshagent_osx-universal-64
Binary files a/agents/meshagent_osx-universal-64 and b/agents/meshagent_osx-universal-64 differ
agents/meshagent_osx-x86-64
Binary files a/agents/meshagent_osx-x86-64 and b/agents/meshagent_osx-x86-64 differ
agents/meshagent_pogo
Binary files a/agents/meshagent_pogo and b/agents/meshagent_pogo differ
agents/meshagent_poky
Binary files a/agents/meshagent_poky and b/agents/meshagent_poky differ
agents/meshagent_poky64
Binary files a/agents/meshagent_poky64 and b/agents/meshagent_poky64 differ
agents/meshagent_x86
Binary files a/agents/meshagent_x86 and b/agents/meshagent_x86 differ
agents/meshagent_x86-64
Binary files a/agents/meshagent_x86-64 and b/agents/meshagent_x86-64 differ
agents/meshagent_x86-64_nokvm
Binary files a/agents/meshagent_x86-64_nokvm and b/agents/meshagent_x86-64_nokvm differ
agents/meshagent_x86_nokvm
Binary files a/agents/meshagent_x86_nokvm and b/agents/meshagent_x86_nokvm differ
meshcentral.js
+1
@@ -2339,6 +2339,7 @@ function CreateMeshCentralServer(config, args) {
2339
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
2340
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
2341
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
2342
+ 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
2343
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
2344
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
2345
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
translate/translate.json
+80
-2
@@ -856,6 +856,84 @@
856
"player.handlebars->p11->deskarea0->deskarea4->1->timespan"
857
]
858
},
859
+ {
860
+ "en": "0x020009",
861
+ "xloc": [
862
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
863
+ ]
864
+ },
865
+ {
866
+ "en": "0x020073",
867
+ "xloc": [
868
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
869
+ ]
870
+ },
871
+ {
872
+ "en": "0x080057",
873
+ "xloc": [
874
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
875
+ ]
876
+ },
877
+ {
878
+ "en": "0x0A0053",
879
+ "xloc": [
880
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
881
+ ]
882
+ },
883
+ {
884
+ "en": "0x100000",
885
+ "xloc": [
886
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
887
+ ]
888
+ },
889
+ {
890
+ "en": "0x100025",
891
+ "xloc": [
892
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
893
+ ]
894
+ },
895
+ {
896
+ "en": "0x100026",
897
+ "xloc": [
898
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
899
+ ]
900
+ },
901
+ {
902
+ "en": "0x100027",
903
+ "xloc": [
904
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
905
+ ]
906
+ },
907
+ {
908
+ "en": "0x100028",
909
+ "xloc": [
910
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
911
+ ]
912
+ },
913
+ {
914
+ "en": "0x10004C",
915
+ "xloc": [
916
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
917
+ ]
918
+ },
919
+ {
920
+ "en": "0x10004D",
921
+ "xloc": [
922
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
923
+ ]
924
+ },
925
+ {
926
+ "en": "0x100052",
927
+ "xloc": [
928
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
929
+ ]
930
+ },
931
+ {
932
+ "en": "0x11004D",
933
+ "xloc": [
934
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys"
935
+ ]
936
+ },
937
{
938
"cs": "1 aktivní relace",
939
"de": "1 aktive Sitzung",
@@ -19010,7 +19088,7 @@
19088
"zh-cht": "輸入",
19089
"xloc": [
19090
"default-mobile.handlebars->container->page_content->column_l->p10->p10desktop->deskarea4->1->3->11->DeskControlSpan",
19013
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->11->DeskControlSpan",
19091
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->13->DeskControlSpan",
19092
"desktop.handlebars->p11->deskarea0->deskarea4->3->9->DeskControlSpan"
19093
]
19094
},
@@ -38929,7 +39007,7 @@
39007
"zh-chs": "切换鼠标和键盘输入",
39008
"zh-cht": "切換鼠標和鍵盤輸入",
39009
"xloc": [
38932
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->11",
39010
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->13",
39011
"desktop.handlebars->p11->deskarea0->deskarea4->3->9"
39012
]
39013
},
views/default-mobile.handlebars
+94
-102
@@ -684,22 +684,21 @@
684
<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)" />
685
</div>
686
<div id="deskButtonMenu" style="display:none;position:absolute;top:10px;left:10px;right:55px;bottom:10px;z-index:1000">
687
- <div class="menuButton" onclick="deskMenuButton(5)">Win</div>
688
- <div class="menuButton" onclick="deskMenuButton(10)">Ctrl-Alt-Del</div>
689
- <div class="menuButton" onclick="deskMenuButton(13)">ESC</div>
690
- <div class="menuButton" onclick="deskMenuButton(0)">WIN + Down</div>
691
- <div class="menuButton" onclick="deskMenuButton(1)">WIN + Up</div>
692
- <div class="menuButton" onclick="deskMenuButton(2)">WIN + L</div>
693
- <div class="menuButton" onclick="deskMenuButton(3)">WIN + M</div>
694
- <div class="menuButton" onclick="deskMenuButton(4)">Shift + WIN + M</div>
695
- <div class="menuButton" onclick="deskMenuButton(6)">WIN + R</div>
696
- <div class="menuButton" onclick="deskMenuButton(7)">ALT + F4</div>
697
- <div class="menuButton" onclick="deskMenuButton(8)">CTRL + W</div>
698
- <div class="menuButton" onclick="deskMenuButton(9)">ALT + TAB</div>
699
- <div class="menuButton" onclick="deskMenuButton(11)">TAB</div>
700
- <div class="menuButton" onclick="deskMenuButton(12)">Shift + F10</div>
687
+ <div class="menuButton" onclick="deskMenuButton(0x100000)">Win</div>
688
+ <div class="menuButton" onclick="deskMenuButton(0x0A0053)">Ctrl-Alt-Del</div>
689
+ <div class="menuButton" onclick="deskMenuButton(0x00001B)">ESC</div>
690
+ <div class="menuButton" onclick="deskMenuButton(0x100028)">WIN + Down</div>
691
+ <div class="menuButton" onclick="deskMenuButton(0x100026)">WIN + Up</div>
692
+ <div class="menuButton" onclick="deskMenuButton(0x10004C)">WIN + L</div>
693
+ <div class="menuButton" onclick="deskMenuButton(0x10004D)">WIN + M</div>
694
+ <div class="menuButton" onclick="deskMenuButton(0x11004D)">Shift + WIN + M</div>
695
+ <div class="menuButton" onclick="deskMenuButton(0x100052)">WIN + R</div>
696
+ <div class="menuButton" onclick="deskMenuButton(0x020073)">ALT + F4</div>
697
+ <div class="menuButton" onclick="deskMenuButton(0x080057)">CTRL + W</div>
698
+ <div class="menuButton" onclick="deskMenuButton(0x020009)">ALT + TAB</div>
699
+ <div class="menuButton" onclick="deskMenuButton(0x000009)">TAB</div>
700
+ <div class="menuButton" onclick="deskMenuButton(0x010079)">Shift + F10</div>
701
</div>
702
-
702
<div id=p10desktop style="overflow:hidden;position:absolute;top:55px;bottom:0px;width:100%;display:none">
703
<div id=deskarea1 style="position:absolute;top:0px;width:100%;height:32px">
704
<div style="padding-top:2px;padding-bottom:2px;background:#C0C0C0;height:32px">
@@ -3482,94 +3481,87 @@
3481
}
3482
3483
// Remote desktop special key combos for Windows
3485
- function deskSendKeys(key) {
3484
+ function deskSendKeys(xkey) {
3485
if (xxdialogMode || desktop == null || desktop.State != 3) return;
3487
- var ks = key ? key : Q('deskkeys').value;
3488
- if (ks == 0) { // WIN + Down arrow
3489
- if (desktop.contype == 2) {
3490
- 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
3491
- } else {
3492
- 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
3493
- }
3494
- } else if (ks == 1) { // WIN + Up arrow
3495
- if (desktop.contype == 2) {
3496
- 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
3497
- } else {
3498
- 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
3499
- }
3500
- } else if (ks == 2) { // WIN + L
3501
- if (desktop.contype == 2) {
3502
- desktop.m.sendkey([[0xffe7, 1], [0x6c, 1], [0x6c, 0], [0xffe7, 0]]); // Intel AMT: Meta-left down, 'l' press, 'l' release, Meta-left release
3503
- } else {
3504
- desktop.sendCtrlMsg('{"action":"lock"}');
3505
- //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
3506
- //desktop.m.SendKeyMsgKC(desktop.m.KeyAction.EXDOWN, 0x5B);
3507
- //desktop.m.SendKeyMsgKC(desktop.m.KeyAction.DOWN, 76);
3508
- //desktop.m.SendKeyMsgKC(desktop.m.KeyAction.UP, 76);
3509
- //desktop.m.SendKeyMsgKC(desktop.m.KeyAction.EXUP, 0x5B);
3510
- }
3511
- } else if (ks == 3) { // WIN + M
3512
- if (desktop.contype == 2) {
3513
- desktop.m.sendkey([[0xffe7, 1], [0x6d, 1], [0x6d, 0], [0xffe7, 0]]); // Intel AMT: Meta-left down, 'm' press, 'm' release, Meta-left release
3514
- } else {
3515
- 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
3516
- }
3517
- } else if (ks == 4) { // Shift + WIN + M
3518
- if (desktop.contype == 2) {
3519
- 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
3520
- } else {
3521
- 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
3522
- }
3523
- } else if (ks == 5) { // WIN
3524
- if (desktop.contype == 2) {
3525
- desktop.m.sendkey([[0xffe7, 1], [0xffe7, 0]]); // Intel AMT: Meta-left down, Meta-left release
3526
- } else {
3527
- desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN, 0x5B], [desktop.m.KeyAction.EXUP, 0x5B]]); // MeshAgent: L-Winkey press, L-Winkey release
3528
- }
3529
- } else if (ks == 6) { // WIN + R
3530
- if (desktop.contype == 2) {
3531
- desktop.m.sendkey([[0xffe7, 1], [0x72, 1], [0x72, 0], [0xffe7, 0]]); // Intel AMT: Meta-left down, 'r' press, 'r' release, Meta-left release
3532
- } else {
3533
- 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
3534
- }
3535
- } else if (ks == 7) { // ALT-F4
3536
- if (desktop.contype == 2) {
3537
- desktop.m.sendkey([[0xffe9, 1], [0xffc1, 1], [0xffc1, 0], [0xffe9, 0]]); // Intel AMT: Alt down, 'F4' press, 'F4' release, Alt release
3538
- } else {
3539
- 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
3540
- }
3541
- } else if (ks == 8) { // CTRL-W
3542
- if (desktop.contype == 2) {
3543
- desktop.m.sendkey([[0xffe3, 1], [0x77, 1], [0x77, 0], [0xffe3, 0]]); // Intel AMT: Ctrl down, 'w' press, 'w' release, Ctrl release
3544
- } else {
3545
- 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
3546
- }
3547
- } else if (ks == 9) { // ALT-TAB
3548
- if (desktop.contype == 2) {
3549
- desktop.m.sendkey([[0xffe9, 1], [0xff09, 1], [0xff09, 0], [0xffe9, 0]]); // Intel AMT: Alt down, 'TAB' press, 'TAB' release, Alt release
3550
- } else {
3551
- 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
3552
- }
3553
- } else if (ks == 10) { // CTRL-ALT-DEL
3554
- desktop.m.sendcad();
3555
- } else if (ks == 11) { // TAB
3556
- if (desktop.contype == 2) {
3557
- desktop.m.sendkey([[0xff09, 1], [0xff09, 0]]); // Intel AMT: 'TAB' press, 'TAB' release
3558
- } else {
3559
- desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.DOWN, 9], [desktop.m.KeyAction.UP, 9]]); // MeshAgent: 'TAB' press, 'TAB' release
3560
- }
3561
- } else if (ks == 12) { // Shift-F10
3562
- if (desktop.contype == 2) {
3563
- desktop.m.sendkey([[0xffe1, 1], [0xffc7, 1], [0xffc7, 0], [0xffe1, 0]]); // Intel AMT: Left-Shift Down, F10 down, F10 up, Left-Shift Up
3564
- } else {
3565
- 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
3566
- }
3567
- } else if (ks == 13) { // ESC
3568
- if (desktop.contype == 2) {
3569
- desktop.m.sendkey([[27, 1], [27, 0]]); // Intel AMT: ESC press, ESC release
3570
- } else {
3571
- desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.DOWN, 27], [desktop.m.KeyAction.UP, 27]]); // MeshAgent: ESC press, ESC release
3572
- }
3486
+
3487
+ // Construct the key command
3488
+ var ks = xkey ? xkey : parseInt(Q('deskkeys').value);
3489
+ if (ks == 0x0A0053) { desktop.m.sendcad(); return; } // CTRL-ALT-DEL
3490
+ if ((desktop.contype == 1) && (ks == 0x100052)) { desktop.sendCtrlMsg('{"action":"lock"}'); return; } // Lock desktop
3491
+
3492
+ var flags = (ks & 0xFF0000) >> 16, key = (ks & 0xFFFF), keyArray = [], keyArray2 = [];
3493
+ var amtTranslate = {
3494
+ 8: 0xff08, // BackSpace
3495
+ 9: 0xff09, // Tab
3496
+ 13: 0xff0d, // Return or Enter
3497
+ 27: 0xff1b, // Escape
3498
+ 45: 0xff63, // Insert
3499
+ 46: 0xffff, // Delete
3500
+ 36: 0xff50, // Home
3501
+ 35: 0xff57, // End
3502
+ 33: 0xff55, // Page Up
3503
+ 34: 0xff56, // Page Down
3504
+ 37: 0xff51, // Left arrow
3505
+ 38: 0xff52, // Up arrow
3506
+ 39: 0xff53, // Right arrow
3507
+ 40: 0xff54, // Down arrow
3508
+ 112: 0xffbe, // F1
3509
+ 113: 0xffbf, // F2
3510
+ 114: 0xffc0, // F3
3511
+ 115: 0xffc1, // F4
3512
+ 116: 0xffc2, // F5
3513
+ 117: 0xffc3, // F6
3514
+ 118: 0xffc4, // F7
3515
+ 119: 0xffc5, // F8
3516
+ 120: 0xffc6, // F9
3517
+ 121: 0xffc7, // F10
3518
+ 122: 0xffc8, // F11
3519
+ 123: 0xffc9 // F12
3520
+ }
3521
+
3522
+ // 0x010000 = Shift
3523
+ // 0x020000 = Left-Alt
3524
+ // 0x080000 = Ctrl
3525
+ // 0x100000 = Window
3526
+
3527
+ // Examples:
3528
+ // WIN+DOWN = 0x100028
3529
+ // WIN+UP = 0x100026
3530
+ // WIN+L = 0x10004C
3531
+ // WIN+M = 0x10004D
3532
+ // Shift+WIN+M = 0x11004D
3533
+ // WIN = 0x100000
3534
+ // WIN+R = 0x100052
3535
+ // ALT+F4 = 0x020073
3536
+ // CTRL+W = 0x080057
3537
+ // ALT+TAB = 0x020009
3538
+ // CTRL-ALT-DEL = 0x0A0053
3539
+ // WIN-LEFT = 0x100025
3540
+ // WIN-RIGHT = 0x100027
3541
+ // SHIFT+F10 = 0x010079
3542
+
3543
+ if (desktop.contype == 2) {
3544
+ // Intel AMT
3545
+ if (flags & 1) { keyArray.push([0xffe1, 1]); keyArray2.push([0xffe1, 0]); } // Shift
3546
+ if (flags & 2) { keyArray.push([0xffe9, 1]); keyArray2.push([0xffe9, 0]); } // Left-alt
3547
+ if (flags & 8) { keyArray.push([0xffe3, 1]); keyArray2.push([0xffe3, 0]); } // Ctrl
3548
+ if (flags & 16) { keyArray.push([0xffe7, 1]); keyArray2.push([0xffe7, 0]); } // Windows key
3549
+ if (amtTranslate[key]) { key = amtTranslate[key]; }
3550
+ if ((key >= 65) && (key <= 90)) { key += 32; }
3551
+ if (key != 0) { keyArray.push([key, 1]); keyArray2.push([key, 0]); }
3552
+ keyArray2.reverse();
3553
+ for (var i = 0; i < keyArray2.length; i++) { keyArray.push(keyArray2[i]); }
3554
+ desktop.m.sendkey(keyArray);
3555
+ } else {
3556
+ // Agent desktop
3557
+ if (flags & 1) { keyArray.push([desktop.m.KeyAction.DOWN, 16]); keyArray2.push([desktop.m.KeyAction.UP, 16]); } // Shift
3558
+ if (flags & 2) { keyArray.push([desktop.m.KeyAction.EXDOWN, 18]); keyArray2.push([desktop.m.KeyAction.EXUP, 18]); } // Left-alt
3559
+ if (flags & 8) { keyArray.push([desktop.m.KeyAction.EXDOWN, 17]); keyArray2.push([desktop.m.KeyAction.EXUP, 17]); } // Ctrl
3560
+ if (flags & 16) { keyArray.push([desktop.m.KeyAction.EXDOWN, 0x5B]); keyArray2.push([desktop.m.KeyAction.EXUP, 0x5B]); } // Windows key
3561
+ if (key != 0) { keyArray.push([desktop.m.KeyAction.DOWN, key]); keyArray2.push([desktop.m.KeyAction.UP, key]); }
3562
+ keyArray2.reverse();
3563
+ for (var i = 0; i < keyArray2.length; i++) { keyArray.push(keyArray2[i]); }
3564
+ desktop.m.SendKeyMsgKC(keyArray);
3565
}
3566
}
3567
views/default.handlebars
+112
-81
@@ -627,6 +627,7 @@
627
<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>
628
</div>
629
<div>
630
+ <!--
631
<select id="deskkeys">
632
<option value=10>Ctrl+Alt+Del</option>
633
<option value=5>Win</option>
@@ -642,6 +643,37 @@
643
<option value=11>Win+Left</option>
644
<option value=12>Win+Right</option>
645
</select>
646
+
647
+ // WIN+DOWN = 0x100028
648
+ // WIN+UP = 0x100026
649
+ // WIN+L = 0x10004C
650
+ // WIN+M = 0x10004D
651
+ // Shift+WIN+M = 0x11004D
652
+ // WIN = 0x100000
653
+ // WIN+R = 0x100052
654
+ // ALT+F4 = 0x020073
655
+ // CTRL+W = 0x080057
656
+ // ALT+TAB = 0x020009
657
+ // CTRL-ALT-DEL = 0x0A0053
658
+ // WIN-LEFT = 0x100025
659
+ // WIN-RIGHT = 0x100027
660
+
661
+ -->
662
+ <select id="deskkeys">
663
+ <option value=0x0A0053>Ctrl+Alt+Del</option>
664
+ <option value=0x100000>Win</option>
665
+ <option value=0x100028>Win+Down</option>
666
+ <option value=0x100026>Win+Up</option>
667
+ <option value=0x10004C>Win+L</option>
668
+ <option value=0x10004D>Win+M</option>
669
+ <option value=0x11004D>Shift+Win+M</option>
670
+ <option value=0x100052>Win+R</option>
671
+ <option value=0x020073>Alt-F4</option>
672
+ <option value=0x080057>Ctrl-W</option>
673
+ <option value=0x020009>Alt-Tab</option>
674
+ <option value=0x100025>Win+Left</option>
675
+ <option value=0x100027>Win+Right</option>
676
+ </select>
677
<input id="DeskWD" type=button value="Send" onkeypress="return false" onkeydown="return false" onclick="deskSendKeys()" />
678
<input id="DeskESC" style="display:none" type="button" value="ESC" onkeypress="return false" onkeydown="return false" onclick="sendDeskEsc()" />
679
<input id="DeskClip" style="" type="button" value="Clipboard" onkeypress="return false" onkeydown="return false" onclick="showDeskClip()" />
@@ -7429,86 +7461,85 @@
7461
function deskSendKeys() {
7462
Q('DeskWD').blur();
7463
if (xxdialogMode || desktop == null || desktop.State != 3) return;
7432
- var ks = Q('deskkeys').value;
7433
- if (ks == 0) { // WIN+Down arrow
7434
- if (desktop.contype == 2) {
7435
- 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
7436
- } else {
7437
- 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
7438
- }
7439
- } else if (ks == 1) { // WIN+Up arrow
7440
- if (desktop.contype == 2) {
7441
- 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
7442
- } else {
7443
- 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
7444
- }
7445
- } else if (ks == 2) { // WIN+L arrow
7446
- if (desktop.contype == 2) {
7447
- desktop.m.sendkey([[0xffe7,1],[0x6c,1],[0x6c,0],[0xffe7,0]]); // Intel AMT: Meta-left down, 'l' press, 'l' release, Meta-left release
7448
- } else {
7449
- desktop.sendCtrlMsg('{"action":"lock"}');
7450
- //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
7451
- //desktop.m.SendKeyMsgKC(desktop.m.KeyAction.EXDOWN, 0x5B);
7452
- //desktop.m.SendKeyMsgKC(desktop.m.KeyAction.DOWN, 76);
7453
- //desktop.m.SendKeyMsgKC(desktop.m.KeyAction.UP, 76);
7454
- //desktop.m.SendKeyMsgKC(desktop.m.KeyAction.EXUP, 0x5B);
7455
- }
7456
- } else if (ks == 3) { // WIN+M arrow
7457
- if (desktop.contype == 2) {
7458
- desktop.m.sendkey([[0xffe7,1],[0x6d,1],[0x6d,0],[0xffe7,0]]); // Intel AMT: Meta-left down, 'm' press, 'm' release, Meta-left release
7459
- } else {
7460
- 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
7461
- }
7462
- } else if (ks == 4) { // Shift+WIN+M arrow
7463
- if (desktop.contype == 2) {
7464
- 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
7465
- } else {
7466
- 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
7467
- }
7468
- } else if (ks == 5) { // WIN
7469
- if (desktop.contype == 2) {
7470
- desktop.m.sendkey([[0xffe7,1],[0xffe7,0]]); // Intel AMT: Meta-left down, Meta-left release
7471
- } else {
7472
- desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN,0x5B], [desktop.m.KeyAction.EXUP,0x5B]]); // MeshAgent: L-Winkey press, L-Winkey release
7473
- }
7474
- } else if (ks == 6) { // WIN+R
7475
- if (desktop.contype == 2) {
7476
- desktop.m.sendkey([[0xffe7,1],[0x72,1],[0x72,0],[0xffe7,0]]); // Intel AMT: Meta-left down, 'r' press, 'r' release, Meta-left release
7477
- } else {
7478
- 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
7479
- }
7480
- } else if (ks == 7) { // ALT-F4
7481
- if (desktop.contype == 2) {
7482
- desktop.m.sendkey([[0xffe9,1],[0xffc1,1],[0xffc1,0],[0xffe9,0]]); // Intel AMT: Alt down, 'F4' press, 'F4' release, Alt release
7483
- } else {
7484
- 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
7485
- }
7486
- } else if (ks == 8) { // CTRL-W
7487
- if (desktop.contype == 2) {
7488
- desktop.m.sendkey([[0xffe3,1],[0x77,1],[0x77,0],[0xffe3,0]]); // Intel AMT: Ctrl down, 'w' press, 'w' release, Ctrl release
7489
- } else {
7490
- 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
7491
- }
7492
- } else if (ks == 9) { // ALT-TAB
7493
- if (desktop.contype == 2) {
7494
- desktop.m.sendkey([[0xffe9, 1], [0xff09, 1], [0xff09, 0], [0xffe9, 0]]); // Intel AMT: Alt down, 'TAB' press, 'TAB' release, Alt release
7495
- } else {
7496
- 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
7497
- }
7498
- } else if (ks == 10) { // CTRL-ALT-DEL
7499
- desktop.m.sendcad();
7500
- } else if (ks == 11) { // WIN-LEFT
7501
- if (desktop.contype == 2) {
7502
- 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
7503
- } else {
7504
- desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN, 0x5B], [desktop.m.KeyAction.DOWN, 37], [desktop.m.KeyAction.UP, 37], [desktop.m.KeyAction.EXUP, 0x5B]]);
7505
- }
7506
- } else if (ks == 12) { // WIN-RIGHT
7507
- if (desktop.contype == 2) {
7508
- 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
7509
- } else {
7510
- desktop.m.SendKeyMsgKC([[desktop.m.KeyAction.EXDOWN, 0x5B], [desktop.m.KeyAction.DOWN, 39], [desktop.m.KeyAction.UP, 39], [desktop.m.KeyAction.EXUP, 0x5B]]);
7511
- }
7464
+
7465
+ // Construct the key command
7466
+ var ks = parseInt(Q('deskkeys').value);
7467
+ if (ks == 0x0A0053) { desktop.m.sendcad(); return; } // CTRL-ALT-DEL
7468
+ if ((desktop.contype == 1) && (ks == 0x100052)) { desktop.sendCtrlMsg('{"action":"lock"}'); return; } // Lock desktop
7469
+
7470
+ var flags = (ks & 0xFF0000) >> 16, key = (ks & 0xFFFF), keyArray = [], keyArray2 = [];
7471
+ var amtTranslate = {
7472
+ 8 : 0xff08, // BackSpace
7473
+ 9 : 0xff09, // Tab
7474
+ 13 : 0xff0d, // Return or Enter
7475
+ 27 : 0xff1b, // Escape
7476
+ 45 : 0xff63, // Insert
7477
+ 46 : 0xffff, // Delete
7478
+ 36 : 0xff50, // Home
7479
+ 35 : 0xff57, // End
7480
+ 33 : 0xff55, // Page Up
7481
+ 34 : 0xff56, // Page Down
7482
+ 37 : 0xff51, // Left arrow
7483
+ 38 : 0xff52, // Up arrow
7484
+ 39 : 0xff53, // Right arrow
7485
+ 40 : 0xff54, // Down arrow
7486
+ 112 : 0xffbe, // F1
7487
+ 113 : 0xffbf, // F2
7488
+ 114 : 0xffc0, // F3
7489
+ 115 : 0xffc1, // F4
7490
+ 116 : 0xffc2, // F5
7491
+ 117 : 0xffc3, // F6
7492
+ 118 : 0xffc4, // F7
7493
+ 119 : 0xffc5, // F8
7494
+ 120 : 0xffc6, // F9
7495
+ 121 : 0xffc7, // F10
7496
+ 122 : 0xffc8, // F11
7497
+ 123 : 0xffc9 // F12
7498
+ }
7499
+
7500
+ // 0x010000 = Shift
7501
+ // 0x020000 = Left-Alt
7502
+ // 0x080000 = Ctrl
7503
+ // 0x100000 = Window
7504
+
7505
+ // Examples:
7506
+ // WIN+DOWN = 0x100028
7507
+ // WIN+UP = 0x100026
7508
+ // WIN+L = 0x10004C
7509
+ // WIN+M = 0x10004D
7510
+ // Shift+WIN+M = 0x11004D
7511
+ // WIN = 0x100000
7512
+ // WIN+R = 0x100052
7513
+ // ALT+F4 = 0x020073
7514
+ // CTRL+W = 0x080057
7515
+ // ALT+TAB = 0x020009
7516
+ // CTRL-ALT-DEL = 0x0A0053
7517
+ // WIN-LEFT = 0x100025
7518
+ // WIN-RIGHT = 0x100027
7519
+ // SHIFT+F10 = 0x010079
7520
+
7521
+ if (desktop.contype == 2) {
7522
+ // Intel AMT
7523
+ if (flags & 1) { keyArray.push([0xffe1, 1]); keyArray2.push([0xffe1, 0]); } // Shift
7524
+ if (flags & 2) { keyArray.push([0xffe9, 1]); keyArray2.push([0xffe9, 0]); } // Left-alt
7525
+ if (flags & 8) { keyArray.push([0xffe3, 1]); keyArray2.push([0xffe3, 0]); } // Ctrl
7526
+ if (flags & 16) { keyArray.push([0xffe7, 1]); keyArray2.push([0xffe7, 0]); } // Windows key
7527
+ if (amtTranslate[key]) { key = amtTranslate[key]; }
7528
+ if ((key >= 65) && (key <= 90)) { key += 32; }
7529
+ if (key != 0) { keyArray.push([key, 1]); keyArray2.push([key, 0]); }
7530
+ keyArray2.reverse();
7531
+ for (var i = 0; i < keyArray2.length; i++) { keyArray.push(keyArray2[i]); }
7532
+ desktop.m.sendkey(keyArray);
7533
+ } else {
7534
+ // Agent desktop
7535
+ if (flags & 1) { keyArray.push([desktop.m.KeyAction.DOWN, 16]); keyArray2.push([desktop.m.KeyAction.UP, 16]); } // Shift
7536
+ if (flags & 2) { keyArray.push([desktop.m.KeyAction.EXDOWN, 18]); keyArray2.push([desktop.m.KeyAction.EXUP, 18]); } // Left-alt
7537
+ if (flags & 8) { keyArray.push([desktop.m.KeyAction.EXDOWN, 17]); keyArray2.push([desktop.m.KeyAction.EXUP, 17]); } // Ctrl
7538
+ if (flags & 16) { keyArray.push([desktop.m.KeyAction.EXDOWN, 0x5B]); keyArray2.push([desktop.m.KeyAction.EXUP, 0x5B]); } // Windows key
7539
+ if (key != 0) { keyArray.push([desktop.m.KeyAction.DOWN, key]); keyArray2.push([desktop.m.KeyAction.UP, key]); }
7540
+ keyArray2.reverse();
7541
+ for (var i = 0; i < keyArray2.length; i++) { keyArray.push(keyArray2[i]); }
7542
+ desktop.m.SendKeyMsgKC(keyArray);
7543
}
7544
}
7545
@@ -7543,7 +7574,7 @@
7574
// New unicode typing
7575
desktop.m.SendStringUnicode(txt);
7576
} else {
7546
- // Old scan code typing. Remove this when non-Windows platforms support Unicode.
7577
+ // Old scan code typing. This is for non-unicode system.
7578
for (var i in txt) {
7579
var a = txt.charCodeAt(i), b = ltxt.charCodeAt(i);
7580
if (((a >= 65) && (a <= 90)) || ((a >= 97) && (a <= 122))) {