KeyDown() doesn't seem to work properly in a button. Here's a little demo:
@output:{=KeyDown("alt") ? "alt" : "not alt"=}
@output:{=KeyDown("ctrl") ? "ctrl" : "not ctrl"=}
@output:{=KeyDown("shift") ? "shift" : "not shift"=}
@output:{=KeyDown("none") ? "none" : "not none"=}
@output:---
@keydown:alt
@output:alt
@keydown:ctrl
@output:ctrl
@keydown:shift
@output:shift
@keydown:none
@output:none
@keydown:any
@output:any
@keydown:common
@output:common
@output:===
XML
<?xml version="1.0"?>
<button backcol="none" display="both" label_pos="right" textcol="none">
<label>KeyDown</label>
<icon1>#newcommand</icon1>
<function type="normal">
<instruction>@output:{=KeyDown("alt") ? "alt" : "not alt"=}</instruction>
<instruction>@output:{=KeyDown("ctrl") ? "ctrl" : "not ctrl"=}</instruction>
<instruction>@output:{=KeyDown("shift") ? "shift" : "not shift"=}</instruction>
<instruction>@output:{=KeyDown("none") ? "none" : "not none"=}</instruction>
<instruction />
<instruction>@output:---</instruction>
<instruction />
<instruction>@keydown:alt</instruction>
<instruction>@output:alt</instruction>
<instruction />
<instruction>@keydown:ctrl</instruction>
<instruction>@output:ctrl</instruction>
<instruction />
<instruction>@keydown:shift</instruction>
<instruction>@output:shift</instruction>
<instruction />
<instruction>@keydown:none</instruction>
<instruction>@output:none</instruction>
<instruction />
<instruction>@keydown:any</instruction>
<instruction>@output:any</instruction>
<instruction />
<instruction>@keydown:common</instruction>
<instruction>@output:common</instruction>
<instruction />
<instruction>@output:===</instruction>
</function>
</button>
@keydown gets it right, but KeyDown() always return none.