在我的电脑上程序工作正常,但在我的朋友电脑上它不会复制所有行
#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位而不是64位使用7,可能是这个问题吗?