qq_sxaqsqw 2021-06-09 21:27 采纳率: 100%
浏览 26
已结题

运行程序时控制台自动粘贴粘贴版内容,使得程序无法获取正确输入

编译器:DEV C++15.5

代码描述:实时监测鼠标位置,假如鼠标右键,跳出循环

问题描述:跳出循环后控制台立即粘贴粘贴板内容,在存在输入函数的情况下,输入函数会读取粘贴的内容

#include<stdio.h>
#include<windows.h>
#include<stdbool.h>
#define lengths 100
#define wides 25

typedef struct p{
	int x;
	int y;
	bool argu;
}POS;
void Mouse(POS *pos);
int main(void)
{
	SetConsoleTitle("媒体库管理系统");
	POS *pos=(POS*)malloc(sizeof(POS));
	char ch[1000];
	while(true)
	{
		Mouse(pos);
		if(pos->argu)
			break;
	}
	COORD po={2,2};
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),po);
		printf("输入:");
	gets(ch);
	puts(ch);
}
void Mouse(POS *pos)
{
	pos->argu =false;
	POINT *mouse=(POINT*)malloc(sizeof(POINT)+64);
	GetCursorPos(mouse);
	
	LPRECT 	console=(LPRECT)malloc(sizeof(LPRECT)+64);
	HWND hwnd=FindWindow(NULL,"媒体库管理系统");
	GetWindowRect(hwnd,console);
	/*测试位置*/
	int x=mouse->x -console->left;
	int y=mouse->y -console->top;
	COORD p={0,wides+2};
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p);
		printf("鼠标相对控制台:%d %d   \n",x,y);
		printf("鼠标位置在控制台以实用数值(一个字符占八个单位长度)表示(近似):%d %d  ",x/8,y/8);//更精确的在指定位置输出
	/*结束*/
	if(GetAsyncKeyState(VK_RBUTTON))
	{
		pos->x=mouse->x -console->left;
		pos->y=mouse->y -console->top;
		pos->argu =true;
	}
}
  • 写回答

3条回答 默认 最新

  • 有问必答小助手 2021-06-10 16:11
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答

    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。

    ​​​​因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月28日
  • 已采纳回答 9月20日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