房天下 > 房天下问答 > 业主生活 > 其他
  • vb 中按下ctrl键和松开ctrl的命令怎么写

    谢谢

    提问者:FLW500

    发布于2010-12-06

共1个回答
  • violetear 丨Lv 0
    在事件KeyDown和KeyUp中有个Shift。要判断Ctrl键是否按下,使用该常数。该参数用作位屏蔽。它可被用来测试任何键组合。CtrlDown = (Shift And VbCtrlMask) > 0ShiftDown = (Shift And vbShiftMask) > 0AltDown = (Shift And VbAltMask) > 0用命令按下和松开Ctrl键:使用API函数keybd_event。Const VK_CONTROL = &H11Const KEYEVENTF_EXTENDEDKEY = &H1Const KEYEVENTF_KEYUP = &H2Private Declare Sub keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)这个函数模拟了键盘行动bVk Byte,欲模拟的虚拟键码,API中定义了一些键值,用API Text View看看是否有你需要的。bScan Byte,键的OEM扫描码 dwFlags Long,零;或设为下述两个标志之一: KEYEVENTF_EXTENDEDKEY 指出是一个扩展键,而且在前面冠以0xE0代码 KEYEVENTF_KEYUP 模拟松开一个键 dwExtraInfo Long,通常不用的一个值。使用的时候一般没管,填0下面的代码是打开一个记事本,并发送Ctrl+O,使打开文件对话框出现Const VK_CONTROL = &H11Const KEYEVENTF_EXTENDEDKEY = &H1Const KEYEVENTF_KEYUP = &H2Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)Private Sub Form_Load() Shell "notepad.exe", vbNormalFocus '运行记事本程序 keybd_event VK_CONTROL, 0, 0, 0 '按下Ctrl键 keybd_event vbKeyO, 0, 0, 0 '按下字母O键 keybd_event VK_CONTROL, 0, KEYEVENTF_KEYUP, 0 '放开Ctrl键 keybd_event vbKeyO, 0, KEYEVENTF_KEYUP, 0 '放开字母O键End Sub
    +1 2010-12-07 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。