【語言-C++】 Clipboard(剪貼簿)1-監聽剪貼簿更新
阿新 • • 發佈:2019-01-03
監聽剪貼簿
C++原始碼
新增訊息
BEGIN_MESSAGE_MAP(CClipboardDlg, CDialogEx)
ON_WM_CLIPBOARDUPDATE()
END_MESSAGE_MAP()
新增監聽
BOOL CClipboardDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
AddClipboardFormatListener(this->GetSafeHwnd());
return TRUE; // 除非將焦點設定到控制元件,否則返回 TRUE
}
新增訊息處理
class CClipboardDlg : publicCDialogEx { public: afx_msg void OnClipboardUpdate(); }; void CClipboardDlg::OnClipboardUpdate() { OutputDebugString(_T("剪貼簿更新\n")); CDialogEx::OnClipboardUpdate(); }
測試
使用Ctrl+C複製檔案,看看輸出視窗是否有“剪貼簿更新”?
注意
如果出現如下圖所示“無法定位程式輸入點AddClipboardFormatListener於動態連線庫USER32.dll上。”的情況,建議使用::LoadLibrary和GetProcAddress函式手動載入一個與“C:\WINDOWS\system32\User32.dll”版本不一致新的DLL,可以去網上下載也可以從別的電腦系統裡面拷貝,一般情況您找到的User32.dll是無法替換“C:\WINDOWS\system32\User32.dll”,因為有太多的程式佔用了“C:\WINDOWS\system32\User32.dll”,所以想要替換這個dll一般都要重灌系統。所以放在自己程式的同一個目錄下就行了,如果還是載入失敗,很有可能你的系統不相容這個dll,如果不想安裝電腦請使用別的電腦。經測試xp上“5.1.2600.5512”不含有該介面函式,win7“6.1.7601.17514”擁有該介面函式。