There are quite a few things you can do to reduce your code for instance:
js code:
function OnEvent_MenuClicked(sMenuId, nLocation, iOriginWnd) {
MsgPlus.CreateWnd("Windows.xml", "Wnd"+sMenuId, 0);
}
In WndShortcuts instead of calling the ok button BtnOk you can call it BtnCancel and Plus! will internally close the window. You don't seem to do anything in regards to saving (because it is non configurable). Same with WndAbout.
You will run into an issue with Unregistering the hotkeys if you restart the script. Store the last used window handle somewhere outside of the script (registry maybe) and then read it from there when you are unregistering the hotkeys.
(Also escaping the " character is only needed if you are defining the string with "". Ex: var s = "this is my \"dog\""; or var s = 'I\'m from Canada.'
js code:
function OnGetScriptMenu(nLocation) {
return '<ScriptMenu>'+
'<MenuEntry Id="Shortcuts">QuickKey shortcuts</MenuEntry>'+
'<Separator/>'+
'<MenuEntry Id="About">About QuickKey...</MenuEntry>'+
'</ScriptMenu>';
}
Other than that so far so good.