溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

易語言如何調(diào)用SetClipboardViewer的api實(shí)現(xiàn)剪貼版的內(nèi)容監(jiān)控

發(fā)布時(shí)間:2021-06-16 16:09:36 來源:億速云 閱讀:168 作者:小新 欄目:編程語言

小編給大家分享一下易語言如何調(diào)用SetClipboardViewer的api實(shí)現(xiàn)剪貼版的內(nèi)容監(jiān)控,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

DLL命令表

.版本 2
.DLL命令 加入剪貼板監(jiān)視鏈_d, 整數(shù)型, "user32.dll", "SetClipboardViewer", 公開, 成功,返回值將標(biāo)識(shí)剪貼板查看器鏈中的下一個(gè)窗口。如果出現(xiàn)錯(cuò)誤或剪貼板查看器鏈中沒有其他窗口,則返回值為空。( hwndNextViewer 將為 NULL。)
  .參數(shù) 窗口句柄, 整數(shù)型, , hwnd 加入剪切板監(jiān)視鏈中窗口句柄
.DLL命令 設(shè)置窗口信息_d, 整數(shù)型, "user32", "SetWindowLongA", 公開, 在窗口結(jié)構(gòu)中為指定的窗口設(shè)置信息 指定數(shù)據(jù)的前一個(gè)值
  .參數(shù) 窗口句柄, 整數(shù)型, , hwnd,欲為其取得信息的窗口的句柄
  .參數(shù) 窗口信息值, 整數(shù)型, , nIndex,請(qǐng)參考GetWindowLong函數(shù)的nIndex參數(shù)的說明
  .參數(shù) 窗口信息新值, 整數(shù)型, , dwNewLong,由nIndex指定的窗口信息的新值
.DLL命令 發(fā)送消息_d, 整數(shù)型, "user32", "SendMessageA", 公開, 調(diào)用一個(gè)窗口的窗口函數(shù),將一條消息發(fā)給那個(gè)窗口。
  .參數(shù) 窗口句柄, 整數(shù)型, , hwnd,要接收消息的那個(gè)窗口的句柄
  .參數(shù) 信息值, 整數(shù)型, , wMsg,消息的標(biāo)識(shí)符
  .參數(shù) 參數(shù)一, 整數(shù)型, , wParam,具體取決于消息
  .參數(shù) 參數(shù)二, 整數(shù)型, , lParam,具體取決于消息;
.DLL命令 消息信息傳送_d, 整數(shù)型, "user32", "CallWindowProcA", 公開, 返回值指定了消息處理結(jié)果,它與發(fā)送的消息有關(guān)。
  .參數(shù) lpPrevWndFunc, 整數(shù)型, , 前一窗口函數(shù)地址
  .參數(shù) hwnd, 整數(shù)型, , 指向接收消息的窗口過程的句柄
  .參數(shù) msg, 整數(shù)型, , 消息類型
  .參數(shù) wParam, 整數(shù)型, , 指定其余的、消息特定的信息。該參數(shù)的內(nèi)容與Msg參數(shù)值有關(guān)
  .參數(shù) lParam, 整數(shù)型, , 指定其余的、消息特定的信息。該參數(shù)的內(nèi)容與Msg參數(shù)值有關(guān)。
.DLL命令 移除剪貼板監(jiān)視鏈_d, 整數(shù)型, "user32.dll", "ChangeClipboardChain", 公開, 從剪貼板查看窗口上刪除一個(gè)窗口 將剪貼的連接從一個(gè)句柄轉(zhuǎn)到下一個(gè)句柄。
  .參數(shù) 窗口句柄, 整數(shù)型, , hWndRemove表示從剪貼板監(jiān)視鏈中移除的窗口句柄。 
  .參數(shù) 下一個(gè)窗口句柄, 整數(shù)型, , hWndNewNext表示觀察鏈中下一個(gè)窗口的句柄。 SetClipboardViewer 的返回值

監(jiān)視剪貼板的代碼

