利用易語言系統(tǒng)API監(jiān)視系統(tǒng)剪貼板
在編寫程序時,有時我們需要監(jiān)視系統(tǒng)剪貼板的內(nèi)容。使用系統(tǒng)API可以高效地實現(xiàn)這一功能,而不必依賴耗費系統(tǒng)資源的定時器。下面將介紹如何在易語言中利用系統(tǒng)API監(jiān)視系統(tǒng)剪貼板。 創(chuàng)建監(jiān)視與停止監(jiān)視子程序首
在編寫程序時,有時我們需要監(jiān)視系統(tǒng)剪貼板的內(nèi)容。使用系統(tǒng)API可以高效地實現(xiàn)這一功能,而不必依賴耗費系統(tǒng)資源的定時器。下面將介紹如何在易語言中利用系統(tǒng)API監(jiān)視系統(tǒng)剪貼板。
創(chuàng)建監(jiān)視與停止監(jiān)視子程序
首先,我們需要創(chuàng)建兩個子程序,一個用于開始監(jiān)視剪貼板,另一個用于停止監(jiān)視。通過調(diào)用這兩個子程序,我們可以在程序中靈活控制監(jiān)視剪貼板的啟動和停止。
導(dǎo)入所需API
在易語言中,導(dǎo)入以下代碼可以獲取所需的API函數(shù):
```
.版本 2
.DLL命令 API_監(jiān)視剪貼板, 整數(shù)型, "user32", "SetClipboardViewer", , 在CLIPBOARD瀏覽器鏈中加入窗口
.參數(shù) hwnd, 整數(shù)型
.DLL命令 API_停止監(jiān)視剪貼板, 整數(shù)型, "user32", "ChangeClipboardChain", , 從剪貼板查看窗口上刪除一個窗口
.參數(shù) hwnd, 整數(shù)型
.參數(shù) hWndNext, 整數(shù)型
.DLL命令 API_置窗口特征, 子程序指針, , "SetWindowLongA"
.參數(shù) 窗口句柄, 整數(shù)型
.參數(shù) 要置的特征, 整數(shù)型
.參數(shù) 新特征, 子程序指針
.DLL命令 API_執(zhí)行窗口程序, 整數(shù)型, , "CallWindowProcA"
.參數(shù) 程序指針, 子程序指針
.參數(shù) 窗口句柄, 整數(shù)型
.參數(shù) 消息, 整數(shù)型
.參數(shù) 參數(shù)1, 整數(shù)型
.參數(shù) 參數(shù)2, 整數(shù)型
.DLL命令 API_發(fā)送消息, 整數(shù)型, "user32", "SendMessageA", , 調(diào)用一個窗口的窗口函數(shù),將一條消息發(fā)給那個窗口
.參數(shù) 窗口句柄, 整數(shù)型, , 要接收消息的那個窗口的句柄
.參數(shù) 信息值, 整數(shù)型, , 消息的標(biāo)識符
.參數(shù) 參數(shù)一, 整數(shù)型, , 具體取決于消息
.參數(shù) 參數(shù)二, 整數(shù)型, , 具體取決于消息
```
添加常量數(shù)據(jù)
為了完善監(jiān)視剪貼板的功能,我們還需要添加一些常量數(shù)據(jù):
```
.版本 2
.常量 WM_DESTROYCLIPBOARD, "775", , 當(dāng)調(diào)用ENPTYCLIPBOARD函數(shù)時發(fā)送此消息給剪貼板的所有者
.常量 WM_DRAWCLIPBOARD, "776", , 當(dāng)剪貼板的內(nèi)容變化時發(fā)送此消息給剪貼板觀察鏈的第一個窗口;它允許用剪貼板觀察窗口來
.常量 WM_CHANGECBCHAIN, "781", , 當(dāng)一個窗口從剪貼板觀察鏈中移去時發(fā)送此消息給剪貼板觀察鏈的第一個窗口
```
添加程序集變量
在程序集中添加兩個變量,以便在代碼中使用:
```
.版本 2
.程序集變量 默認(rèn)窗口程序, 子程序指針
.程序集變量 前一監(jiān)視句柄, 整數(shù)型
```
編寫開始監(jiān)視與停止監(jiān)視子程序
在開始監(jiān)視子程序中,添加以下代碼:
```
前一監(jiān)視句柄 API_監(jiān)視剪貼板(_啟動窗口.取窗口句柄())
默認(rèn)窗口程序 API_置窗口特征(_啟動窗口.取窗口句柄(), -4, 處理消息)
```
在停止監(jiān)視子程序中,添加以下代碼:
```
API_置窗口特征(_啟動窗口.取窗口句柄(), -4, 默認(rèn)窗口程序)
API_停止監(jiān)視剪貼板(_啟動窗口.取窗口句柄(), 前一監(jiān)視句柄)
```
通過調(diào)用“開始監(jiān)視”和“停止監(jiān)視”子程序,我們可以方便地在易語言程序中實現(xiàn)監(jiān)視系統(tǒng)剪貼板的功能。