• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Работа с буфером обмена Windows, нажатие клавиш программно

  • Автор темы hosm
  • Дата начала
H

hosm

Работа с буфером обмена Windows
Копирование текста в буфер:
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 из темы Отобразить коллекцию
 
Последнее редактирование модератором:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!