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

Тема в разделе "Работа с API", создана пользователем hosm, 1 окт 2010.

  1. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Работа с буфером обмена Windows
    Вот код по переносу запроса в буфер. Мб будет полезно.

    Код (LotusScript):
    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

    Const CF_TEXT = &H001
    Const CF_LOCALE = 16

    'queryString - СТРОКА С ЗАПРОСОМ

    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(queryString)+1))
    'lock global storage
    ptr = GlobalLock (ghand)
    'copy contense of field to global storage
    ptr = lstrcpy (ptr, queryString)
    '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()
    Программное нажатие клавиш.
    Нажатие Enter:

    Код (LotusScript):
     
    Declare Sub keybd_event Lib "user32.dll" (Byval bVk As Integer, Byval bScan As Integer, _
    Byval dwflags As Long, Byval dwextrainfo As Long)

    Sub Initialize
    keybd_event 13,0,0,0  
    keybd_event 13,0,2,0
    End Sub
    Код iki из темы Отобразить коллекцию
     
Загрузка...
Похожие Темы - Работа буфером обмена
  1. Andrey Kha
    Ответов:
    0
    Просмотров:
    17
  2. Hoasker
    Ответов:
    0
    Просмотров:
    63
  3. garri671
    Ответов:
    0
    Просмотров:
    50
  4. lelik200969
    Ответов:
    0
    Просмотров:
    49
  5. Kozolick
    Ответов:
    0
    Просмотров:
    135

Поделиться этой страницей