H
hosm
Работа с буфером обмена Windows
Копирование текста в буфер:
Программное нажатие клавиш.
Нажатие Enter:
Код iki из темы Отобразить коллекцию
Копирование текста в буфер:
Visual Basic:
Declare Function OpenClipboard Lib "User32.dll" Alias "OpenClipboard" (Byval hWnd As Long) As Long
Declare Function EmptyClipboard Lib "User32.dll" Alias "EmptyClipboard" () As Long
Declare Function SetClipboardData Lib "User32.dll" Alias "SetClipboardData" (Byval wFormat As Integer,Byval hAnsiText As Long) As String
Declare Function CloseClipboard Lib "User32.dll" Alias "CloseClipboard" () As Long
Declare Function GlobalAlloc Lib "Kernel32.dll" Alias "GlobalAlloc" (Byval wFlags As Long, Byval dwBytes As Long) As Long
Declare Function GlobalLock Lib "Kernel32.dll" Alias "GlobalLock" (Byval hMem As Long) As Long
Declare Function GlobalUnlock Lib "Kernel32.dll" Alias "GlobalUnlock" (Byval hMem As Long) As Long
Declare Function lstrcpy Lib "kernel32.dll" (Byval lpString1 As Any, Byval lpString2 As Any) As Long
Sub SetClipboardText(sText As String)
Const CF_TEXT = &H001
Const CF_LOCALE = 16
Dim ptr As Long, ghand As Long, handle As Long
Dim ptrlocale As Long, ghandlocale As Long, handlelocale As Long
'get global storage for field contense
ghand = GlobalAlloc(0, (Len(sText) + 1))
'lock global storage
ptr = GlobalLock(ghand)
'copy contense of field to global storage
ptr = lstrcpy(ptr, sText)
'free global storage
Call GlobalUnlock(ghand)
'проблема при заполнении не русской раскладкой, поэтому записываем русскую локаль в буфер
ghandlocale = GlobalAlloc(0, 4)
ptrlocale = GlobalLock(ghandlocale)
ptrlocale = lstrcpy(ptrlocale, Cstr(0000419))
Call GlobalUnlock(ghandlocale)
'open clipboard
Call OpenClipboard(0)
Call EmptyClipboard()
'write to clipboard
Call SetClipboardData(CF_TEXT, ptr)
Call SetClipboardData(CF_LOCALE, ptrlocale)
'close clipboard
Call CloseClipboard()
End Sub
Программное нажатие клавиш.
Нажатие Enter:
Visual Basic:
Sub pressEnterKey()
Declare Sub keybd_event Lib "user32.dll" (Byval bVk As Integer, Byval bScan As Integer, Byval dwflags As Long, Byval dwextrainfo As Long)
keybd_event 13, 0, 0, 0
keybd_event 13, 0, 2, 0
End Sub
Код iki из темы Отобразить коллекцию
Последнее редактирование модератором: