2012-06-17 59 views
0

我想知道是否可以按住Shift键同时点击鼠标。单击时按住Shift?

它看起来simmilar这样: - 如果你可以模拟鼠标点击与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

回答

2

您应该能够使用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); 
+0

谢谢你,你没必要付出太多的努力到答案,但感谢大时间! – dotTutorials

+0

感谢这真的帮了我,一个问题..你在哪里找到我不能在谷歌做正确的查询keycodes。 – winthers

相关问题