有时候复制的磁力链接并没有磁力头,而只有后面的内容,这个时候就必须给磁力链接添加开头magnet:xt=urn:btih:下载软件才能识别,如果经常需要这么做比较麻烦,于是我写了一个自动添加磁力头的小软件,运行即可自动添加,减少操作步骤。
直接上代码吧:
char* buffer = nullptr;
CString strFromClipboard;
if(OpenClipboard())
{
//将剪贴板文本复制到文本框
HANDLE hData = GetClipboardData(CF_TEXT);
char* buffer = (char*)GlobalLock(hData);
strFromClipboard = buffer;
int nLen = strFromClipboard.GetLength();
if (nLen > 0)
{
if (strFromClipboard.Find(_T("magnet:xt=urn:btih:")) == -1)
{
EmptyClipboard();
strFromClipboard = _T("magnet:xt=urn:btih:") + strFromClipboard;
size_t cbStr = (strFromClipboard.GetLength()+1)*sizeof(TCHAR);
HGLOBAL hData = GlobalAlloc(GMEM_MOVEABLE, cbStr);
memcpy_s(GlobalLock(hData), cbStr, strFromClipboard.LockBuffer(), cbStr);
strFromClipboard.UnlockBuffer();
UINT nFormat = (sizeof(TCHAR) == sizeof(WCHAR) ? CF_UNICODETEXT:CF_TEXT);
::SetClipboardData(nFormat, hData);
}
}
GlobalUnlock(hData);
CloseClipboard();
}