.版本 2
.程序集 窗口程序集_啟動(dòng)窗口
.程序集變量 下一個(gè)窗口1, 整數(shù)型
.程序集變量 前一窗口1, 整數(shù)型
.程序集變量 窗口句柄1, 整數(shù)型
.程序集變量 下一個(gè)窗口2, 整數(shù)型
.程序集變量 前一窗口2, 整數(shù)型
.程序集變量 窗口句柄2, 整數(shù)型
.程序集變量 下一個(gè)窗口3, 整數(shù)型
.程序集變量 前一窗口3, 整數(shù)型
.程序集變量 窗口句柄3, 整數(shù)型
.子程序 __啟動(dòng)窗口_創(chuàng)建完畢
窗口句柄1 = 標(biāo)簽1.取窗口句柄 ()
窗口句柄2 = 標(biāo)簽2.取窗口句柄 ()
窗口句柄3 = 標(biāo)簽3.取窗口句柄 ()
前一窗口1 = 設(shè)置窗口信息_d (窗口句柄1, -4, 到整數(shù) (&消息處理子程序1))
前一窗口2 = 設(shè)置窗口信息_d (窗口句柄2, -4, 到整數(shù) (&消息處理子程序2))
前一窗口3 = 設(shè)置窗口信息_d (窗口句柄3, -4, 到整數(shù) (&消息處理子程序3))
標(biāo)簽1.標(biāo)題 = “窗口句柄; ” + 到文本 (窗口句柄1) + #換行符
標(biāo)簽2.標(biāo)題 = “窗口句柄; ” + 到文本 (窗口句柄2) + #換行符
標(biāo)簽3.標(biāo)題 = “窗口句柄; ” + 到文本 (窗口句柄3) + #換行符
.子程序 監(jiān)視剪貼板1
下一個(gè)窗口1 = 加入剪貼板監(jiān)視鏈_d (窗口句柄1)
標(biāo)簽1.標(biāo)題 = 標(biāo)簽1.標(biāo)題 + #換行符 + “下一個(gè)窗口; ” + 到文本 (下一個(gè)窗口1)
標(biāo)簽1.文本顏色 = #紅褐
.子程序 取消剪貼板監(jiān)視1
移除剪貼板監(jiān)視鏈_d (窗口句柄1, 下一個(gè)窗口1) ' 從觀察鏈中刪除本觀察窗口
標(biāo)簽1.文本顏色 = #黑色
.子程序 監(jiān)視剪貼板2
下一個(gè)窗口2 = 加入剪貼板監(jiān)視鏈_d (窗口句柄2)
標(biāo)簽2.標(biāo)題 = 標(biāo)簽2.標(biāo)題 + #換行符 + “下一個(gè)窗口; ” + 到文本 (下一個(gè)窗口2)
標(biāo)簽2.文本顏色 = #紅褐
.子程序 取消剪貼板監(jiān)視2
移除剪貼板監(jiān)視鏈_d (窗口句柄2, 下一個(gè)窗口2) ' 從觀察鏈中刪除本觀察窗口
標(biāo)簽2.文本顏色 = #黑色
.子程序 監(jiān)視剪貼板3
下一個(gè)窗口3 = 加入剪貼板監(jiān)視鏈_d (窗口句柄3)
標(biāo)簽3.標(biāo)題 = 標(biāo)簽3.標(biāo)題 + #換行符 + “下一個(gè)窗口; ” + 到文本 (下一個(gè)窗口3)
標(biāo)簽3.文本顏色 = #紅褐
.子程序 取消剪貼板監(jiān)視3
移除剪貼板監(jiān)視鏈_d (窗口句柄3, 下一個(gè)窗口3) ' 從觀察鏈中刪除本觀察窗口
標(biāo)簽3.文本顏色 = #黑色
.子程序 消息處理子程序1, 整數(shù)型, , 消息處理子程序,
.參數(shù) 窗口句柄_, 整數(shù)型, , hwnd 接收該消息的窗口句柄。
.參數(shù) 消息_, 整數(shù)型, , uMsg 消息標(biāo)識(shí) 消息值
.參數(shù) 消息參數(shù)1, 整數(shù)型, , wParam
.參數(shù) 消息參數(shù)2, 整數(shù)型, , lParam
.判斷開始 (消息_ = 2) ' 判斷父窗口是否將被銷毀 ( WM_DESTROY 2 2 )
  移除剪貼板監(jiān)視鏈_d (窗口句柄1, 下一個(gè)窗口1)
