Вставка слова

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Георгий2
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 23.03.2006 (Чт) 21:29
Откуда: Тбилиси, Грузия

Вставка слова

Сообщение Георгий2 » 30.03.2006 (Чт) 22:28

Уважаемые! Может кто подскажет непрофессионалу, как решить такую задачу:
имеется форма с текстом, может быть лист бокс, или грид, непринципиально, надо чтоб при клике на слове оно вставлялось в активную программу туда, где в данный момент находится курсор, активной программой может быть Word, Excel или любая другая программа где есть возможность ввода текста и мигает курсор.

Большое спасибо за помощь!

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 30.03.2006 (Чт) 23:31

WindowFromPoint/SendMessage WM_SETTEXT
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.03.2006 (Пт) 3:49

Я думаю, в данном случае sendkeys...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Re: Вставка слова

Сообщение Nicky » 03.04.2006 (Пн) 10:19

Георгий2 писал(а):...надо чтоб при клике на слове оно вставлялось в активную программу туда, где в данный момент находится курсор...


В своей проге кликнули (следовательно, она же активная), цитата: "Куды вставлять-то?"

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.04.2006 (Пн) 10:26

То окно, которое под прогой.

Георгий2
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 23.03.2006 (Чт) 21:29
Откуда: Тбилиси, Грузия

Сообщение Георгий2 » 03.04.2006 (Пн) 21:03

Очень извиняюсь за отсутствие! Кинул вопрос и исчез! Некрасиво...

Ситуация такова: работаем в ворде, параллельно скажем сбоку висит узкое, в ширину слова наша форма со списком слов. Вдруг понадобилось вставить слово из списка. Кликаем на слове в нашей форме и там где в ворде был курсор должно вставиться это кликнутое слово. Продолжаем печатать до следующего раза... Видимо проще всего через клипборд, но как именно в ворд да именно в то место, где курсор? Скачал уйму информации как печатать в ворде програмно, там есть ВСЁ! но вот именно в место курсора - фига! Я бы это первым пунктом написал... Но - хозяин - барин!
Программа-минимум вставлятьв ворд и эксель, в идеале - всюду, где мигает курсор.

Когда-то я откуда-то скачал подобную программу, не помню названия, но поработав, убрал - много чего было не по-моему. В принципе кроме самого факта переноса слова из программы в ворд всё остальное я смогу сделать сам(наверное :roll: ), хоть я и крутой ламер в VB. Но большая просьба - чуть-чуть поподробней, я понимаю вашу позицию - ламер должен типа самообучаться, но представьте, что вы придете ко мне на тренировку (я тренер одного из видов восточных единоборств) а я в ответ на вопрос как бить, отвечу - вот груша, бей её почаще и думай побольше! Анализируй! и тому подобное. Скоро ли вы научитесь бить? Так что просьба - жалейте нас, ламеров, побольше, мы таки тоже немного люди :D
Не поймите меня неправильно - я всем вам на форумах VB очень благодарен - получаю море информации, претензий быть не может, но поплакаться в жилетку иногда тянет, особенно после месяца поисков в книгах (около десятка), и на всех мыслимых и немыслимых сайтах по VB

Извините за флуд и спасибо всем

AlexBlack
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 324
Зарегистрирован: 18.07.2005 (Пн) 19:14
Откуда: Киефф, Юкрейн...

Сообщение AlexBlack » 03.04.2006 (Пн) 21:09

имитируй нажатие кнопки CTRL-V
Красный, но студийный.

http://www.rs-creative.com
Alex_Black@rs-creative.com

Георгий2
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 23.03.2006 (Чт) 21:29
Откуда: Тбилиси, Грузия

Сообщение Георгий2 » 03.04.2006 (Пн) 21:12

Спасибо, но как?

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 03.04.2006 (Пн) 21:44

SendKeys или keybd_event/

Георгий2
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 23.03.2006 (Чт) 21:29
Откуда: Тбилиси, Грузия

Сообщение Георгий2 » 03.04.2006 (Пн) 22:10

Спасибо, буду изучать, с чем это едят и как оно связано с Word, Excel. и любым другим местом где мигает курсор ввода.

Георгий2
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 23.03.2006 (Чт) 21:29
Откуда: Тбилиси, Грузия

Сообщение Георгий2 » 03.04.2006 (Пн) 22:53


alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 03.04.2006 (Пн) 23:20

Ужас...
Лучше не используй ту ерунду.

Основная сложность -- это не передавать клавиши (это делается командой SendKeys "Sample text for testing"), а узнать, какое окно было активно перед тем, как ты кликнул на этой своей форме со списком слов.

Один из вариантов -- непрерывно мониторить активные окна (например таймером) и активным считать то окно, которое было определено перед активацией твоей формы.
Можно сделать и лучше, передать фокус предыдущему окну (приложению), но не помню уже, как это делается. Как вариант, можно сделать так: SendKeys "%{TAB}Sample text".
Только учитывай, что SendKeys посылает не буквы, а кнопки, т.е. раскладку тебе надо будет переключать перед тем, как вводить текст.
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 03.04.2006 (Пн) 23:21

Кстати, если мониторить окна, то самым подходящим скорее всего будет первый ответ (от BV), насчет WM_SETTEXT.
Lasciate ogni speranza, voi ch'entrate.

Георгий2
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 23.03.2006 (Чт) 21:29
Откуда: Тбилиси, Грузия

Сообщение Георгий2 » 03.04.2006 (Пн) 23:26

:shock: , но всё равно большое спасибо!

то есть идея мониторить нравится, но как делать - понятия не имею, да и всё остальное тоже, буду искать и пытаться изучить.

Анекдот вспомнил, может не знаете.

Два программера видят потрясную тёлку.
Один:
Смотри, какие Properties
Другой в ответ:
Без понта, я вчера пробовал - Read Only!

Так и для меня пока всё это - Read Only, но буду грызть гранит науки!

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 24.10.2007 (Ср) 13:03

Приветствую всех!
Немного не в тему, но близкий вопрос.

Суть: имеется база данных *.mdb (VB)
Скажем, есть поле Title, в котором содержатся названия тем
диссертаций.
Задача: прочитать все слова, имеющиеся в теме диссертации, отсортировать по алфавиту, отсеять те, которые менее трех букв, и весь список вывести в отдельное окно (text, например).
Вопрос: какова логика решения этой задачи?
Спасибо!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.10.2007 (Ср) 13:45

Логика -- она будет в SQL. Уж никак не в Windows API.
Lasciate ogni speranza, voi ch'entrate.

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 24.10.2007 (Ср) 13:59

alibek
Иными словами - система запросов к данному полю?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.10.2007 (Ср) 14:06

Иными словами -- это совсем другой вопрос, задавай его в разделе про базы данных. Подключаешься к базе данных, делаешь запрос к таблице, выводишь результаты.
Lasciate ogni speranza, voi ch'entrate.

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 24.10.2007 (Ср) 14:56

alibek
Понял, принял...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот, Yandex-бот и гости: 19

    TopList