2017年6月18日日曜日

MARGINAL#4

恋愛ハーレムゲーム終了のお知らせがくる頃にと君死にたもう
ことなかれというなかれ購入。…タイトルなげぇ。ごきげんよう。

…一時期こんな感じでWinMergeについて考えてたわけですが。

       

こんな気になってしかたなくなるなんてもう恋なんちゃうんかと。
ちがっ…! あ、アイツとはただの仕事上の付き合いなんだから!

 

その後さらに調べたことがあるんですが貼る機会なかったので
供養しときます。

WinMerge日本語版も見てみたら「サブフォルダを含む」にチェック入ってたら常にrecurseするように変更されてた。ただGetAsyncKeyStateのバグ自体は修正されてなくて、チェックなくてもドラッグ前にCtrl押したらツリー表示されてしまう…って実害あるかわからんけど

あと解析中に知った裏機能で、フォルダーを1つだけShift押しながらドロップすると自分自身と比較という謎なことができる。こっちはドラッグ前にShift押しても無効(正常)。Ctrl+Shift押しながらドロップ、もしくは事前にCtrl押してShift押しながらドロップでツリー表示

キーの判定に違いがあるのは GetAsyncKeyState(VK_CONTROL) の後に GetAsyncKeyState(VK_SHIFT) が呼ばれる実装のため。事前にShift押してても最初の呼び出しで情報がクリアされて2回目の判定は常に偽。押しっぱなしなら0x8000

そうすると今度はGetAsyncKeyState関数のほうに興味出てくるというか、「前回の関数呼び出し以降にキーが押されたら最下位ビットが1」という仕様は誰得なのかと。複数のキーを判定する実装とか考えたらガバガバなの目に見えてるのに。いやGetKeyboardStateを使うのか

…やっぱり恋(ry

0 件のコメント :

コメントを投稿