.net - keybd_event 事件的问题
问题描述
$Signature = @"
[DllImport("user32.dll")]public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, uint dwExtraInfo);
"@
$keybd_event = Add-Type -MemberDefinition $Signature -Name "Win32keybd_event" -Namespace Win32Functions -PassThru
$VK_LSHIFT = 0xA0
$KEYEVENTF_EXTENDEDKEY = 0x0001
$KEYEVENTF_KEYUP = 0x0002
$keybd_event::keybd_event($VK_LSHIFT, 0, $KEYEVENTF_EXTENDEDKEY, 0)
sleep 2
$keybd_event::keybd_event($VK_LSHIFT, 0, $KEYEVENTF_KEYUP, 0)
我期望:按下 shift,等待 2 秒,松开 shift 按钮。
但代码完成后,shift 仍处于“向下”状态(尝试单击控制台或 ISE 中文本的某处)。(解决方法是shift+鼠标左键)
为什么会发生这种情况,如何解决并正确执行?
解决方案
推荐阅读
- node.js - 使用 Papaparse 将 JSON 转换为 CSV
- google-apps-script - Gmail 应用程序脚本:回复时执行功能
- node.js - Typeorm:查询以检查多对多关系中是否存在所有值?
- java - 使用 Java 查找按字母顺序排列的第一个字符串
- reactjs - 导航中如何根据 HOC 函数让 react 组件读取或编辑?
- javascript - 如何在 Discord.JS 中通过 ID 踢出 GuildMember?
- python - django.template.loaders.app_directories.Loader 不会在 installed_apps 中搜索模板
- assembly - 在原生 RISC-V 上构建我的汇编程序
- c - bash 直接执行溢出的字符
- c - CRC-16 输出消息检查