使用SendInput模拟按键,代码如下:

#include "stdafx.h"
#include <windows.h>
#include <conio.h> #define KEY_TO_FIRE VK_RWIN int _tmain(int argc, _TCHAR* argv[])
{ _tprintf(_T("fire key...\n"));
INPUT keyEvent = {0}; keyEvent.type = INPUT_KEYBOARD;
keyEvent.ki.wVk = KEY_TO_FIRE;
keyEvent.ki.wScan = MapVirtualKey(KEY_TO_FIRE, 0);
keyEvent.ki.dwFlags |= KEYEVENTF_EXTENDEDKEY; if( 0 == SendInput(1, &keyEvent, sizeof(keyEvent)) )
{
_tprintf(_T("SendInput error: %u\n"), GetLastError());
} keyEvent.ki.dwFlags |= KEYEVENTF_KEYUP; if( 0 == SendInput(1, &keyEvent, sizeof(keyEvent)) )
{
_tprintf(_T("SendInput (UP) error: %u\n"), GetLastError());
} _tprintf(_T("wait 3s to fire again...\n"));
Sleep(3000); keyEvent.ki.dwFlags = KEYEVENTF_EXTENDEDKEY;
if( 0 == SendInput(1, &keyEvent, sizeof(keyEvent)) )
{
_tprintf(_T("SendInput error: %u\n"), GetLastError());
} keyEvent.ki.dwFlags |= KEYEVENTF_KEYUP; if( 0 == SendInput(1, &keyEvent, sizeof(keyEvent)) )
{
_tprintf(_T("SendInput (UP) error: %u\n"), GetLastError());
} _getch(); return 0;
}

发现Windows按键(VK_LWIN和VK_RWIN)死活出不来,查半天发现是360安全卫士的问题。它的驱动防护拦截了这个按键发送调用。

关闭驱动防护即可,如图中标注所示:

或者加入信任列表:

360管真心管得宽……

SendInput模拟Win(VK_LWIN)键的问题的更多相关文章

  1. SendInput模拟键盘输入的问题

    SendInput模拟键盘输入的问题  http://www.cnblogs.com/yedaoq/archive/2010/12/30/1922305.html 最近接触到这个函数,因此了解了一下, ...

  2. 发送WIN+SAPCE键,WINDOWS,空格键

    键盘代码部份转自:http://www.cnblogs.com/cpcpc/archive/2011/02/22/2123055.html 由于喜欢用CTRL+空格键切换输入法,在WIN8上有所不习惯 ...

  3. Win+Ctrl键设置

    转载:http://www.win7u.com/jc/9156.html Ctrl+V:这是Win10命令提示符里新增的, Win+Prt Sc:屏幕截图.按下该快捷键后,Win8系统教程.你知道wi ...

  4. VB用API模拟截屏键PrintScreen

    很多人用 SendKeys "{PRTSC}" 模拟截屏键 PrintScreen 的时候提示<错误:'70' 拒绝的权限>,于是经常遇到人问...干脆写下来 '声明 ...

  5. Linux Input子系统浅析(二)-- 模拟tp上报键值【转】

    转自:https://blog.csdn.net/xiaopangzi313/article/details/52383226 版权声明:本文为博主原创文章,未经博主允许不得转载. https://b ...

  6. win+L键失灵了怎么办?

    win+L组合键是比较常用的锁屏快捷键组合,一直用的好好的今天发现突然失灵. 百度大部分方法是改注册表的值,然而对我来说没有用. 最后,才搜到一个帖子说是 win键被锁住了. [解决方法]: Fn+w ...

  7. SendInput模拟键盘操作

    #include <windows.h> int main() { HWND parentHwnd, childHwnd; INPUT input[4]; parentHwnd = Fin ...

  8. “Win”组合键

    Windows组合键功能: 单独按下显示或隐藏 [开始] 功能表. +Break 显示 [系统内容] 对话方块. +D 显示桌面. +M 最小化所有的视窗. +Shift+M 还原最小化的视窗. +E ...

  9. Win+Tab键实现自定义程序列表间的窗口切换

    程序是用AutoHotkey语言写的, 说明: 以自己使用频率的顺序在ExeList自定义的程序间切换 切换可以以所有窗口切换,也可以按程序组切换(比如在word窗口间切换) 程序组可以分别定义排除的 ...

随机推荐

  1. C++全局和静态变量初始化

    转自:http://www.cnblogs.com/zhenjing/archive/2010/10/15/1852116.html 对于C语言的全局和静态变量,不管是否被初始化,其内存空间都是全局的 ...

  2. CentOS 7下关于systemd的一些唠叨话一:systemd的特点和使用

    摘要 近年来,Linux 系统的 init 进程经历了两次重大的演进,传统的 sysvinit 已经逐渐淡出历史舞台,新的 UpStart 和 systemd 各有特点,越来越多的 Linux 发行版 ...

  3. [jetbrains系列] 外链第三方库+代码补全设置

    jetbrains系列的IDE真的是太好用了,有种相见恨晚的感觉. 在开发过程中第三方库是必不可少的,在开发的时候如果有一个可以补全的IDE可以节省查文档的时间. 举个例子:给pycharm配pysp ...

  4. VB.NET中的除法运算符 与 C#中的除法运算符

    VB.NET中的除法运算符有两个:/(浮点除法).\(整数除法) C#中的除法运算符只有一个:/(除法) VB.NET中的除法运算符与C#中的除法运算符存在很大的差异,使用时注意区分. 关于VB.NE ...

  5. shader函数

    Intrinsic Functions (DirectX HLSL) The following table lists the intrinsic functions available in HL ...

  6. 使用spark与ElasticSearch交互

    使用 elasticsearch-hadoop 包,可在 github 中搜索到该项目 项目地址 example import org.elasticsearch.spark._ import org ...

  7. MySQL默认数据库

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

  8. android应用锁之获取前台进程包名方法

    通过以下方式来获取前台进程的包名: 1.android api 10-20 通过ActivityManager中getRunningTasks来获取. 2.android api 21- 22(部分没 ...

  9. VRP

    VRP系统命令采用分级保护方式,命令被划分为参观级.监控级.配置级.管理级4个级别. 参观级:网络诊断工具命令(ping.tracert).从本设备出发访问外部设备的命令(包括:Telnet客户端.S ...

  10. ImportError: No module named MySQLdb

    ImportError: No module named MySQLdb 该错误是源于我们没有安装Python连接MySQL所需的MySQLdb库而引起. python3.5下的解决方法ubuntu系 ...