如何解决我使用 SendInput 函数有什么问题?
有一个应用程序在 Win 10 Ent IoT 触摸屏平板电脑上运行,可调整 LED 背光强度。按硬键盘或软键盘上的“PAGE UP”键或增加强度。 'PAGE DOWN' 降低强度。
为了让用户远离操作系统,我的 C++ 应用程序在主屏幕上有一个亮度 INC 和 DEC 按钮。这个想法是用户按下触摸屏上的按钮而不是调用 Windows 软键盘。
使用我在 stackoverflow 上找到的示例,我的 DEC 按钮处理程序代码如下所示。
INPUT input;
WORD vkey = VK_NEXT; //PAGE DOWN see Virtual-Key Codes in Winuser.h
input.type = INPUT_KEYBOARD;
input.ki.wScan = MapVirtualKey(vkey,MAPVK_VK_TO_VSC);
input.ki.time = 0;
input.ki.dwExtraInfo = 0;
input.ki.wVk = vkey;
input.ki.dwFlags = 0; // there is no KEYEVENTF_KEYDOWN
if( sendinput(1,&input,sizeof(INPUT)) == 0 )
// do GetLastError() here
input.ki.dwFlags = KEYEVENTF_KEYUP;
if( sendinput(1,sizeof(INPUT)) == 0 )
// do GetLastError() here
代码编译并链接,但按下按钮时屏幕强度不会改变。 sendinput 函数总是返回 1,从不返回 0。
我应该使用不同的函数吗?问题可能是因为我使用的是触摸屏吗?
解决方法
1 作为返回值听起来不错。根据{{3}},该函数返回它成功插入到键盘或鼠标输入流中的事件数。如果函数返回零,则输入已被另一个线程阻塞。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。