4
我剛剛創建了一個MFC應用程序從剪貼板如何找到的所有文件的名稱從
AddClipboardFormatListener(AfxGetApp()->m_pMainWnd->m_hWnd);
LRESULT Cfile_trackerDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_CLIPBOARDUPDATE:
{
AfxBeginThread(FileArrival, NULL);
break;
}
case WM_CHANGECBCHAIN:
{
AfxBeginThread(FileArrival, NULL);
break;
}
}
return CDialog::WindowProc(message, wParam, lParam);
}
UINT FileArrival(LPVOID param)
{
TCHAR lpszFileName[MAX_PATH];
char *szTime;
time_t thistime;
OpenClipboard(0);
HGLOBAL hGlobal = (HGLOBAL)GetClipboardData(CF_HDROP);
if (hGlobal)
{
HDROP hDrop = (HDROP)GlobalLock(hGlobal);
if (hDrop)
{
time(&thistime);
szTime = ctime(&thistime);
DragQueryFile(hDrop, 0, lpszFileName, MAX_PATH);
WriteLog((char*)lpszFileName,1);
GlobalUnlock(hGlobal);
}
CloseClipboard();
}
return 0;
}
當我們複製1個文件,該代碼工作正常查找文件名剪貼板,但當我們複製多個文件只顯示第一個文件。是否有任何方法可以找出所有複製到剪貼板的文件名。
非常感謝它在這裏工作精細 –
原始指針和'malloc'在C++中沒有地方。 'vector'有什麼問題?有人已經寫了內存管理。你沒有理由再這樣做。 –
IInspectable
@IInspectable我添加了另一個使用C++特性的解決方案。第一種解決方案是繼續使用已經在項目中使用的編碼風格。 – InternetAussie