Страница: 1 |
Страница: 1 |
Вопрос: Скопировать фрагмент из другого окна...
Добавлено: 26.02.07 22:46
Автор вопроса: Сергей
Возможно, это плёвое дело, но у меня не пошло. Ситуация следующая: прога висит в трее, а окно IE активно. В этом окне выделен фрагмент, который необходимо передать проге для поиска в совершенно других файлах. Вызов идёт HotKey-глобалкой.
В лоб, при помощи функции SendInput, нажать Ctrl + C мне не удалось :-(. А "одиночные" нажатия клавиш срабатывают. Я пробовал сначала "нажимать" Ctrl, потом "нажимать" и "отпускать" C, а после - "отпускать" Ctrl. Но IE это было по-барабану. Подозреваю, что и в других окнах ситуация будет аналогичной (Мозила, например, не попёрла).
Те, кто сталкивался с этой проблемой, откликнитесь! Может, и вправду что-то не то делаю... Но мне кажется, что этот вариант "мёртвый". Существует ли другой способ?
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #1
Добавлено: 27.02.07 06:56
Читать документацию?
Пошли окну WM_COPY.
Номер ответа: 2
Автор ответа:
Сергей
Вопросов: 4
Ответов: 15
Профиль | | #2
Добавлено: 27.02.07 08:20
Привожу цитату из другого форума:
Я пробовал SendMessage(HWD,WM_COPY,0,0)
Но Это работает только для edit или combobox.
Адрес странички: http://forum.codenet.ru/showthread.php?threadid=17215
Как видите, проблема не такая уж простая . Попробовал SendMassageA - не катит, просто ничего в Clipboard не пишется.
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 27.02.07 09:45
Пойщи примеры скриншота экрана, только не через принтскрин, а по нормлаьному, GetDC итд... в нём вместо DC хендела поставь дс твоего окна...
Номер ответа: 4
Автор ответа:
Сергей
Вопросов: 4
Ответов: 15
Профиль | | #4
Добавлено: 27.02.07 12:03
Мне не всё понятно... Да, я получил контекст устройства (в данном случае, окна, в котором имеется выделенный фрагмент), но что делать дальше - не совсем понимаю. В найденых примерах использовалась BitBit - но мне не нужно изображение.
В справке вообще говорится, что пользоваться контекстом устройства можно для рисования и (посредством функции BitBit) копирования указанной области в Picturebox. Другие фукции не упоминаются.
DC, конечно, вещь необъятная, мог чего-нибудь пропустить, но пока решение проблемы откладывается .
Вот пример использования DC & BitBit, который я нашёл на http://subscribe.ru/archive/comp.soft.prog.vbnewsadvices/200506/08104449.html:
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As
Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Sub Form_Load()
 im DeskDС As Long
 eskDС = GetDC(GetDesktopWindow)
Picture1.Width = Screen.Width 'необходимо подогнать размер
Picture1.Height = Screen.Height 'PictureBox'а по размер экрана
BitBlt Picture1.hDC, 0, 0, Screen.Width / Screen.TwipsPerPixelX, Screen.Height / Screen.TwipsPerPixelY, DeskDС, 0, 0,
vbSrcCopy
SavePicture Picture1.Image, "C:\pic.bmp"
End Sub
Что именно мне следует заменить (и на что), чтобы получить выделенный текст в окне IE в буфер, или же в обычную стринговую переменную?
P.S.: простите, если туплую .
Номер ответа: 5
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #5
Добавлено: 27.02.07 20:24
Вовсе даже не тупишь, причем здесь DC ?!
Вряд-ли WM_COPY если я правильно понял вопрос.
Если в проводнике выделены файлы в SysListView32, то надо SendMessage ~LVM_GETITEM~ и пр.
Номер ответа: 6
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #6
Добавлено: 27.02.07 21:27
GetAsyncKeyState ?
Номер ответа: 7
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #7
Добавлено: 27.02.07 21:29
Sorry, не в тему.
Номер ответа: 8
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #8
Добавлено: 28.02.07 05:27
IHTMLDocument
http://www.vbforums.com/showthread.php?t=357460
Номер ответа: 9
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #9
Добавлено: 01.03.07 15:03
дык, я тодумал что тебе изображение надо а не текс