まず思いつくのはgetkeyで対象となるキーをひとつひとつ調べ、
押されているキーの数を把握するという方法ですが、
これだと負荷がかかりそうなので、GetKeyboardStateで
全キーの状態をまとめて取得する方法にしてみました。
#include "user32.as"
sdim keystat,256 //256バイトのバッファを確保
repeat
GetKeyboardState varptr(keystat) //キーボードのキー入力状態をまとめて取得しバッファに格納
n=0 //押されているキーの個数
repeat 26,0x41 //例として[A](0x41)~[Z]の26個のキーを調べる
n+=((peek(keystat,cnt)&0x80)!=0) //キーが押されていると、対応するバイトの最上位ビットが1になる。
//よって、&0x80をすれば、キーが押されている場合は0x80が返る。
loop
title str(n)
await 33
loop
ただし、多数のキーを同時押ししても、大抵のキーボードでは
そのすべてを検出することはできません。
また、どのような組み合わせなら同時押しを認識できるのかも、
キーボードによってまちまちです。
(たとえば私のキーボードは、最大なら6個まで同時押しを取得できますが、
組み合わせによっては2個同時しか取得できません)
これはキーボードのハードウェア的な仕様なので、
ソフトウェア的にはどうしようもできません。