0

Shiftキーを押しながらマウスをクリックすることは可能かどうか疑問に思いました。

これと同じように見えます。-SendKeys.SendWait関数を使用してマウスクリックをシミュレートできる場合-SendKeys.SendWait(+{Mouseclick}); これまで、API「User32.dll」を呼び出してマウスクリックを呼び出しました。

public const int MOUSEEVENTF_LEFTDOWN = 0x2;
public const int MOUSEEVENTF_LEFTUP = 0x4;
public const int MOUSEEVENTF_MIDDLEDOWN = 0x20;
public const int MOUSEEVENTF_MIDDLEUP = 0x40;
public const int MOUSEEVENTF_RIGHTDOWN = 0x8;
public const int MOUSEEVENTF_RIGHTUP = 0x10;
[DllImport("User32.dll")]
public static extern int mouse_event(int dwFlags, int dx, int dy, int cButton, int dwExtra);

 mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

でも; Shiftキーを同時に押したままにすることはできますか?

よろしく、DotTutorials

4

1 に答える 1

3

keybd_eventこの関数を使用して、Shiftキーをシミュレートできるはずです。何かのようなもの:

public const int MOUSEEVENTF_LEFTDOWN = 0x2;
public const int MOUSEEVENTF_LEFTUP = 0x4;
public const int MOUSEEVENTF_MIDDLEDOWN = 0x20;
public const int MOUSEEVENTF_MIDDLEUP = 0x40;
public const int MOUSEEVENTF_RIGHTDOWN = 0x8;
public const int MOUSEEVENTF_RIGHTUP = 0x10;
public const byte KEYBDEVENTF_SHIFTVIRTUAL = 0x10;
public const byte KEYBDEVENTF_SHIFTSCANCODE = 0x2A;
public const int KEYBDEVENTF_KEYDOWN = 0;
public const int KEYBDEVENTF_KEYUP = 2;
[DllImport("User32.dll")]
public static extern int mouse_event(int dwFlags, int dx, int dy, int cButton, int dwExtra);
[DllImport("user32.dll", EntryPoint="keybd_event", CharSet=CharSet.Auto, ExactSpelling=true)]
public static extern void keybd_event(byte vk, byte scan, int flags, int extrainfo);

// shift down
keybd_event(KEYBDEVENTF_SHIFTVIRTUAL, KEYBDEVENTF_SHIFTSCANCODE, KEYBDEVENTF_KEYDOWN, 0);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
// shift up
keybd_event(KEYBDEVENTF_SHIFTVIRTUAL, KEYBDEVENTF_SHIFTSCANCODE, KEYBDEVENTF_KEYUP, 0);
于 2012-06-17T13:56:09.563 に答える