C语言——QQ信息多次发送

代码如下:

#include<stdio.h>
#include<windows.h>
int main(void)
{
    
    
	int c = 0;
	printf("1.单体信息发送\n");
	printf("2.群体信息发送\n");
	scanf("%d", &c);
	if (c == 1)
	{
    
    
		char name[30] = {
    
     0 };
		int times = 0;
		printf("请输入你要发送的对象:");
		scanf("%s", name);
		printf("请输入发送次数:");
		scanf("%d", &times);

/**********************************************************************
					 FindWindowA
				LPCTSTR 【lpClassName】,	//指向类名的指针
				LPCTSTR 【lpWindowName】	//指向窗口名称的指针
		******************************************************/
		HWND qqhwnd = FindWindowA(NULL, name);//窗口句柄 获取主题ID

/**********************************************************************
					 SendMessageA 参数
			HWND 【的hWnd】,	//目标窗口的句柄
			UINT 【消息】,	//要发送的消息
			WPARAM 【wParam中】,	//第一个消息参数
			LPARAM 【lParam的】	//第二个消息参数
			);	
***********************************************************************/
		for (int i = 0; i < times; i++)
		{
    
    
			//WM_PASTE-->将剪贴板的当前内容复制到当前插入符位置的编辑控件
			SendMessageA(qqhwnd, WM_PASTE, 0, 0);	
			// WM_KEYDOWN-->消息将发送到具有键盘焦点的窗口		VK_RETURN-->回车键
			SendMessageA(qqhwnd, WM_KEYDOWN, VK_RETURN, 0);
		}
	}

	else if (c == 2)
	{
    
    
		HWND qqhwnd;
		qqhwnd = FindWindowA(NULL, "QQ");
		//MoveWindow(qqhwnd, 0, 0, 800, 800, true);

		while (1)
		{
    
    
			//1.选中主界面
			SetForegroundWindow(qqhwnd);//把窗口带到前台

			//2.2次-TAB
/**********************************************************************
					 keybd_event 参数
			BYTE 【BVK】	//虚拟键代码
			BYTE 【BSCAN】	//硬件扫描代码
			DWORD 【dwFlags中】,	//指定各种功能选项的标志
			DWORD 【dwExtraInfo】	//与键盘相关的其他数据
***********************************************************************/
			
			keybd_event(VK_TAB, 0, 0, 0);//VK-->虚拟钥匙代码
			Sleep(100);
			keybd_event(VK_TAB, 0, 2, 0);
			Sleep(100);
			keybd_event(VK_TAB, 0, 0, 0);
			Sleep(100);
			keybd_event(VK_TAB, 0, 2, 0);
			Sleep(100);
			keybd_event(VK_TAB, 0, 0, 0);
			Sleep(100);
			keybd_event(VK_TAB, 0, 2, 0);
			Sleep(100);
			keybd_event(VK_TAB, 0, 0, 0);
			Sleep(100);
			keybd_event(VK_TAB, 0, 2, 0);
			Sleep(100);
			keybd_event(VK_TAB, 0, 0, 0);
			Sleep(100);
			keybd_event(VK_TAB, 0, 2, 0);
			Sleep(100);

			//3.不断按回车-下键 打开对话框
			while (1)		
			{
    
    
				keybd_event(VK_DOWN, 0, 0, 0);
				Sleep(100);
				keybd_event(VK_DOWN, 0, 2, 0);
				Sleep(100);

				keybd_event(VK_RETURN, 0, 0, 0);
				Sleep(100);
				keybd_event(VK_RETURN, 0, 2, 0);
				Sleep(100);
				if (qqhwnd != GetForegroundWindow())//判断是否返回前台窗口的句柄
					break;
			}

			//4.粘贴
			keybd_event(VK_CONTROL, 0, 0, 0);
			Sleep(100);
			keybd_event('V', 0, 0, 0);
			Sleep(100);
			keybd_event('V', 0, 2, 0);
			Sleep(100);
			keybd_event(VK_CONTROL, 0, 2, 0);
			Sleep(100);

			//5.回车
			keybd_event(VK_RETURN, 0, 0, 0);
			Sleep(100);
			keybd_event(VK_RETURN, 0, 2, 0);
			Sleep(100);

			//6.关闭 对话框
			keybd_event(VK_ESCAPE, 0, 0, 0);
			Sleep(100);
			keybd_event(VK_ESCAPE, 0, 2, 0);
			Sleep(100);

			}
		}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_53391957/article/details/117386698