Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];

Вниз

PostMessage или приказано   Найти похожие ветки 

 
Grim Rider   (2002-02-22 06:24) [0]

Умудрившись поставить системный хук, столкнулся с проблемой - не могу приложение (не свое) заставить вставить информацию из буфера.

Нашел где-то в инете, что для этого годится
PostMessage(GetForegroundWindow(), WM_PASTE, 0, 0);
однако, отработав, результат отсутствует...
Попробовал
SendMessage(GetForegroundWindow(), WM_PASTE, 0, 0);
с таким же успехом...

Господа знатоки, помогите плз!


 
Digitman   (2002-02-22 09:49) [1]

хук-то какое отношение к сей задаче имеет ? Поясни.


 
Grim Rider   (2002-02-22 10:33) [2]

Это так к слову.......
Хук в длл, мониторим события буфера обмена и пытаемся заставить другое приложение (например нотпад) вставить эту инфу...

Вопрос в том как сие устроить.


 
Digitman   (2002-02-22 10:51) [3]

An application sends a WM_PASTE message to an edit control or combo box to copy the current content of the clipboard to the edit control at the current caret position. Data is inserted only if the clipboard contains data in CF_TEXT format.

Это - хэлп. Вчитайся.


 
Grim Rider   (2002-02-22 11:59) [4]

Все правильно, я это все читал...


> An application

Мое или любое?


> sends a WM_PASTE message to an edit control

Посмотрел в winsight нотепад - большой edit


> or combo box to copy the current content of the clipboard
> to the edit control at the current caret position. Data
> is inserted only if the clipboard contains data in CF_TEXT
> format.

Я с текстом только и работаю

Вопрос так и остался - как заставить другое приложение произвести вставку из буфера (нотпад например) по моей команде?



 
Digitman   (2002-02-22 13:52) [5]

в том же winsight определи имя/класс окна приложения Notepad. По известному классу/имени получи его хэндл вызовом FindWindow() (либо перебрав все top-level-окна вызовом EnumWindows()). Полученный хэндл и передавай параметром в SendMessage()


 
Grim Rider   (2002-02-23 03:34) [6]

Notepad приведен как пример, в общем случае нужна возможность посылать сообщение любому приложению, разрешающему вставку из буфера.

Пример: работает пользователь работает в Word/Notepad/Macromedia DreamWeaver/etc - набирает текст, копирует в буфер и мое приложение, изменив содержимое буфера, посылает команду на вставку, тому приложению, из которого была скопирована инфа.


> в том же winsight определи имя/класс окна приложения Notepad.
> По известному классу/имени получи его хэндл вызовом FindWindow()
> (либо перебрав все top-level-окна вызовом EnumWindows()).
> Полученный хэндл и передавай параметром в SendMessage()

А почему нельзя использовать
GetForegroundWindow()?

И еще, должен ли я удалять сообщение из очереди, после того как приказ отправлен? С информацией, которую я мониторю, никто работать не должен...


 
Fantasist   (2002-02-23 08:01) [7]

GetForegroundWindow() не дает хендл нужного тебе окна. Она дает хендл фрейма, а он не является никаким text control"ом.
Попробуй:
PostMessage(GetFocus(), WM_PASTE, 0, 0);


 
Grim Rider   (2002-02-23 14:43) [8]

Cпасибо... чето я действительно стормозил



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
4-94642
Tosov
2002-02-27 02:08
2002.04.29
Запись 64битного числа в реестр


3-94313
AlanB
2002-04-09 11:24
2002.04.29
Не работает программа под WinXP


1-94492
Hort
2002-04-16 15:14
2002.04.29
Как настроить принтер?


3-94326
Герман63
2002-04-09 15:02
2002.04.29
MS Access


1-94511
anod
2002-04-16 00:30
2002.04.29
Scroll в ListBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский