<div>I&#39;ve typed in the keyspotting program in 6.7.1 of &quot;A Tutorial to the Clean Object I/O Library&quot; but do not&nbsp;get any responses for many of the special keys -- namely Function Keys (F1-F12), Del, Page Up, Page Down, arrow keys, end, and home&nbsp;keys.&nbsp;I get appropriate responses for the other special keys (Backspace, Enter, Escape), .&nbsp; &nbsp;I&#39;ve tried it on Window Vista and XP with the same results.</div>

<div>&nbsp;</div>
<div>Thanks,</div>
<div>&nbsp;</div>
<div>Neil</div>
<div>&nbsp;</div>
<div>P.S. </div>
<div>&nbsp;</div>
<div>Here&#39;s the program </div>
<div>&nbsp;</div>
<div>module Keyspotting</div>
<div>import StdEnv, StdIO</div>
<div>Start :: *World -&gt; *World<br>Start world <br>&nbsp;# (wid, world) = openId world<br>&nbsp;# window = Window &quot;keyspotting&quot; NilLS<br>&nbsp;&nbsp;[ WindowKeyboard (const True) Able (noLS1 (spotting wid))<br>&nbsp;&nbsp;, WindowId wid<br>
&nbsp;&nbsp;, WindowClose (noLS closeProcess)<br>&nbsp;&nbsp;]&nbsp;<br>&nbsp;= startIO SDI Void (snd o openWindow Void window) [ProcessClose closeProcess] world<br>&nbsp;<br>where</div>
<div>&nbsp;spotting :: Id x (PSt .l) -&gt; PSt .l | toString x<br>&nbsp;spotting wid x pst<br>&nbsp;&nbsp;= appPIO (setWindowLook wid True (False, look (toString x))) pst<br>&nbsp;<br>&nbsp;look :: String SelectState UpdateState *Picture -&gt; *Picture<br>
&nbsp;look text _ {newFrame} picture<br>&nbsp;&nbsp;# picture = unfill newFrame picture<br>&nbsp;&nbsp;# (width, picture) = getPenFontStringWidth text picture<br>&nbsp;&nbsp;= drawAt {x=(w-width)/2, y=h/2} text picture<br>&nbsp;where<br>&nbsp;&nbsp;{w, h} = rectangleSize newFrame</div>