Page 1 of 1

Указатель на окно стороннего приложения

Posted: Thu Jan 19, 2017 7:32 pm
by Landius
Добрый день, граждане!
Подскажите, пожалуйста, можно ли при помощи wxWidgets получить указатель на окно другого приложения? Суть вопроса: есть приложение, которое пишет текстовую строку в буфер обмена операционной системы. необходимо чтобы эта строка без лишних телодвижений пользователя писалась из буфера обмена в текстовое поле стороннего приложения. По силам ли wxWidgets провернуть подобное? или проще использовать WinAPI?

Re: Указатель на окно стороннего приложения

Posted: Fri Jan 20, 2017 10:38 am
by Landius
Прошу прощения.
Суть программы: при открытии программа вставляет текст в буфер обмена, далее обращается в сторонне приложение, отправляя сообщение о нажатии комбинации клавиш CTRL+V. После этого программа закрывается.

Code: Select all

void hotKeyFrm::CreateGUIControls()
{    
    if(wxTheClipboard->Open()) //открываем буфер обмена
    {
        wxTheClipboard->SetData(new wxTextDataObject(_("текст"))); //вставляем текст в буфер обмена
        wxTheClipboard->Flush();
        wxTheClipboard->Close();
    } 
	/*
	тут получаю указатель на окно стороннего приложения и отправляю по указателю сообщение о нажатии комбинации клавиш CTRL+V. И в этом загвоздка :(
	*/
	SetSize(0,0,0,0);
	Destroy(); //разрушаем окно

}

Re: Указатель на окно стороннего приложения

Posted: Fri Jan 20, 2017 10:01 pm
by ONEEYEMAN
A chto ne rabotaet? I kak?
Chto takoe storonnee prilogenie - WordPad, Word, Excel, chto-to esche?
Prilogenie zapuscheno? Gde nahoditsja fokus u etogo prilogenija?

Re: Указатель на окно стороннего приложения

Posted: Sat Jan 21, 2017 6:20 am
by Landius
ONEEYEMAN, добрый день! Не то чтобы не работает, просто не знаю как это реализовать средсвами wxWidgets.
Прошу прощения, видимо недостаточно данных предоставил.
Стороннее приложение - это IBM Lotus Notes. Пользователь изначально запускает IBM Lotus Notes. В процессе работы в Lotus открывается окошко с текстовым редактором и двумя кнопками: ok, cancel. Пользователь руками набивает в окошке текст и нажимает OK. Текст в большинстве случаев содержит одну и туже фразу, поэтому процесс раздражает пользователя) В свете этого родилась идея написать приложение на wxWidgets, которое пользователь запускает при открытом окошке Lotus и которое считывает из текстового файла нужную фразу, вставляет фразу в буфер обмена операционной системы, далее отправляет в текстовый редактор Lotus сообщение о нажатии CTRL+V и программно нажимает OK, далее само себя закрывает.

Удалось все это решить смешав wxWidgets и winApi. Но очень интересно, можно ли обойтись одним wxWidgets. Читал документацию и не нашел ничего подходящего. Возможно что-то упустил)

Re: Указатель на окно стороннего приложения

Posted: Sat Jan 21, 2017 6:23 am
by Landius
Можно было бы и в самом Lotus дописать два шаблона комментария, но доработка Lotus находится в ведении аутсорсинговой компании. Т.е. нужно писать тех.задание и это лишние денежные траты. Пока все это согласует руководство, уйдет уйма времени.

Re: Указатель на окно стороннего приложения

Posted: Sat Jan 21, 2017 6:31 am
by ONEEYEMAN
Вот они все минусы Индюково-китайской экономической политики. ;-)
В принципе Вы все правильно реализовали. - wxWidgets + WinAPI.

Можно было бы попробовать на чистом OLE но это лишние заморочки - дополнительный леер.