0

我为我的一个朋友编写了这个程序它的目的是将你复制的每一个文本保存到一个文件中

在我的电脑上,程序运行良好,但在我朋友的电脑上,它不会复制所有行

#include <windows.h>
#include <stdio.h>

using namespace std;

int GetKeyboardInput(HANDLE hstdin);

int main()
{
    HANDLE clip;
    char* lastClip = (char*) malloc(1024);
    char* currClip = (char*) malloc(1024);
    FILE* file;
    HANDLE hstdin;
    int key;

    hstdin = GetStdHandle(STD_INPUT_HANDLE);
    strcpy(lastClip, "");
    file = fopen("clipboard.txt", "w");
    if(file != NULL)
    {
        do
        {
            if (OpenClipboard(NULL))
                clip = GetClipboardData(CF_TEXT);

            if(clip != NULL)
            {
                if(strlen((char*)clip) <= MAXLEN)
                    strcpy(currClip, (char*) clip);
                else
                    strcpy(currClip, "String toooooo long");


                if (strcmp(currClip,lastClip) != 0)
                {
                    fprintf(file, "%s \n", currClip);
                    strcpy(lastClip, currClip);
                }
            }

            CloseClipboard();

            key = GetKeyboardInput(hstdin);
        }while (key != VK_ESCAPE);

        fclose(file);
    }
    else
        printf("Failed opening file");

    system("pause");

    return 0;
}

int GetKeyboardInput(HANDLE hstdin)
{
    INPUT_RECORD irInput;
    DWORD InputsRead = 0;

    ReadConsoleInput(hstdin, &irInput, 1, &InputsRead);
    return irInput.Event.KeyEvent.wVirtualKeyCode;
}

代码非常简单,所以我认为不需要解释

编辑:我的朋友使用 Windows 8 64 位而不是我使用 7 的 64 位,这可能是问题吗?

4

0 回答 0