satocchiaブログ

satocchiaブログ

PR

キーワードサーチ

▼キーワード検索

プロフィール

satocchia

satocchia

カレンダー

お気に入りブログ

まだ登録されていません

コメント新着

effelpist@ kilovermek.es effelpist <a href="https://kilovermek.es/…
tomoZo@ Re:Pale Moon日本語化トラブル(06/06) はじめまして。 28.16.0でまたもや提供さ…
satocchia @ Re[1]:Pale Moon日本語化トラブル(06/06) zui_9さんへ 本日、確認しました。ようや…
zui_9 @ Re:Pale Moon日本語化トラブル(06/06) 上記リンク「Githubのプロジェクト」の左…
わたなべ@ Re:powershellコンソール、見づらくありませんか?(08/26) 初めまして、この情報最高です! 背景を白…

フリーページ

2018.12.25
XML
カテゴリ: UWSC
user32.dllの「GetKeyboardState」APIを使って複数キー読み込みをしてみました。


仮想キーコードは​ ここ ​がよくまとまっているみたい。

※12・26追記
ソースのコメントをもう少し丁寧に書けば良かった。
getPushedKeys()は押された複数のキーのキーコードを要素として持つ配列を返す関数です。
各配列の値はキーコードです。例えば、得られた配列(値の昇順で入るみたい)の中に、65と66があれば、「A」と「B」が同時に押されたということが分かる仕掛けです。


getPushedKeys.uws


    while 1
        pushed    =getPushedKeys()
        keys    ="キーを押すと、下にキーコードが表示されます。alt+f2で終了<#CR>"
        for key in pushed
            keys    =keys + key + ","
        next
        fukidasi( keys )
    wend
endif

function getPushedKeys( skipToggles=true )
    def_dll GetKeyboardState( var byte[] ):bool:user32.dll

    if skipToggles
        //トグル系のキーは何もしなくても押されたことになるのでデフォルトで排除
        last    =239
    else
        last    =255

    buff    =safearray( 0,last )
    GetKeyboardState( buff )
    for i =0 to last
        PushedKey    =buff[ i ]
        if PushedKey > 127
            result    =result + i + ","
        endif
    next
    //余分なコンマを外す
    result    =copy(result, 1, length( result )-1)
    result    =split( result, "," )
fend





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2018.12.26 00:20:17
コメント(2) | コメントを書く
[UWSC] カテゴリの最新記事


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Design a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: