C++ 我正在制作一个自动点击器,我需要自定义它,使其仅在按住鼠标键时单击
我会进入代码块,我会简单地把这样的东西C++ 我正在制作一个自动点击器,我需要自定义它,使其仅在按住鼠标键时单击,c++,C++,我会进入代码块,我会简单地把这样的东西 while (GetAsyncKeyState(VK_LBUTTON) { mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); } 这段代码的问题是:它一直发送LButton,因此程序继续,并且没有停止单击。我想知道是否有办法区分真正的鼠标点击和虚拟的鼠标点击。我花了一段时间,但现在开始!注意:我没有优化它的任何形状或形
while (GetAsyncKeyState(VK_LBUTTON) {
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
}
这段代码的问题是:它一直发送LButton,因此程序继续,并且没有停止单击。我想知道是否有办法区分真正的鼠标点击和虚拟的鼠标点击。我花了一段时间,但现在开始!注意:我没有优化它的任何形状或形式,所以你可能需要修改它
#include <iostream>
#include <Windows.h>
int main()
{
while (1)
{
if (GetAsyncKeyState(VK_LBUTTON)) {
keybd_event(VK_LBUTTON, 0x45, KEYEVENTF_KEYUP, 0);
while (!GetAsyncKeyState(VK_LBUTTON))
{
keybd_event(VK_LBUTTON, 0x45, 0, 0);
std::cout << "Click" << std::endl;
}
}
Sleep(100);
}
}
#包括
#包括
int main()
{
而(1)
{
if(GetAsyncKeyState(VK_LBUTTON)){
keybd_事件(VK_LBUTTON,0x45,KEYEVENTF_KEYUP,0);
而(!GetAsyncKeyState(VK_LBUTTON))
{
keybd_事件(VK_按钮,0x45,0,0);
std::cout花了我一段时间,但给你!注意:我没有以任何形式优化它,所以你可能需要修改它
#include <iostream>
#include <Windows.h>
int main()
{
while (1)
{
if (GetAsyncKeyState(VK_LBUTTON)) {
keybd_event(VK_LBUTTON, 0x45, KEYEVENTF_KEYUP, 0);
while (!GetAsyncKeyState(VK_LBUTTON))
{
keybd_event(VK_LBUTTON, 0x45, 0, 0);
std::cout << "Click" << std::endl;
}
}
Sleep(100);
}
}
#包括
#包括
int main()
{
而(1)
{
if(GetAsyncKeyState(VK_LBUTTON)){
keybd_事件(VK_LBUTTON,0x45,KEYEVENTF_KEYUP,0);
而(!GetAsyncKeyState(VK_LBUTTON))
{
keybd_事件(VK_按钮,0x45,0,0);
cout Kevin Duarte它也有同样的问题。如果你要在这样的循环中使用If,它就像一个while语句。我试过了,它也有同样的问题。Kevin Duarte它也有同样的问题。如果你要在这样的循环中使用If,它就像一个while语句。我试过了,它也有同样的问题。那个感叹号是什么在GetAsyncKeyState之前标记?我看到它是有效的,但我不明白为什么将“E”的虚拟代码与VK_LBUTTON一起使用?为什么在尝试编译它时没有出现错误?@SharkFooth我想我可能发布我的答案太快了。单击有时只起作用。我可能需要看看如何修复它。感叹号的意思是如果键是正确的没有被按住。尽管如此,你可以用一个功能切换出显示“点击”的部分,点击you@SharkFooth!
是“逻辑非”运算符,它翻转值的真实性。!true==false
和!false==true
。因为GetAsyncKeyState()
返回short
(意思是0
为false
且非零为true
),!GetAsyncKeyState(VK_LBUTTON)
是GetAsyncKeyState(VK_LBUTTON)的有效缩写==0
在这种情况下。GetAsyncKeyState之前的感叹号是什么?我看到它是有效的,但我不明白为什么将“E”的虚拟代码与VK_LBUTTON一起使用?为什么在尝试编译它时没有出现错误?@SharkFooth我想我可能发布我的答案太快了。单击有时只起作用。我可能需要看看如何编辑它修好它。感叹号的意思是如果钥匙没有被握住。尽管如此,你可以用一个功能来切换掉“点击”的部分,该功能可以点击you@SharkFooth!
是“逻辑非”运算符,它翻转值的真实性。!true==false
和!false==true
。由于GetAsyncKeyState()
返回一个short
(意思是0
为false,非零为true
),因此!GetAsyncKeyState(VK_LBUTTON)
是GetAsyncKeyState的有效缩写(VK_LBUTTON)==0
在这种情况下。