为啥我的函数在调用时不起作用? [关闭]

Posted

技术标签:

【中文标题】为啥我的函数在调用时不起作用? [关闭]【英文标题】:Why iisn't my function working when it's called? [closed]为什么我的函数在调用时不起作用? [关闭] 【发布时间】:2015-01-19 07:08:26 【问题描述】:

所以我正在制作一个程序来模拟按键“a”,然后使用我的 Enter 键功能按 Enter,但是该功能不起作用。当我运行程序时,它会按下 a 键,但似乎函数 hitDaEnterKey 根本不起作用。我做错了什么?

#define WINVER 0x0500
#include <windows.h>



int hitDaEnterKey()

    INPUT ip;

    // Press and release Enter Key
    ip.ki.wVk = 0x0D;
    ip.ki.dwFlags = 0;
    SendInput(1, &ip, sizeof(INPUT));
    // release
    ip.ki.dwFlags = KEYEVENTF_KEYUP;
    SendInput(1, &ip, sizeof(INPUT)); 

    return 0;


int main()


    // This structure will be used to create the keyboard
    // input event.
    INPUT ip;


    Sleep(2500);

    // Set up a generic keyboard event.
    ip.type = INPUT_KEYBOARD;
    ip.ki.wScan = 0; // hardware scan code for key
    ip.ki.time = 0;
    ip.ki.dwExtraInfo = 0; 

    // Press the "A" key

    ip.ki.wVk = 0x41; // virtual-key code for the "a" key
    ip.ki.dwFlags = 0; // 0 for key press
    SendInput(1, &ip, sizeof(INPUT));

    // Release the "A" key

    ip.ki.dwFlags = KEYEVENTF_KEYUP; // KEYEVENTF_KEYUP for key release
    SendInput(1, &ip, sizeof(INPUT)); 

    hitDaEnterKey();

    return 0;

【问题讨论】:

如果不行就是代码坏了。 @SANICTHEHEDGEHOGOnononymus 请注意,由于您的问题不符合网站的质量标准,因此您收到了轻率/讽刺的 cmets。您可以尝试reading the FAQ 并改进您的问题,而不是称其他用户为“Sherlock”。 您没有在该函数中指定输入类型 【参考方案1】:
int hitDaEnterKey()

    INPUT ip;

    // Set up a generic keyboard event.
    ip.type = INPUT_KEYBOARD;
    ip.ki.wScan = 0; // hardware scan code for key
    ip.ki.time = 0;
    ip.ki.dwExtraInfo = 0;

    // Press and release Enter Key
    ip.ki.wVk = 0x0D;
    ip.ki.dwFlags = 0;
    SendInput(1, &ip, sizeof(INPUT));
    // release
    ip.ki.dwFlags = KEYEVENTF_KEYUP;
    SendInput(1, &ip, sizeof(INPUT)); 

    return 0;

    int hitDaEnterKey(INPUT *ip)
            
        // Press and release Enter Key
        ip->ki.wVk = 0x0D;
        ip->ki.dwFlags = 0;
        SendInput(1, ip, sizeof(INPUT));
        // release
        ip->ki.dwFlags = KEYEVENTF_KEYUP;
        SendInput(1, ip, sizeof(INPUT)); 

        return 0;
    

int main()


    // This structure will be used to create the keyboard
    // input event.
    INPUT ip;


    Sleep(2500);

    // Set up a generic keyboard event.
    ip.type = INPUT_KEYBOARD;
    ip.ki.wScan = 0; // hardware scan code for key
    ip.ki.time = 0;
    ip.ki.dwExtraInfo = 0; 

    // Press the "A" key

    ip.ki.wVk = 0x41; // virtual-key code for the "a" key
    ip.ki.dwFlags = 0; // 0 for key press
    SendInput(1, &ip, sizeof(INPUT));

    // Release the "A" key

    ip.ki.dwFlags = KEYEVENTF_KEYUP; // KEYEVENTF_KEYUP for key release
    SendInput(1, &ip, sizeof(INPUT)); 

    hitDaEnterKey(&ip);

    return 0;

【讨论】:

以上是关于为啥我的函数在调用时不起作用? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的基本指数函数不起作用? [关闭]

为啥我的 Google Maps API 请求在服务器上运行时不起作用

为啥我的 Pandas 引用多个列的“应用”函数不起作用? [关闭]

为啥 Desktop.Open() 在安装 MagicISO 时不起作用

为啥我的 Linux 编译的二进制文件在 Windows 上运行时不起作用?

为啥背景过渡:linear-gradient() 在悬停时不起作用?