布団が俺を呼んでいる

丘山大一のぶろぐ

画面をクリックする (マウスクリック)

珍しく全力で仕事したせいで、指が痛い……。
というわけで、指を使わなくても自動でクリックするためのプログラム。
※自分メモ。

using System.Runtime.InteropServices;
 
namespace ConsoleApplication1
{
    class Program
    {
        [DllImport("USER32.dll", CallingConvention = CallingConvention.StdCall)]
        static extern void SetCursorPos(int X, int Y);
 
        [DllImport("USER32.dll", CallingConvention = CallingConvention.StdCall)]
        static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
        
        private const int MOUSEEVENTF_LEFTDOWN = 0x2;
        private const int MOUSEEVENTF_LEFTUP = 0x4;
 
        static void Main(string[] args)
        {
            SetCursorPos(300, 300);
            mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
            mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
        }
    }
}


100倍クリックされる 超Webライティング実践テク60

新品価格
¥3,280から
(2017/6/11 20:41時点)

コメントを書く

布団が俺を呼んでいる | ゲームパッド大暴走

布団が俺を呼んでいる

丘山大一のぶろぐ

ゲームパッド大暴走

幽霊の正体みたりゲームパッド(字余り)

カーソルの暴走

以前トゥートもしていたのですが、スタートメニューをはじめとする設定・電卓・メール等あらゆるUWP実装のアプリケーションのカーソルが暴走していました。
具体的にはカーソルキーの「↑」を押し続けた状態になっている感じでした。
スタートメニューでアプリを選択しようとしてスクロールしても勝手に上に戻される。
原因を探ろうと設定アプリを開いても勝手にスルクロールするので設定変更もままならない。
気分転換にマイクラ(Win10 Edition)やろうとしても視点移動し続けるので操作不能。
下記は再現がとれた分かりやすい例(電卓・ニュース)。


この現象は自作のメインPCとSurfacePro 3 で発生していました。
ただし、SurfacePro 3は突然直り、そのあとメインPCの方で発生、という流れでした。

でいきなり直ったりしたので、どうにも原因が分からなかったのですが、先日トリガーぽいのが判明しました。


問題発生条件

環境はWindows 10。おそらくハードウェア的な構成はさほど関係ない(複数のマシンで発生したので)。
現象が発生するのは、おそらくWindows Updateの次回以後起動時。
で、問題を起こしている直接の原因はゲームパッドJC-U4113SBKのようです。

このゲームパッドの「電源が切れている状態」で「コントローラUSB受信機がPCに刺さりっぱなし」で「Windows Update後の次回以後起動時」に問題が発生しました。


解決策

USBを引っこ抜けば解決しますが、再接続で再発します。
ではどうすればよいのかというと、ゲームパッドの電源を入れれば解決します(笑)
一度だけ電源を入れれば、切ってもOKです。
解決策自体は簡単……


解決に時間がかかった理由

解決までに時間がかかったのは、ゲームパッド購入後に試しで使って問題が「無かった」ため、調査対象から外してしまったことにあります。
また、買ったはいいもののゲームをしなかった(意味なーい)ため、電源を入れませんでした。でも使うつもりはあったのでUSBは差しっぱなしでした。
さらに最近は、Windows Updateは先にSurfaceに当てて試してからメインPCにも適用、という流れにしていました。そのため、
  • Surface で問題発生→
  • Windows Updateをメインマシンに当てるのを一時停止→
  • USB端子を使う必要が出てきたのでSurface からコントローラのUSBを引っこ抜く→
  • なぜか問題解決→
  • 小さいUSBを無くすのもイヤなのでメインPCにコントローラのUSB接続→
  • 問題なし→
  • Windows Update適用→
  • 問題発生→
  • Windows Updateに問題があるのか!?と勘違い→
  • ゲームをしないで調査に勤しむ→
  • 実はゲームをしないと解決しない問題
という流れです。気が付けば簡単な問題なんですが……
真面目にゲームをやっていれば自然と解決していたんです。ちくせう。ゲームせずに勉強なんかするからこうなるんだ。


推測

xinput方式のコントローラだとスタートメニューもコントローラで操作できるので(この時知ったんですが)、多分そのあたりが暴発しているんじゃないかなあと思っています。
高速スタートアップあたりも影響しているかもしれませんが、未検証です。



分かれば大した問題ではありませんでした。
なんにせよゲームパッド買ってゲームしない方に問題がある気がする。


エレコム ワイヤレス ゲームパッド 13ボタン Xinput 振動 連射 高耐久 ブラック JC-U4113SBK

新品価格
¥2,649から
(2019/2/14 20:44時点)

コメントを書く