日本語プログラミング言語なでしこの公式掲示板

なでしこ1 質問

トップ 新規 検索

2024-06-05 15:54:36

Re②:ctrl+shiftの件

アイルトン・ナデ さん

ご返答有難うございます 頂いたコードで色々実験してみます

有難うございました。

なでしこv1でボタンを使用してオンをクリックしたらctrl+shiftを押しっぱなしにしてオフにすると解除することは可能ですか?

可能であれば一つのボタンでオン・オフができると楽です 不可能ならボタンを2つにしてオンオフで問題ありません

ボタンを押したら色が変わると尚、嬉しいです

user32.dll の keybd_event を使えば「キーを押した」「キーを離した」というイベントを送ることができるようです。

#-----------------------------------------------------------------------
*keybd_event(bVk,bScan,dwFlags,dwExtraInfo)=DLL("user32.dll",
"void keybd_event(
 BYTE bVk,
 BYTE bScan,
 DWORD dwFlags,
 ULONG_PTR dwExtraInfo
)")//↑掲示板が全角スペースに変換していたら半角スペースに直してください

●仮想キー押す(仮想キーコードを)
 dwFlags=0 //押す
 keybd_event(仮想キーコード,0,dwFlags,0)

●仮想キー離す(仮想キーコードを)
 dwFlags=2 //離す
 keybd_event(仮想キーコード,0,dwFlags,0)

//利用サンプル
母艦のクリックした時は~
 VK_SHIFT=16 //Shiftの仮想キーコード
 もしVK_SHIFTのキー状態がオフならば //離していたら押す
   VK_SHIFTを仮想キー押す
   母艦の背景色は赤色
 違えば  //押していたら離す
   VK_SHIFTを仮想キー離す
   母艦の背景色は白色
#-----------------------------------------------------------------------

API利用はあんまりしたことないので少し自信なし。

サンプルではShiftキーだけですがCtrlもいい感じに足してあげてください。
仮想キーコードについてはネットで検索するか、なでしこエディタの行動タブにある「キー番号の挿入」で調べられます

マウスのボタンを押しっぱなしにするには過去ログ参照
https://www.eznavi.net/site/bbs/index2.php?pagetop=1270


(編集パスワード送信)

子記事

親記事 (No.1923)
返信した記事(元) (No.1929)

この内容(No.1930)に返信

この内容(No.1930)をダウンロード

この内容(No.1930)のテキスト表示





www.eznavi.net