0

私はこのプログラムを私の友人のために書きました。その目的は、コピーしたすべてのテキストをファイルに保存することです

私のPCではプログラムは正常に動作しますが、友人のPCではすべての行をコピーしません

#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;
}

コードは非常に単純なので説明は不要だと思います他の PC の同じ状況 [同じテキストをコピーしようとしましたが、うまくいきました] を再現できないので、コードにバグがあると思います

編集: 私の友人は Windows 8 64 ビットを使用しており、代わりに私は 7 を 64 ビットで使用していますが、これが問題でしょうか?

4

0 に答える 0