.判斷 (消息_ = 776) ' 判斷剪貼板內(nèi)容是否發(fā)生變化 WM_DRAWCLIPBOARD
  .如果真 (下一個(gè)窗口1 ≠ 0) ' 將 #WM_DRAWCLIPBOARD 消息傳遞給下一個(gè)觀察鏈中的窗口
    發(fā)送消息_d (下一個(gè)窗口1, 消息_, 消息參數(shù)1, 消息參數(shù)2)
  .如果真結(jié)束
  標(biāo)簽11.標(biāo)題 = 取剪輯板文本 ()
.判斷 (消息_ = 781) ' WM_CHANGECBCHAIN
  ' 當(dāng)程序調(diào)用 ChangeClipboardChain 時(shí),Windows 會(huì)向當(dāng)前剪貼板查看器發(fā)送一個(gè) WM_CHANGECBCHAIN 消息。該消息的 wParam 參數(shù)是要從鏈里退出的窗口的句柄(即 ChangeClipboardChain 的第一個(gè)參數(shù)),lParam 是將要退出的窗口的下一個(gè)剪貼板查看器的窗口句柄(即 ChangeClipboardChain 的第二個(gè)參數(shù))。
  ' 當(dāng)你的程序收到了 WM_CHANGECBCHAIN 消息,則必須檢查 wParam 是否等于你保存的 hwndNextViewer 值。如果相等,你的程序必須把 hwndNextViewer 設(shè)為 lParam。這個(gè)操作確保將來你得到的任何 WM_CHANGECBCHAIN 消息不會(huì)被發(fā)送給從鏈里退出的那個(gè)窗口。如果 wParam 不等于 hwndNextViewer,并且 hwndNextViewer 不為 NULL,就把消息發(fā)送給下一個(gè)剪貼板查看器:
  .判斷開始 (消息參數(shù)1 = 下一個(gè)窗口1)
    下一個(gè)窗口1 = 消息參數(shù)2
  .判斷 (下一個(gè)窗口1 ≠ 0)
    發(fā)送消息_d (下一個(gè)窗口1, 消息_, 消息參數(shù)1, 消息參數(shù)2)
  .默認(rèn)
  .判斷結(jié)束
.默認(rèn)
.判斷結(jié)束
返回 (消息信息傳送_d (前一窗口1, 窗口句柄_, 消息_, 消息參數(shù)1, 消息參數(shù)2)) ' 將未處理的消息交由原窗口程序處理
.子程序 消息處理子程序2, 整數(shù)型, , 消息處理子程序,
.參數(shù) 窗口句柄_, 整數(shù)型, , hwnd 接收該消息的窗口句柄。
.參數(shù) 消息_, 整數(shù)型, , uMsg 消息標(biāo)識(shí) 消息值
.參數(shù) 消息參數(shù)1, 整數(shù)型, , wParam
.參數(shù) 消息參數(shù)2, 整數(shù)型, , lParam
.判斷開始 (消息_ = 2) ' 判斷父窗口是否將被銷毀
  移除剪貼板監(jiān)視鏈_d (窗口句柄2, 下一個(gè)窗口2)
.判斷 (消息_ = 776) ' 判斷剪貼板內(nèi)容是否發(fā)生變化 WM_DRAWCLIPBOARD
  .如果真 (下一個(gè)窗口2 ≠ 0)
    發(fā)送消息_d (下一個(gè)窗口2, 消息_, 消息參數(shù)1, 消息參數(shù)2)
  .如果真結(jié)束
  標(biāo)簽22.標(biāo)題 = 取剪輯板文本 ()
