=)
Windows7 ラップトップで C++ (VC++ ではない) を使用しています。
マウスを現在の位置から x/y に移動するこの方法には問題があります。マウスイベントの送信入力を呼び出すたびに、マウスが移動しますが、画面もオフになります (Fn + F2 に相当)。プログラムをデバッグしたところ、値があるだけでなく、値mi
もあることに気付きました(これは x=25、y=25、absolure=false の場合です)。ki
hi
mi:
dx 25
dy 25
mouseData 0
dwFlags 1
time 2686400
dwExtraInfo 0
ki:
wVk 25
wScan 0
dwFlags 25
time 0
dwExtraInfo 1
hi:
uMsg 25
wParamL 25
wParamH 0
ki と hi を 0 に設定しようとしましたが、そうすると mi も 0 に設定され、マウスは動かなくなりますが、画面はスリープ状態のままです。:$
ここに私が使用したいくつかの方法があります。
int Controller::mouse_move(long x, long y, bool absolute) {
mouse.dx = x;
mouse.dy = y;
if (absolute) {
mouse.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE;
}else{
mouse.dwFlags = MOUSEEVENTF_MOVE;
}
mouse.mouseData = 0;
mouse.dwExtraInfo = 0;
input.type = INPUT_MOUSE;
input.mi = mouse;
SendInput(1, &input, sizeof (input));
return 0;
}
また
int Controller::mouse_move(long x, long y, bool absolute, int index_vector_no) {
input.type = INPUT_MOUSE;
input.mi.dx = x;
input.mi.dy = y;
if (absolute) {
input.mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE;
}else{
input.mi.dwFlags = MOUSEEVENTF_MOVE;
}
input.mi.mouseData = 0;
input.mi.dwExtraInfo = 0;
input.ki.dwExtraInfo = 0;
input.ki.dwFlags = 0;
input.ki.time = 0;
input.ki.wScan = 0;
input.ki.wVk = 0;
input.hi.uMsg = 0;
input.hi.wParamH = 0;
input.hi.wParamL = 0;
SendInput(1, &input, sizeof (input));
return 0;
}
これがマウスだけでなくキーボード入力も送信している理由を誰でも理解できますか?! それは私のラップトップの構成と関係がありますか?
前もって感謝します!=)