小编gee*_*n92的帖子

SendInput 不适用于按住键 C++

我有一段代码,它使用 SendInput 发送按键,但当我想长时间按住某个键时它不起作用(例如,长时间按住“a”会在记事本中返回“aaaaaaaaa”)。

现在我已经查遍了谷歌,我能看到解决这个问题的唯一方法是如果我想要长时间保留,则继续发送输入。我不想这样做,因为这只会模拟“a”被一遍又一遍地按下。

keyboard.wVk = 0;
keyboard.wScan = MapVirtualKey(key, 0);

keyboard.dwFlags = KEYEVENTF_SCANCODE;

if (index_vector_no)
    pressed[index_vector_no] = true;

keyboard.dwExtraInfo = 0;

input.type = INPUT_KEYBOARD;
input.ki = keyboard;

SendInput(1, &input, sizeof (input));
Run Code Online (Sandbox Code Playgroud)

所以我想知道以下问题的一些答案:

A)我是否正确地认为使用 SendInput 没有办法解决这个问题,为什么它不能长时间保持?

B) 成功发送按键按下和按键抬起信号的替代方法是什么?最好将密钥发送到窗口,而不仅仅是发送到特定的应用程序。

C) 是否有一个好的轻量级 C++ 库可以用来处理全局键盘和鼠标模拟?

提前致谢!=)

编辑:看看这篇文章以了解我的问题的更多详细信息:http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_20833788.html

c++ simulator keydown sendinput

5
推荐指数
1
解决办法
4125
查看次数

在C中通过引用传递char数组

嗨,我真的无法理解这一点.我基本上试图通过将输出数组作为参数传递来从函数返回一个char数组.这是我到目前为止:

功能:

int GetComputerName(char *name, char *ip_address){
    *name = "testing";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

并称之为:

char comp_name[50];
GetComputerName(&comp_name, serverIP);
printf("\n\n name: %s\n\n", comp_name);
Run Code Online (Sandbox Code Playgroud)

我已经尝试切换和交换*和&以查看什么会起作用并且已经阅读指针和内容但我认为应该发生的事实实际发生的事情是两个非常不同的事情现在我认为我已经混淆了自己当我开始!! 大声笑

有人可以帮助我解释一下这样做的正确方法是什么?!

在此先感谢=)

c arrays reference char

3
推荐指数
1
解决办法
2万
查看次数

pl/sql中是否有BEFORE SELECT触发器?

您好我使用sqldeveloper连接到oracle数据库.

我的senario是我的数据库中有一个客户表,start_date其中包含一个日期字段,该字段包含用户注册日期和调用的"布尔"字段is_member.每个会员资格仅持续一年,is_member如果是,则为假SYSDATE > start_date + 1year.

我想is_member在用户调用select语句之前检查用户是否仍然是成员(如果没有则更改).这可能吗?

如果没有人有任何关于如何保持该is_member领域最新的想法?你可以做一个每天调用一次的触发器来查看会员资格是否已经过期?

谢谢你的推荐!=]

sql oracle triggers plsql

2
推荐指数
1
解决办法
1万
查看次数

socket不能用作函数

嗨,我已经完成了Java和C#,并且最近在Linux环境中使用C/C++编写了一个模块.我已决定在Windows中用C++创建一个简单的UDP服务器,我也是新手,但在编码方面并不是一个完整的新手.我看了一些例子,这一切似乎与这一行不同:

SOCKET socket = socket(AF_INET, SOCK_DGRAM, 0);
Run Code Online (Sandbox Code Playgroud)

当我在Netbeans中编译它时,它会出现以下错误消息:

classUDPServer.cpp: In constructor 'UDPServer::UDPServer()':
classUDPServer.cpp:35: error: '((UDPServer*)this)->UDPServer::socket' cannot be used as a function
    make[2]: *** [build/Debug/MinGW-Windows/classUDPServer.o] Error 1
    make[1]: *** [.build-conf] Error 2
    make: *** [.build-impl] Error 2
Run Code Online (Sandbox Code Playgroud)

我同时包含winsock2.h和iostream.

任何人都可以帮我解决这个错误吗?

提前致谢!

c++ udp winsock2

0
推荐指数
1
解决办法
1403
查看次数

标签 统计

c++ ×2

arrays ×1

c ×1

char ×1

keydown ×1

oracle ×1

plsql ×1

reference ×1

sendinput ×1

simulator ×1

sql ×1

triggers ×1

udp ×1

winsock2 ×1