Hi, Don't know if this interests anyone but I've just added a menu option (called "Start Menu") to the windows client to send Ctrl-Esc to server and bring up the start menu (on Windows). I've also added a button to the java version to do the same.
Here are some patches for vncviewer v3.3.6 and java viewer v3.3.3r3: diff -Naur vnc-3.3.6-winsrc/vncviewer/ClientConnection.cpp vnc-3.3.6-winsrc-startmenu/vncviewer/ClientConnection.cpp --- vnc-3.3.6-winsrc/vncviewer/ClientConnection.cpp 2002-11-04 16:26:14.000000000 +0100 +++ vnc-3.3.6-winsrc-startmenu/vncviewer/ClientConnection.cpp 2002-12-10 10:29:08.000000000 +0100 @@ -311,7 +311,8 @@ AppendMenu(hsysmenu, MF_SEPARATOR, NULL, NULL); AppendMenu(hsysmenu, MF_STRING, ID_FULLSCREEN, _T("&Full screen")); AppendMenu(hsysmenu, MF_SEPARATOR, NULL, NULL); - AppendMenu(hsysmenu, MF_STRING, ID_CONN_CTLALTDEL, _T("Send Ctl-Alt-Del")); + AppendMenu(hsysmenu, MF_STRING, ID_CONN_CTLALTDEL, _T("Send Ctl-Alt-Del")); + AppendMenu(hsysmenu, MF_STRING, ID_CONN_CTLESC, _T("Start Menu")); AppendMenu(hsysmenu, MF_STRING, ID_CONN_CTLDOWN, _T("Ctrl Down")); AppendMenu(hsysmenu, MF_STRING, ID_CONN_CTLUP, _T("Ctrl Up")); AppendMenu(hsysmenu, MF_STRING, ID_CONN_ALTDOWN, _T("Alt Down")); @@ -1268,6 +1269,13 @@ _this->SendFullFramebufferUpdateRequest(); return 0; + case ID_CONN_CTLESC: + _this->SendKeyEvent(XK_Control_L, true); + _this->SendKeyEvent(XK_Escape, true); + _this->SendKeyEvent(XK_Escape, false); + _this->SendKeyEvent(XK_Control_L,true); + return 0; + case ID_CONN_CTLALTDEL: _this->SendKeyEvent(XK_Control_L, true); _this->SendKeyEvent(XK_Alt_L, true); diff -Naur vnc-3.3.6-winsrc/vncviewer/res/resource.h vnc-3.3.6-winsrc-startmenu/vncviewer/res/resource.h --- vnc-3.3.6-winsrc/vncviewer/res/resource.h 2002-08-30 17:01:54.000000000 +0100 +++ vnc-3.3.6-winsrc-startmenu/vncviewer/res/resource.h 2002-12-10 10:28:58.000000000 +0100 @@ -25,6 +25,7 @@ #define IDT_EMULATE3BUTTONSTIMER 152 #define ID_CONN_SAVE_AS 153 #define IDC_NOCURSOR 153 +#define ID_CONN_CTLESC 154 #define IDC_HOSTNAME_EDIT 1000 #define IDC_SHARED 1000 #define IDC_DPYNUM_EDIT 1001 @@ -63,6 +64,6 @@ #define _APS_NEXT_RESOURCE_VALUE 154 #define _APS_NEXT_COMMAND_VALUE 40010 #define _APS_NEXT_CONTROL_VALUE 1035 -#define _APS_NEXT_SYMED_VALUE 154 +#define _APS_NEXT_SYMED_VALUE 155 #endif #endif diff -Naur vnc_javasrc/rfbProto.java vnc_javasrc-startmenu/rfbProto.java --- vnc_javasrc/rfbProto.java 2000-10-26 14:53:24.000000000 +0100 +++ vnc_javasrc-startmenu/rfbProto.java 2002-12-10 17:03:32.000000000 +0100 @@ -522,7 +522,7 @@ // if (key < 32) { - if ((evt.modifiers & Event.CTRL_MASK) != 0) { + if ((evt.modifiers & Event.CTRL_MASK) != 0 && key != 27) { key += 96; if (key == 127) // CTRL-_ key = 95; diff -Naur old_vnc_javasrc/vncviewer.java vnc_javasrc/vncviewer.java --- vnc_javasrc/vncviewer.java 2000-10-26 14:48:52.000000000 +0100 +++ vnc_javasrc-startmenu/vncviewer.java 2002-12-10 17:05:58.000000000 +0100 @@ -60,6 +60,7 @@ Button optionsButton; Button clipboardButton; Button ctrlAltDelButton; + Button startButton; optionsFrame options; clipboardFrame clipboard; authenticationPanel authenticator; @@ -106,6 +107,9 @@ ctrlAltDelButton = new Button("Send Ctrl-Alt-Del"); ctrlAltDelButton.disable(); buttonPanel.add(ctrlAltDelButton); + startButton = new Button("Start Menu"); + startButton.disable(); + buttonPanel.add(startButton); GridBagConstraints gbc = new GridBagConstraints(); gbc.gridwidth = GridBagConstraints.REMAINDER; @@ -134,6 +138,7 @@ disconnectButton.enable(); clipboardButton.enable(); ctrlAltDelButton.enable(); + startButton.enable(); vc.processNormalProtocol(); @@ -352,7 +357,24 @@ } catch (Exception e) { e.printStackTrace(); } + } else if (evt.target == startButton) { + + try { + Event startEvent = new Event(null, 0, null); + + startEvent.key = 27; // Esc + startEvent.modifiers = Event.CTRL_MASK; + + startEvent.id = Event.KEY_PRESS; + rfb.writeKeyEvent(startEvent); + + startEvent.id = Event.KEY_RELEASE; + rfb.writeKeyEvent(startEvent); + } catch (Exception e) { + e.printStackTrace(); + } } + return false; } _____________________________________________________________________ This message has been checked for all known viruses by the MessageLabs Virus Scanning Service _______________________________________________ VNC-List mailing list [EMAIL PROTECTED] http://www.realvnc.com/mailman/listinfo/vnc-list