.判斷 (消息_ = 781) ' WM_CHANGECBCHAIN
  .判斷開始 (消息參數(shù)1 = 下一個(gè)窗口2)
    下一個(gè)窗口2 = 消息參數(shù)2
  .判斷 (下一個(gè)窗口2 ≠ 0)
    發(fā)送消息_d (下一個(gè)窗口2, 消息_, 消息參數(shù)1, 消息參數(shù)2)
  .默認(rèn)
  .判斷結(jié)束
.默認(rèn)
.判斷結(jié)束
返回 (消息信息傳送_d (前一窗口2, 窗口句柄_, 消息_, 消息參數(shù)1, 消息參數(shù)2)) ' 將未處理的消息交由原窗口程序處理
.子程序 消息處理子程序3, 整數(shù)型, , 消息處理子程序,
.參數(shù) 窗口句柄_, 整數(shù)型, , hwnd 接收該消息的窗口句柄。
.參數(shù) 消息_, 整數(shù)型, , uMsg 消息標(biāo)識(shí) 消息值
.參數(shù) 消息參數(shù)1, 整數(shù)型, , wParam
.參數(shù) 消息參數(shù)2, 整數(shù)型, , lParam
.判斷開始 (消息_ = 2) ' 判斷父窗口是否將被銷毀
  移除剪貼板監(jiān)視鏈_d (窗口句柄3, 下一個(gè)窗口3)
.判斷 (消息_ = 776) ' 判斷剪貼板內(nèi)容是否發(fā)生變化 WM_DRAWCLIPBOARD
  .如果真 (下一個(gè)窗口3 ≠ 0)
    發(fā)送消息_d (下一個(gè)窗口3, 消息_, 消息參數(shù)1, 消息參數(shù)2)
  .如果真結(jié)束
  標(biāo)簽33.標(biāo)題 = 取剪輯板文本 ()
.判斷 (消息_ = 781) ' WM_CHANGECBCHAIN
  .判斷開始 (消息參數(shù)1 = 下一個(gè)窗口3)
    下一個(gè)窗口3 = 消息參數(shù)2
  .判斷 (下一個(gè)窗口3 ≠ 0)
    發(fā)送消息_d (下一個(gè)窗口3, 消息_, 消息參數(shù)1, 消息參數(shù)2)
  .默認(rèn)
  .判斷結(jié)束
.默認(rèn)
.判斷結(jié)束
返回 (消息信息傳送_d (前一窗口3, 窗口句柄_, 消息_, 消息參數(shù)1, 消息參數(shù)2)) ' 將未處理的消息交由原窗口程序處理
.子程序 _按鈕監(jiān)視1_被單擊
監(jiān)視剪貼板1 ()
按鈕監(jiān)視1.禁止 = 真
按鈕取消監(jiān)視1.禁止 = 假
.子程序 _按鈕取消監(jiān)視1_被單擊
取消剪貼板監(jiān)視1 ()
按鈕監(jiān)視1.禁止 = 假
按鈕取消監(jiān)視1.禁止 = 真
.子程序 _按鈕監(jiān)視2_被單擊
監(jiān)視剪貼板2 ()
按鈕監(jiān)視2.禁止 = 真
按鈕取消監(jiān)視2.禁止 = 假
.子程序 _按鈕取消監(jiān)視2_被單擊
取消剪貼板監(jiān)視2 ()
按鈕監(jiān)視2.禁止 = 假
按鈕取消監(jiān)視2.禁止 = 真
.子程序 _按鈕監(jiān)視3_被單擊
監(jiān)視剪貼板3 ()
按鈕監(jiān)視3.禁止 = 真
按鈕取消監(jiān)視3.禁止 = 假
.子程序 _按鈕取消監(jiān)視3_被單擊
取消剪貼板監(jiān)視3 ()
按鈕監(jiān)視3.禁止 = 假
按鈕取消監(jiān)視3.禁止 = 真

運(yùn)行結(jié)果:

易語言如何調(diào)用SetClipboardViewer的api實(shí)現(xiàn)剪貼版的內(nèi)容監(jiān)控

看完了這篇文章,相信你對(duì)“易語言如何調(diào)用SetClipboardViewer的api實(shí)現(xiàn)剪貼版的內(nèi)容監(jiān)控”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI