Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我正在制作一个自动点击器,我需要自定义它,使其仅在按住鼠标键时单击_C++ - Fatal编程技术网

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
在这种情况下。