Код, работающий с буфером обмена Windows, не работает на каком-либо компьютере

я написал эту программу для моего друга
Его цель — сохранить каждый текст, который вы копируете, в файл.

На моем компьютере программа работает нормально, но на моем другом компьютере она не скопирует все строки

#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 64bit вместо я использую 7 на 64bit, может быть это проблема?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]