最近开发了一个向QQ好友自动发送消息的程序,功能如下:
1、可以管理要发送的消息。
2、可以管理要发送的用户,按组进行分类。
3、自动发送消息,灵活的时间间隔设置。
4、发送消息支持文字、图片。
5、软件源码是利用鼠标和键盘模拟实现、不改变发送消息的目标软件。
6、源码语言是c++,开发工具是VS2019。
软件界面如下:
无论是发送图片还是发送文字,都是借助剪贴板,核心代码如下:
void CAutoSecretaryDlg::handlePastAction(CAction* pAc, CAutoSecretaryDlg* pDlg)
{
//AfxMessageBox(_T("past"));
CPastAction* pObj = (CPastAction*)pAc;
int type = pObj->getConType();
CString strSendCon = _T("");
bool bIsPic = false;
if (type == 1) {
strSendCon = pDlg->m_curSendTargetName;
}
else {
strSendCon = pDlg->m_curSendCon;
if (_tcsncmp(strSendCon.GetBuffer(0), _T("[2]"), 3) == 0)
{
bIsPic = true;
}
TCHAR* strPos = _tcschr(strSendCon.GetBuffer(0) + 3, ']'); // 把前面的类型和空闲时间去掉
strSendCon = strPos + 1;
}
if (OpenClipboard())
{
EmptyClipboard();
HANDLE hClip = NULL;
if (type == 2 && bIsPic) // 发送内容,且为图片
{
VERIFY(SetClipboardData(CF_BITMAP, LoadImage(NULL, strSendCon, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_DEFAULTSIZE)));
CloseClipboard();
}
else {
USES_CONVERSION;//声明标示符
hClip = GlobalAlloc(GMEM_MOVEABLE, strSendCon.GetLength() * sizeof(TCHAR) + 1);
CHAR* pBuf = (CHAR*)GlobalLock(hClip);
memset(pBuf, 0, strSendCon.GetLength() * sizeof(TCHAR) + 1);
//AfxMessageBox(m_curSendTargetName.GetBuffer(0));
char* pChStr2 = W2A(strSendCon);
memcpy(pBuf, pChStr2, strSendCon.GetLength() * sizeof(TCHAR));
GlobalUnlock(hClip);
SetClipboardData(CF_TEXT, hClip);
}
CloseClipboard();
//AttachThreadInput(GetWindowThreadProcessId(m_hWndActive, NULL), GetCurrentThreadId(), TRUE);
//::SetForegroundWindow(m_hWndActive);
//::BringWindowToTop(m_hWndActive);
Sleep(1000);
//keybd_event(VK_CONTROL, 0, 0, 0);
//keybd_event('V', 0, 0, 0);
//Sleep(100);
//keybd_event('V', 0, KEYEVENTF_KEYUP, 0);
//keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
INPUT input[4];
memset(input, 0, sizeof(input));
//设置模拟键盘输入
input[0].type = input[1].type = input[2].type = input[3].type = INPUT_KEYBOARD;
input[0].ki.wVk = input[2].ki.wVk = VK_CONTROL;
input[1].ki.wVk = input[3].ki.wVk = 'V';
// 释放按键,这非常重要
input[0].ki.dwFlags = input[1].ki.dwFlags = 0;
input[2].ki.dwFlags = input[3].ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(4, input, sizeof(INPUT));
SleepEx(1000, false);
//AfxMessageBox(_T("DDDDD"));
GlobalFree(hClip);
}
}
代码自动发送消息是针对QQ,如果要改成钉钉、或者微信等其他及时通信软件,只需要做少量调整即可。
如果需要整个工具的源码,可以联系我QQ(395702361)。
注意,工具代码仅用于学习和交流,编译出的软件请勿用于发送非法信息,否则后果自负。