WPCU gjhTWhTWs4b G8YIygjOݮޜ+StYK1 /Y֮Z{q:*v3kFo49­Ax;S^!p/Sy%2ſZfywRV] JXo eT0N_1 Tح,dϓNP;T4.N(!VotB̠_(\}݄y?bu6Yw4jLBG{}G|C>(;3jAoa(XWHzpvb_Sa$a950Ps{h:|^LP](Tb|j[:L<K# f9ڍЅ yh j1+^Q\ J. w]y͖NT3ck͸A e,A 0#UTr %UFU',U:>x 1u: 72^ w4 0NSb md 0+{NG GG CuIuIEIIIIIIIIIIIIIIIIIIIIIIII 0IIIIIIIIIIIIIIIIIIIIIIIIHKKKKKKKKKKKKKKKKKKKKK BKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK CLLLLLLLLLLLLLLLLLLLLLL C,L CFL C`L`L CzLzL CL CL CL C0L CMM C,M,M,M,M,M,M,M,M,M,M,M,M D5FMFM D5{M{M{M{M{M{M{M{M{M{M{M{M 0MM D5OOO B*P D5+P B*`P D5P B7P B7PPPPPPPPPPPPPPPPPPPPP 0-Q 0rQQQQQQQQQQQQQQQQQQQQQQ D5ARARARARARARARARARARARARARARARARARAR D5vR BRR BRR D5RR BS D17S7S D5hS B*SSSSSSSSSSSSSSS B*SSSSSSSS D5S B&T&T&T 0CTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCT CT(2$TRW6&A4X3' Letter 6&A43' Letter3'LetterT<UKUS.,    zX%XXXX%XXX%  HP LaserJet 5L0.)Z<Century Schoolbook RegularX. Z.Century Schoolbook ,iAZArial "Arial Regular  0lR'UKUS.,  X%XXXX%XXX%  AppBarMsg.wcm@Version1.62004May01rr?=#Page  2  ڀof  10  ڈ  CharlesRossiter@rossiter@tiscali.co.za   A]) xdEA3#37=CIQYag1.a.i.(1)(a)(i)1)a) i)J8[I8:i+00(O$3|x U95[H:\MasterMacros\AppBarMsg.wcm)X***50+1[SVSHOWCHR9[S VSWITCHMSG;[bLEFTPOS<[^TOPPOS=[d DIALOGWIDTH?1oRemember Coffee-Time!VUSERMSGIHoLEXITLOB*@JHoLQUITLOB*@K$CHECKVERSION11@M[VSWITCHNrVSHOWCHRoSpaceBar*O[VSWITCHPQrVSHOWCHRoEnter*zR[VSWITCHSzTrVSWITCH[*UoAlt+HrVSHOWCHRLIB) UPDATEKEYVXo Ctrl+Alt+Hr VSWITCHMSGLIB) SWITCHKEYZHxLIB)VBOLDONHxLIB)VBOLDOFF]H[WACHOICE[LaB*^B_[[[[[[P ACHOICE[`b SETUPAMSG@erVUSERMSG VMSGTOSHOWfHr VMSGTOSHOWLQB )[ -DgHr VMSGTOSHOWLQ[LUB) o... VMSGTOSHOWhDjHo ChooseMsgLQ[2LE[2LE[LE[LE[LI#oChoose MessageLNB'@kHo ChooseMsgLQoArialLN g$@LMB'@lH o ChooseMsgLQ[LQ[ LE[LE[PLE[ LEo &Page X of YLN[[WACHOICE[LRB '@mH o ChooseMsgLQ[LQ[ LE[LE[PLE[ LEo &Word CountLN[[WACHOICE[LRB '@nH o ChooseMsgLQ[LQ[ LE[-LE[PLE[ LE'o&Character CountLN[[WACHOICE[LRB '@oH o ChooseMsgLQ[LQ[ LE[<LE[LE[ LE o"r VMSGTOSHOW o"LN[[WACHOICE[LRB '@pHo ChooseMsgLQ[ LQ[2LE[ZLE[(LE[LE[LI o&OKLNB'@qHo ChooseMsgLQ[ LQ[dLE[ZLE[<LE[LE[LIo &Quit macroLNB'@rHo ChooseMsgLQ[LQ[ LE[nLE[xLE[ LE[ LIrVBOLDONoIn use:LQB'@srVSWITCH[* tHo ChooseMsgLQ[LQ[LE[}LE[LE[ LE[ LIoPress rVBOLDONospacebarrVBOLDOFF+o to update displayLQB'@v wrVSWITCH[* xHo ChooseMsgLQ[LQ[LE[}LE[LE[ LE[ LIoPress rVBOLDONo Enter KeyrVBOLDOFF+o to update displayLQB'@z {rVSWITCH[*|Ho ChooseMsgLQ[LQ[LE[}LE[LE[ LE[ LIoPress rVBOLDONr UPDATEKEYrVBOLDOFF+o to update displayLQB'@~Ho ChooseMsgLQ[LQ[LE[LE[LE[ LE[ LIoPress rVBOLDONr SWITCHKEYrVBOLDOFFo to rVBOLDONoSwitchrVBOLDOFFo messageLQB'@Ho ChooseMsgLQ[LQ[LE[LE[LE[ LE[ LIoPress rVBOLDONr SWITCHKEY o QrVBOLDOFFo to rVBOLDONoQuitrVBOLDOFFo the macroLQB'@Ho ChooseMsgLQ[ LQB'@)rMACRODIALOGRESULT[ *HE*[VCHOICE[! VRADIOBUTTONS[ I rI[[SACHOICE[3 rI[ I^rVCHOICE rI rI[SACHOICE[:VCHOICE rI[SACHOICE[[-!r VRADIOBUTTONS[! VRADIOBUTTONS!r VRADIOBUTTONS[;H#oChoose MessageLNSo&Please choose one and only one messageLNBn)@,LRESTARTH[LIB@H[LIB~@Z DIALOGEXISTSHoAppBarLQrLEFTPOSLErTOPPOSLEr DIALOGWIDTHLE[LE[[xLIoLNB'@HoAppBarLQ!o MS Sans SerifLN g @LMB'@HoAppBarLQo WordPerfectLQ oCBLOB'@Y DIALOGEXISTSrVCHOICE[SAMSG[VMSGHoAppBarLQrVMSGLQE'rVSWITCH%([*@[ X[ XX[ Y[ YY[ Z[ ZZoUser32'oGetAsyncKeyState&[% $ Z rZx ZZoUser32'oGetAsyncKeyState&[% $ Y rYx YYoUser32'oGetAsyncKeyState&r VSWITCHMSG% $ X rXx XX rXX[; rYY[; rZZ[;Z DIALOGEXISTSHoAppBarLQB'@,LRESTARToUser32'oGetAsyncKeyState&[ % $ X rXx Y rY[;=,LUPDATE"([*e@[ X[ XX[ Y[ YY[ Z[ ZZoUser32'oGetAsyncKeyState&[% $ Z rZx ZZoUser32'oGetAsyncKeyState&[% $ Y rYx YYoUser32'oGetAsyncKeyState&r VSWITCHMSG% $ X rXx XX rXX[; rYY[; rZZ[;Z DIALOGEXISTSHoAppBarLQB'@,LRESTARToUser32'oGetAsyncKeyState&[ % $ X rXx Y rY[;,LUPDATE"([*"@[ X[ XX[ Y[ YY[ Z[ ZZoUser32'oGetAsyncKeyState&[% $ Z rZx ZZoUser32'oGetAsyncKeyState&[% $ Y rYx YYoUser32'oGetAsyncKeyState&r VSWITCHMSG% $ X rXx XX rXX[; rYY[; rZZ[;D!Z DIALOGEXISTSHoAppBarLQB'@,LRESTARTD!oUser32'oGetAsyncKeyState&rVSHOWCHR% $ XoUser32'oGetAsyncKeyState&[% $ XX rXx Y rXXx YY rY[; rYY[;},LUPDATE"@HE*HoErrorLNBn)@Z DIALOGEXISTSHoAppBarLQB'@HE*r DIALOGEXISTSY*$ SETUPAMSG@HoAppBarLQrVCHOICE[SAMSG[LQE'$[[ SCB[x*w$HE*Z DIALOGEXISTSw$Ho WordPerfectLQB'@[|[oPage HBB@o of H[LIBH[LIBo wordsH[LIBo charsrVUSERMSG[P AMSG[[| ))Hx LIB)VHRTH[L@[LIB,+ NNN rNNN aXb/FB2 rNNN a`/FB-)HvVANSLR!o Macro VersionLN]o+ You are running the first build of WPWin11rVHRToFThere is no certainty that any macro will run correctly in that build.rVHRTrVHRToYPlease install the latest service pack from ftp://ftp.corel.com/pub/WordPerfect/wpwin/11/rVHRTrVHRTo=Click "OK" to run the macro anyway. Click "Cancel" otherwiserVHRTLN[[LIBn)@rVANS[-)HE*))[|5[)51Y#CB1LUPDATE1uLRESTART1"LQUIT1"LEXIT!1$ SETUPAMSG++1 %CHECKVERSION11N!OEN WordPerfect!OEN WordPerfect)OENPSMacroFacility/OENPSMacroInterpreterH  0lR'UKUS.,  X%XXXX%XXX%  AppBarMsg.wcm@Version1.62004May01rr?=#Page  2  ڀof  10  ڈ  CharlesRossiter@rossiter@tiscali.co.za   A]) xdEAFd(3lR$ !TRW6&A4X3' Letter 6&A43' Letter3'LetterT<UKUS.,    X%XXXX%XXX%  mailto:notanexpert@blueyonder.co.uk dddd ddd(d2dz:StandardFontStandard Font Choice%Y%%%rXrX%%Y4>t2Arial 10Xo XXX4W  XXo    )!dxdx    )!dxdx  dP Pd)!dxdx d  )! dxdx)!dxdx&P d d&0 d d,,,,)!dxdx d:p%8Alt Legal 40  0` ""0 ` "` "2(  0  )3    dd !TRW6&A4X3' Letter 6&A43' Letter3'LetterT<UKUS.,    X%XXXX%XXX%  _USUK.,=\dd=XcXXX%<XXc %  Application(wp;"WordPerfect";Default!)   #XcX32) 7  ЀvMsgToShow=StrLeft(vMsgToShow;29)+"..."   EndIf `   DialogDefine ("ChooseMsg";50;50;170;180;Percent!;"ChooseMessage") W  DialogSetProperties("ChooseMsg";"Arial";10p)   DialogAddRadioButton("ChooseMsg";1;10;15;80;10;"&PageXofY";AChoice[1])   DialogAddRadioButton("ChooseMsg";2;10;30;80;10;"&WordCount";AChoice[2]) H  DialogAddRadioButton("ChooseMsg";3;10;45;80;10;"&CharacterCount";AChoice[3]) w DialogAddRadioButton("ChooseMsg";4;10;60;145;10;""""+vMsgToShow+"""";AChoice[4]) ? DialogAddPushButton("ChooseMsg";10;50;90;40;15;OKBttn!;"&OK")  DialogAddPushButton("ChooseMsg";11;100;90;60;15;NonDefaultBttn!;"&Quitmacro") h DialogAddText("ChooseMsg";20;10;110;120;10;WPChars!;vBoldOn+"Inuse:") 0 If(vSwitch=1) _ ЀDialogAddText("ChooseMsg";20;20;125;150;10;WPChars!; ' Ѐ"Press"+vBoldOn+"spacebar"+vBoldOff+"toupdatedisplay")  EndIf P If(vSwitch=2)  ЀDialogAddText("ChooseMsg";20;20;125;150;10;WPChars!; G Ѐ"Press"+vBoldOn+"EnterKey"+vBoldOff+"toupdatedisplay")  EndIf p If(vSwitch=3) 8 ЀDialogAddText("ChooseMsg";20;20;125;150;10;WPChars!; g   Ѐ"Press"+vBoldOn+UpdateKey+vBoldOff+"toupdatedisplay") /!! EndIf !" DialogAddText("ChooseMsg";21;20;140;150;10;WPChars!; "X# Ѐ"Press"+vBoldOn+SwitchKey+vBoldOff+"to"+vBoldOn+"Switch"+vBoldOff+"message") # $ DialogAddText("ChooseMsg";22;20;155;150;10;WPChars!; O$% Ѐ"Press"+vBoldOn+SwitchKey+"Q"+vBoldOff+"to"+vBoldOn+"Quit"+vBoldOff+"themacro") %& *XXhXX*Label(lRestart)0  0 =# =##=#.=#=##//Restartwithchoiceofinformationmessages2  %x'  DialogShow ("ChooseMsg";;;10) &@( If(MacroDialogResult=11)0   #-=#.=#=##//Press'Q'toquitthemacro 3Ԉ 7( * Quit (!+ EndIf )`",   *(#- vChoice=0 g vRadioButtons=00 #""=#.  =# =##//TodealwithknownbuginWPWin11/WPWin12 "4Ԉ / For(i;1;i<=AChoice[0];i+1)  vChoice=vChoice+i*AChoice[i]  X If(AChoice[i]>0)   vRadioButtons=vRadioButtons+1 O  EndIf   EndFor  x If(vRadioButtons<>1) o  MessageBox(;"ChooseMessage5";"Pleasechooseoneandonlyonemessage6") 7  Go(lRestart)   EndIf `  USUK.,   =#.//Endofsectionforchoosinginformationmessage 6Ԉ (  InhibitInput(Off!)   Display(On!)   DLLCallPrototype `GetAsyncKeyState`7 ("User32";"GetAsyncKeyState";Word!;{DWord(nVirtKey)}) H     =#. @ 0 @` @ //Permitschecksofwhichkeyshavebeenpressed d8Ԉ w 0   DialogExists=False?=#=#  DialogDefine ("AppBar";LeftPos;TopPos;DialogWidth;0;Modeless!+Percent!+NoCloseBox!;"") h  DialogSetProperties ("AppBar";"MSSansSerif";8p) 0 Label(lUpdate) '  DialogShow ("AppBar";"WordPerfect";cb)0   #-=#.(=#=##//Displayinformationmessage :Ԉ  DialogExists=True P vMsg=AMsg[vChoice]   RegionSetWindowText ("AppBar";vMsg) G  Switch (vSwitch) p CaseOf1:0 `  #=#.` ` ` =#` =##//***MessageDisplayupdatesonpressingthespacebar ;Ԉ g   ЀRepeat /!! Ѐx=2xx=2y=2yy=2z=2zz=2 !" Ѐz=GetAsyncKeyState(11h)0  0h=#=#0h=#h=#//11h=Ctrlkey="X#=#=# Ѐzz=((z&8000h))0 0 =# =#0=#=#0h=#=#0h=#h=#//Highbit=Trueifxistrue=# $=#=# Ѐy=GetAsyncKeyState(12h)0  0h=#=#0h=#h=#//12h=Altkey>O$%=#=# Ѐyy=((y&8000h))0 0 =# =#0=#=#0h=#=#0h=#h=#//Highbit=TrueifxistrueX?%&=#=# Ѐx=GetAsyncKeyState(vSwitchMsg)0  0=#=#//The S key,bydefault @%x'=#=# Ѐxx=((x&8000h))0 0 =# =#0=#=#0h=#=#0h=#h=#//Highbit=Trueifxistrue@&@(=#=# ЀIf((xx<>0)and(yy<>0)and(zz<>0)) o' ) 0  #LL)=#.=#=##//ExitthedialogwithCtrl+Alt+S AԈ 7( * ЀDialogExists=False (!+ ЀDialogDestroy("AppBar") )`", ЀGo(lRestart) *(#- ЀEndif W+#. Ѐx=GetAsyncKeyState(20h)0  0h=#=#0h=#h=#//20h=Space%C,$/=#=# Ѐy=((x&8000h))0 0 =# =#0=#=#0h=#=#0h=#h=#//Highbit=TrueifxistrueC,%0=#=# ЀUntil(y<>0) `  -=#.` ` //UntilSpacekeyispressed. DԈ -H&1 Go(lUpdate) w.'2   ?/'3 CaseOf2:0 `  #=#.` ` ` =#` =##//***MessageDisplayupdatesonpressingtheEnterkey iEԈ g ЀRepeat / Ѐx=2xx=2y=2yy=2z=2zz=2  Ѐz=GetAsyncKeyState(11h)0  0h=#=#0h=#h=#//11h=CtrlkeyF X=#=# Ѐzz=((z&8000h))0 0 =# =#0=#=#0h=#=#0h=#h=#//Highbit=TrueifxistruedG =#=# Ѐy=GetAsyncKeyState(12h)0  0h=#=#0h=#h=#//12h=AltkeyHO =#=# Ѐyy=((y&8000h))0 0 =# =#0=#=#0h=#=#0h=#h=#//Highbit=TrueifxistrueH =#=# Ѐx=GetAsyncKeyState(vSwitchMsg)0  0=#=#//The S key,bydefaultI x=#=# Ѐxx=((x&8000h))0 0 =# =#0=#=#0h=#=#0h=#h=#//Highbit=TrueifxistruerJ @=#=# ЀIf((xx<>0)and(yy<>0)and(zz<>0)) o  0  #LL)=#.=#=##//ExitthedialogwithCtrl+Alt+S TKԈ 7  ЀDialogExists=False   ЀDialogDestroy("AppBar") `  ЀGo(lRestart) (  ЀEndif W  Ѐx=GetAsyncKeyState(0Dh)0 h 0h=#h=#//0Dh=EnterkeyL =#=# Ѐy=((x&8000h))0 0 =# =#0=#=#0h=#=#0h=#h=#//Highbit=TrueifxistrueuM =#=# ЀUntil(y<>0) -=#. //UntilEnterkeyispressed. NԈ H  Go(lUpdate) w CaseOf3:0 `  # =#.` ` ` =#` =##//***MessageDisplayNԀupdatesonpressingAlt+UserSpecifiedCharacter 1OԈ  ЀRepeat h Ѐx=2xx=2y=2yy=2z=2zz=2 0 Ѐz=GetAsyncKeyState(11h)0  0h=#=#0h=#h=#//11h=Ctrlkey7P_=#=# Ѐzz=((z&8000h))0 0 =# =#0=#=#0h=#=#0h=#h=#//Highbit=TrueifxistrueQ'=#=# Ѐy=GetAsyncKeyState(12h)0  0h=#=#0h=#h=#//12h=AltkeyQ=#=# Ѐyy=((y&8000h))0 0 =# =#0=#=#0h=#=#0h=#h=#//Highbit=TrueifxistrueRP=#=# Ѐx=GetAsyncKeyState(vSwitchMsg)0  0=#=#//The S key,bydefault@S=#=# Ѐxx=((x&8000h))0 0 =# =#0=#=#0h=#=#0h=#h=#//Highbit=TrueifxistrueTG=#=# ЀIf((xx<>0)and(yy<>0)and(zz<>0))  0  #LL)=#.=#=##//ExitthedialogwithCtrl+Alt+S TԈ p ЀDialogExists=False 8 ЀDialogDestroy("AppBar") g   ЀGo(lRestart) /!! ЀEndif !" ̀x=GetAsyncKeyState(vShowChr)0 h 0h=#h=#//SpecifiedkeyfromUserSetup\V# $=#=# Ѐxx=GetAsyncKeyState(12h)0 h 0h=#h=#0=#=#//12h=AltkeyWԀO$%=#=# Ѐy=((x&8000h))0 0 =# =#0=#=#0h=#=#0h=#h=#//Highbit=TrueifxistrueW%&=#=# Ѐyy=((xx&8000h))0 0 =# =#0=#=#0h=#=#0h=#h=#//Highbit=TrueifxxistrueX%x'=#=# ЀUntil((y<>0)and(yy<>0))  %=#.//UntilAlt+specifiedkeyispressed.iY  &@( Go(lUpdate) o' ) Default:CallbackWait (!+ EndSwitch )`", Label(lQuit) W+#. MessageBox(;;"Error") ,$/ Label(lExit) ,%0 DialogExists=False -H&1 DialogDestroy("AppBar") w.'2 Quit ?/'3   0(4 cb: g If(DialogExists=True) / UK.,US.,6ԀSetUpAmsg  Ѐ RegionSetWindowText ("AppBar";AMsg[vChoice])  X EndIf   If(cb[5]=274)   ЀCallbackResume  x ЀDialogExists=False  @ EndIf o   RegionSetFocus ("WordPerfect") 7  Return   SetUpAMsg: ` =#.` ` //ArrayAMsg[]requiresupdatingateachDialogShow()3]  (  AMsg[]={ W  "Page"+?Page+"of"+DocumentInfo(Pages!);   DocumentInfo(Words!)+"words";   DocumentInfo(Characters!)+"chars"; H  vUserMsg w } ? Return   @//EndofmacroAppBarMsg.wcm 0 @ //GeneralProceduretoavoidknownbuginWPWin11.0.0.233  ' Ѐ   ProcedureCheckVersion11() P TT2=#. //CheckBuildofWPWin11   ^vHRt=NToC(63754) G nnn=VersionInfo(PerfectFitVersion!;ProductVersionNumber!)  If(nnn<11000000000300.0andnnn>11000000000000.0) p MessageBox(vAns;"MacroVersion";"YouarerunningthefirstbuildofWPWin11"+vHRt+ 8 "Thereisnocertaintythatanymacrowillruncorrectlyinthatbuild."+vHRt+vHRt+ g   "Pleaseinstallthelatestservicepackfromftp://ftp.corel.com/pub/WordPerfect/wpwin/11/"+vHRt /!! +vHRt+ !" "Click""OK""torunthemacroanyway.Click""Cancel""otherwise"+vHRt; "X# OKCancel!|IconWarning!) # $ If(vAns>1)0 ` Quit0 ` =#` =#EndIf0 =# =#EndIf%&=#=#  EndProc  &@( c  o' )  <IfPlatform("EndOfMacroComments") c g #XcX<:!#\XXcThehexcodesbelowcanbeusedtoaddotherkeycombinationstoupdatethedialoginthismacro.Thehexcodesareinbrackets. X InWWin,suffixthatnumberwithanxorhtomakeithexasshownintheSwitch()codeabovee.g.thenumericcodeforthe Alt key X  is 12 ,andsotherelevantmacrocommandis     xx=GetAsyncKeyState( 12h )  # ThevirtualcodesfromtheMSDNsiteisshownbelowFYI. U  ЀMSDNHome    Virtual-KeyCodes    -------------------------------------------------------------------------------- R  Thefollowingtableshowsthesymbolicconstantnames,hexadecimalvalues,andmouseorkeyboardequivalentsforthevirtual-key  codesusedbythesystem.Thecodesarelistedinnumericorder.   Constants O  9,X pXXXhX9VK_LBUTTON (01)0  Leftmousebutton =#=# VK_RBUTTON (02)0  Rightmousebutton =#=# VK_CANCEL (03)0  Control-breakprocessing =#=# VK_MBUTTON (04)0  Middlemousebutton p (three-buttonmouse)L =#=# VK_XBUTTON1 (05)0  Windows2000/XP:X1mousebuttonL =#=# VK_XBUTTON2 (06)0  Windows2000/XP:X2mousebutton~=#=# - (07)0  Undefined~=#=# VK_BACK (08)0  BACKSPACEkey=#=# VK_TAB (09)0  TABkeyI=#=# - (0A-0B)0  ReservedI=#=# VK_CLEAR (0C)0  CLEARkey{=#=# VK_RETURN (0D)0  ENTERkey{=#=# - (0E-0F)0  Undefined=#=# VK_SHIFT (10)0  SHIFTkeyF =#=# VK_CONTROL (11)0  CTRLkeyF!=#=# VK_MENU (12)0  ALTkeyx"=#=# VK_PAUSE (13)0  PAUSEkeyx#=#=# VK_CAPITAL (14)0  CAPSLOCKkey$=#=# VK_KANA (15)0  InputMethodEditor(IME)KanamodeC%=#=# VK_HANGUEL (15)0  IMEHanguelmode(maintainedforcompatibility;useVK_HANGUL)C&=#=# VK_HANGUL (15)0  IMEHangulmodeu'=#=# - (16)0  Undefinedu(=#=# VK_JUNJA (17)0  IMEJunjamode )=#=# VK_FINAL (18)0  IMEfinalmode @*=#=# VK_HANJA (19)0  IMEHanjamode@!+=#=# VK_KANJI (19)0  IMEKanjimode!r,=#=# - (1A)0  Undefinedr" -=#=# VK_ESCAPE (1B)0  ESCkey #.=#=# VK_CONVERT (1C)0  IMEconvert#=/=#=# VK_NONCONVERT (1D)0  IMEnonconvert=$0=#=# VK_ACCEPT (1E)0  IMEaccept$o1=#=# VK_MODECHANGE (1F)0  IMEmodechangerequesto%2=#=# VK_SPACE (20)0  SPACEBAR&3=#=# VK_PRIOR (21)0  PAGEUPkey&:4=#=# VK_NEXT (22)0  PAGEDOWNkey:'5=#=# VK_END (23)0  ENDkey'l 6=#=# VK_HOME (24)0  HOMEkeyl(!7=#=# VK_LEFT (25)0  LEFTARROWkey)!8=#=# VK_UP (26)0  UPARROWkey)7"9=#=# VK_RIGHT (27)0  RIGHTARROWkey7*":=#=# VK_DOWN (28)0  DOWNARROWkey*i#;=#=# VK_SELECT (29)0  SELECTkeyi+$<=#=# VK_PRINT (2A)0  PRINTkey,$==#=# VK_EXECUTE (2B)0  EXECUTEkey,4%>=#=# VK_SNAPSHOT (2C)0  PRINTSCREENkey4-%?=#=# VK_INSERT (2D)0  INSkey-f&@=#=# VK_DELETE (2E)0  DELkeyf.&A=#=# VK_HELP (2F)0  HELPkey.'B=#=#  (30)0  0key/1(C=#=#  (31)0  1key10(D=#=#  (32)0  2key0c)E=#=#  (33)0  3keyc1)F=#=#  (34)0  4key1*G=#=#  (35)0  5key2.+H=#=#  (36)0  6keyg=#=#  (37)0  7key=#=#  (38)0  8key2=#=#  (39)0  9key2 =#=# - (3A-40)0  Undefined d=#=#  (41)0  Akeyd =#=#  (42)0  Bkey =#=#  (43)0  Ckey /=#=#  (44)0  Dkey/ =#=#  (45)0  Ekey a =#=#  (46)0  Fkeya  =#=#  (47)0  Gkey  =#=#  (48)0  Hkey, =#=#  (49)0  Ikey, =#=#  (4A)0  Jkey^=#=#  (4B)0  Kkey^=#=#  (4C)0  Lkey =#=#  (4D)0  Mkey) =#=#  (4E)0  Nkey) =#=#  (4F)0  Okey[ =#=#  (50)0  Pkey[ =#=#  (51)0  Qkey =#=#  (52)0  Rkey& =#=#  (53)0  Skey& =#=#  (54)0  TkeyX=#=#  (55)0  UkeyX=#=#  (56)0  Vkey=#=#  (57)0  Wkey#=#=#  (58)0  Xkey#=#=#  (59)0  YkeyU=#=#  (5A)0  ZkeyU=#=# VK_LWIN (5B)0  LeftWindowskey p (MicrosoftNaturalkeyboard)=#=# VK_RWIN (5C)0  RightWindowskey p (Naturalkeyboard)  =#=# VK_APPS (5D)0  Applicationskey p (Naturalkeyboard) !=#=# - (5E)0  ReservedR"=#=# VK_SLEEP (5F)0  ComputerSleepkeyR#=#=# VK_NUMPAD0 (60)0  Numerickeypad0key$=#=# VK_NUMPAD1 (61)0  Numerickeypad1key%=#=# VK_NUMPAD2 (62)0  Numerickeypad2key&=#=# VK_NUMPAD3 (63)0  Numerickeypad3keyO'=#=# VK_NUMPAD4 (64)0  Numerickeypad4keyO(=#=# VK_NUMPAD5 (65)0  Numerickeypad5key)=#=# VK_NUMPAD6 (66)0  Numerickeypad6key *=#=# VK_NUMPAD7 (67)0  Numerickeypad7key!+=#=# VK_NUMPAD8 (68)0  Numerickeypad8key!L,=#=# VK_NUMPAD9 (69)0  Numerickeypad9keyL"-=#=# VK_MULTIPLY (6A)0  Multiplykey"~.=#=# VK_ADD (6B)0  Addkey~#/=#=# VK_SEPARATOR (6C)0  Separatorkey$0=#=# VK_SUBTRACT (6D)0  Subtractkey$I1=#=# VK_DECIMAL (6E)0  DecimalkeyI%2=#=# VK_DIVIDE (6F)0  Dividekey%{3=#=# VK_F1 (70)0  F1key{&4=#=# VK_F2 (71)0  F2key'5=#=# VK_F3 (72)0  F3key'F 6=#=# VK_F4 (73)0  F4keyF( 7=#=# VK_F5 (74)0  F5key(x!8=#=# VK_F6 (75)0  F6keyx)"9=#=# VK_F7 (76)0  F7key*":=#=# VK_F8 (77)0  F8key*C#;=#=# VK_F9 (78)0  F9keyC+#<=#=# VK_F10 (79)0  F10key+u$==#=# VK_F11 (7A)0  F11keyu,%>=#=# VK_F12 (7B)0  F12key-%?=#=# VK_F13 (7C)0  F13key-@&@=#=# VK_F14 (7D)0  F14key@.&A=#=# VK_F15 (7E)0  F15key.r'B=#=# VK_F16 (7F)0  F16keyr/ (C=#=# VK_F17 (80H)0  F17key 0(D=#=# VK_F18 (81H)0  F18key0=)E=#=# VK_F19 (82H)0  F19key=1)F=#=# VK_F20 (83H)0  F20key1o*G=#=# VK_F21 (84H)0  F21keyo2+H=#=# VK_F22 (85H)0  F22keyg=#=# VK_F23 (86H)0  F23key=#=# VK_F24 (87H)0  F24key2=#=# - (88-8F)0  Unassigned2 =#=# VK_NUMLOCK (90)0  NUMLOCKkey d=#=# VK_SCROLL (91)0  SCROLLLOCKkeyd =#=#  (92-96)0  OEMspecific =#=# - (97-9F)0  Unassigned /=#=# VK_LSHIFT (A0)0  LeftSHIFTkey/ =#=# VK_RSHIFT (A1)0  RightSHIFTkey a =#=# VK_LCONTROL (A2)0  LeftCONTROLkeya  =#=# VK_RCONTROL (A3)0  RightCONTROLkey  =#=# VK_LMENU (A4)0  LeftMENUkey, =#=# VK_RMENU (A5)0  RightMENUkey, =#=# VK_BROWSER_BACK (A6)0  Windows2000/XP:BrowserBackkey^=#=# VK_BROWSER_FORWARD (A7)0  Windows2000/XP:BrowserForwardkey^=#=# VK_BROWSER_REFRESH (A8)0  Windows2000/XP:BrowserRefreshkey =#=# VK_BROWSER_STOP (A9)0  Windows2000/XP:BrowserStopkey) =#=# VK_BROWSER_SEARCH (AA)0  Windows2000/XP:BrowserSearchkey) =#=# VK_BROWSER_FAVORITES (AB)0  Windows2000/XP:BrowserFavoriteskey[ =#=# VK_BROWSER_HOME (AC)0  Windows2000/XP:BrowserStartandHomekey[ =#=# VK_VOLUME_MUTE (AD)0  Windows2000/XP:VolumeMutekey =#=# VK_VOLUME_DOWN (AE)0  Windows2000/XP:VolumeDownkey& =#=# VK_VOLUME_UP (AF)0  Windows2000/XP:VolumeUpkey& =#=# VK_MEDIA_NEXT_TRACK (B0)0  Windows2000/XP:NextTrackkeyX=#=# VK_MEDIA_PREV_TRACK (B1)0  Windows2000/XP:PreviousTrackkeyX=#=# VK_MEDIA_STOP (B2)0  Windows2000/XP:StopMediakey=#=# VK_MEDIA_PLAY_PAUSE (B3)0  Windows2000/XP:Play/PauseMediakey#=#=# VK_LAUNCH_MAIL (B4)0  Windows2000/XP:StartMailkey#=#=# VK_LAUNCH_MEDIA_SELECT (B5)0  Windows2000/XP:SelectMediakeyU=#=# VK_LAUNCH_APP1 (B6)0  Windows2000/XP:StartApplication1keyU=#=# VK_LAUNCH_APP2 (B7)0  Windows2000/XP:StartApplication2key=#=# - (B8-B9)0  Reserved  =#=# VK_OEM_1 (BA)0  Usedformiscellaneouscharacters;itcanvarybykeyboard.Windows2000/XP:For  ! theUSstandardkeyboard,the';:'keyR"=#=# VK_OEM_PLUS (BB)0  Windows2000/XP:Foranycountry/region,the'+'keyR#=#=# VK_OEM_COMMA (BC)0  Windows2000/XP:Foranycountry/region,the','key$=#=# VK_OEM_MINUS (BD)0  Windows2000/XP:Foranycountry/region,the'-'key%=#=# VK_OEM_PERIOD (BE)0  Windows2000/XP:Foranycountry/region,the'.'key&=#=# VK_OEM_2 (BF)0  Usedformiscellaneouscharacters;itcanvarybykeyboard.Windows2000/XP:For O' theUSstandardkeyboard,the'/?'keyO(=#=# VK_OEM_3 (C0)0  Usedformiscellaneouscharacters;itcanvarybykeyboard.Windows2000/XP:For ) theUSstandardkeyboard,the'`~'key *=#=# - (C1-D7)0  Reserved!+=#=# - (D8-DA)0  Unassigned!L,=#=# VK_OEM_4 (DB)0  Usedformiscellaneouscharacters;itcanvarybykeyboard.Windows2000/XP:For L"- theUSstandardkeyboard,the'[{'key"~.=#=# VK_OEM_5 (DC)0  Usedformiscellaneouscharacters;itcanvarybykeyboard.Windows2000/XP:For ~#/ theUSstandardkeyboard,the'\|'key$0=#=# VK_OEM_6 (DD)0  Usedformiscellaneouscharacters;itcanvarybykeyboard.Windows2000/XP:For $I1 theUSstandardkeyboard,the']}'keyI%2=#=# VK_OEM_7 (DE)0  Usedformiscellaneouscharacters;itcanvarybykeyboard.Windows2000/XP:For %{3 theUSstandardkeyboard,the'single-quote/double-quote'key{&4=#=# VK_OEM_8 (DF)0  Usedformiscellaneouscharacters;itcanvarybykeyboard.'5=#=# - (E0)0  Reserved'F 6=#=#  (E1)0  OEMspecificF( 7=#=# VK_OEM_102 (E2)0  Windows2000/XP:Eithertheanglebracketkeyorthebackslashkeyonthe (x!8 RT102-keykeyboardx)"9=#=#  (E3-E4)0  OEMspecific*":=#=# VK_PROCESSKEY (E5)0  Windows95/98/Me,WindowsNT4.0,Windows2000/XP:IMEPROCESSkey*C#;=#=#  (E6)0  OEMspecificC+#<=#=# VK_PACKET (E7)0  Windows2000/XP:UsedtopassUnicodecharactersasiftheywerekeystrokes. +u$= TheVK_PACKETkeyisthelowwordofa32-bitVirtualKeyvalueusedfor u,%> non-keyboardinputmethods.Formoreinformation,seeRemarkinKEYBDINPUT, -%? SendInput,WM_KEYDOWN,andWM_KEYUP-@&@=#=# - (E8)0  Unassigned@.&A=#=#  (E9-F5)0  OEMspecific.r'B=#=# VK_ATTN (F6)0  Attnkeyr/ (C=#=# VK_CRSEL (F7)0  CrSelkey 0(D=#=# VK_EXSEL (F8)0  ExSelkey0=)E=#=# VK_EREOF (F9)0  EraseEOFkey=1)F=#=# VK_PLAY (FA)0  Playkey1o*G=#=# VK_ZOOM (FB)0  Zoomkeyo2+H=#=# VK_NONAME (FC)0  Reservedforfutureuseg=#=# VK_PA1 (FD)0  PA1key=#=# VK_OEM_CLEAR (FE)0  Clearkey2=#=#  #XcX\ˊd#<XXcEndIfPlatform("EndOfMacroComments") ު#XcX<#\XXc  d