_ClipBoard_Open
Открывает буфер обмена и предотвращает его изменение другими приложениями
#include <Clipboard.au3>
_ClipBoard_Open($hOwner)
Параметры
$hOwner | Дескриптор окна для связи с открытым буфером обмена. Если этот параметр 0, то открытый буфер обмена связан с текущей задачей. |
Возвращаемое значение
Успех: | Возвращает True |
Ошибка: | Возвращает False |
Примечания
Эта функция не выполняется, если другое окно держит буфер обмена открытым. Вызывайте функцию _ClipBoard_Close после каждого успешного вызова этой функции. Окно, заданное параметром $hOwner не становится владельцем буфера обмена, пока не вызвана функция _ClipBoard_Empty. Если вы вызвали функцию _ClipBoard_Open с дескриптором равным 0, то _ClipBoard_Empty установит в качестве владельца буфера обмена значение 0, которое обречёт вызов функции _ClipBoard_SetData на провал.См. также
_ClipBoard_Close, _ClipBoard_Empty, _ClipBoard_EnumFormats, _ClipBoard_GetOpenWindow, _ClipBoard_SetDataExСм. также
Искать OpenClipboard в библиотеке MSDNПример
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <Clipboard.au3>
#include <WinAPI.au3>
Global $iMemo
_Main()
Func _Main()
Local $hGUI
; Создаёт GUI
$hGUI = GUICreate("Clipboard", 600, 400)
$iMemo = GUICtrlCreateEdit("", 2, 2, 596, 396, $WS_VSCROLL)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
GUISetState()
; Открывает буфер обмена
If _ClipBoard_Open($hGUI) Then
ShowData($hGUI)
; Закрывает буфер обмена
_ClipBoard_Close()
Else
_WinAPI_ShowError("Ошибка функции _ClipBoard_Open")
EndIf
; Цикл выполняется, пока окно не будет закрыто
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc ;==>_Main
; Показывает статистику буфера обмена
Func ShowData($hGUI)
MemoWrite("Дескриптор GUI ........: " & $hGUI)
MemoWrite("Владелец буфера .......: " & _ClipBoard_GetOwner())
MemoWrite("Окно открывшее буфер ..: " & _ClipBoard_GetOpenWindow())
MemoWrite("Clipboard sequence ....: " & _ClipBoard_GetSequenceNumber())
MemoWrite()
EndFunc ;==>ShowData
; Записывает строку в элемент для заметок
Func MemoWrite($sMessage = "")
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite