//src要分割的字符串,splitChar分割符 返回列表
vector<CString> split(CString src,CString splitChar)
{
vector<CString> outList;
int pos = 0;
while (true){
CString token = src.Tokenize(_T(splitChar), pos);
if (token.IsEmpty()) { break; }
outList.push_back(token);
}
return outList;
}
void PrintAllDlg::OnBnClickedButtonGetdata2()
{
//打开剪贴板
CString fromClipboard="";
if (OpenClipboard())
{
//char * buffer = NULL;
HANDLE hData = GetClipboardData(CF_TEXT);//文本
char * buffer = (char*)GlobalLock(hData);
fromClipboard = buffer;
GlobalUnlock(hData);
CloseClipboard();
}
if (fromClipboard.GetLength() > 0)
{
ShowInfo("剪贴板内容:\r\n"+ fromClipboard);
vector<CString> list = split(fromClipboard, "\r\n");
if (list.size() >= 3)
{
GetDlgItem(IDC_EDIT_SNsn)->SetWindowText(list[0]);
GetDlgItem(IDC_EDIT_IMEI1)->SetWindowText(list[1]);
GetDlgItem(IDC_EDIT_IMEI2)->SetWindowText(list[2]);
}
list.~vector();
}
else { ShowInfo("无文本内容"); }
}
#清空剪切板
cmd /c "echo off | clip"
C++
CString getClipboard()
{
//打开剪贴板
CString fromClipboard="";
if (OpenClipboard())
{
//char * buffer = NULL;
HANDLE hData = GetClipboardData(CF_TEXT);//文本
char * buffer = (char*)GlobalLock(hData);
fromClipboard = buffer;
GlobalUnlock(hData);
CloseClipboard();
}
return fromClipboard;
}
void SetClipboard(CString content)
{
HGLOBAL hMemBin = NULL;
PCHAR LockBin = NULL;
OpenClipboard(NULL);
EmptyClipboard();
hMemBin = GlobalAlloc(GMEM_MOVEABLE, content.GetLength() + 1);
LockBin = (PCHAR)GlobalLock(hMemBin);
RtlMoveMemory(LockBin, content.GetBuffer(), content.GetLength() + 1);
GlobalUnlock(hMemBin);
LockBin = NULL;
SetClipboardData(CF_TEXT, hMemBin);
CloseClipboard();
}