Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перенос данных из однойпроги в другую 
:(
    Опции темы
shuttle
Дата 19.5.2009, 05:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.4.2008

Репутация: нет
Всего: нет



Есть две проги из себя в основном представляют несколько диалоговых окон. Как из диалогово окно одной проги перенести данные в диалоговое окно другой проги. 
т.е. надо из текстовых полей диалогового окна одно пролги перенести данные в текстовые поля другой проги. Исходников разумеется нет. 
Какой функцией можо получить доступ к данным диалогового окна (текстовым полям, check box-ам, radio button-ам)?
--------------------
PM MAIL   Вверх
Andrey44
Дата 19.5.2009, 06:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 8
Всего: 26



Цитата(shuttle @  19.5.2009,  05:49 Найти цитируемый пост)
надо из текстовых полей диалогового окна одно пролги перенести данные в текстовые поля другой проги

FindWindow()->GetWindowText()->FindWindow()->SetWindowText()

Цитата(shuttle @  19.5.2009,  05:49 Найти цитируемый пост)
Какой функцией можо получить доступ к данным диалогового окна (текстовым полям, check box-ам, radio button-ам)? 

FindWindow()


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
azesmcar
Дата 19.5.2009, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 5
Всего: 211



Цитата(Andrey44 @  19.5.2009,  06:55 Найти цитируемый пост)
FindWindow() 

Цитата

FindWindow
This function retrieves the handle to the top-level window whose class name and window name match the specified strings. This function does not search child windows. 

FindWindowEx

Это сообщение отредактировал(а) azesmcar - 19.5.2009, 08:36
PM   Вверх
Andrey44
Дата 19.5.2009, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 8
Всего: 26



azesmcar, ну-у-у можно еще использовать EnumChildWindows() smile 


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
azesmcar
Дата 19.5.2009, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 5
Всего: 211



Цитата(Andrey44 @  19.5.2009,  08:37 Найти цитируемый пост)
azesmcar, ну-у-у можно еще использовать EnumChildWindows() 

Вообще-то эти две функции разные задачи решают. Одна для поиска, другая для итерации. Смотря что нужно smile 
PM   Вверх
Andrey44
Дата 19.5.2009, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 8
Всего: 26



Цитата(azesmcar @  19.5.2009,  08:40 Найти цитируемый пост)
Вообще-то эти две функции разные задачи решают. Одна для поиска, другая для итерации. Смотря что нужно

Через FindWindow() находим главное окно, а потом через EnumChildWindows() перебираем все дочерние. smile 


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
shuttle
Дата 20.5.2009, 05:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.4.2008

Репутация: нет
Всего: нет



FindWindow() только HWND возвращает, а GetWindowText только заголовок. А как остальные данные получить?
--------------------
PM MAIL   Вверх
Andrey44
Дата 20.5.2009, 07:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 8
Всего: 26



Цитата(shuttle @  20.5.2009,  05:46 Найти цитируемый пост)
FindWindow() только HWND возвращает, а GetWindowText только заголовок. А как остальные данные получить? 

Ну не хочется через GetWindowText тогда посылай эдиту сообщение WM_GETTEXT и получай текст
Не хочется через SetWindowText тогда посылай эдиту сообщение WM_SETTEXT и устанавливай новый текст

Это сообщение отредактировал(а) Andrey44 - 20.5.2009, 07:58


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
shuttle
Дата 21.5.2009, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.4.2008

Репутация: нет
Всего: нет



Смотрел через spy++, когда GetWindowText считывает из кнопки значение, то получаю название кнопки, когда с textbox-а, получаю только пустую строку, хотя строка там есть и spy++ ее показывает.
--------------------
PM MAIL   Вверх
Andrey44
Дата 21.5.2009, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 8
Всего: 26



Цитата(shuttle @  21.5.2009,  08:09 Найти цитируемый пост)
то получаю название кнопки

Какое название?

Цитата(shuttle @  21.5.2009,  08:09 Найти цитируемый пост)
textbox-а, получаю только пустую строку, хотя строка там есть и spy++ ее показывает. 

А HANDLE ты правильные получаешь?


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
artsb
Дата 21.5.2009, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 5
Всего: 64



shuttle, вот пример. Вытягивает текст из окна Edit калькулятора и записывает туда свой текст:
Код

HWND Window, Edit;
char Buf[256];
Window = FindWindowEx(NULL, NULL, "SciCalc", NULL);
if(!Window){
  ShowMessage("Калькулятор не запущен!");
  return;
}
Edit = FindWindowEx(Window, NULL, "Edit", NULL);
if(!Edit){
  ShowMessage("Не удалось найти Edit!");
  return;
}
SendMessage(Edit, WM_GETTEXT, 255, (LPARAM)Buf);
Label1->Caption = Buf;
SendMessage(Edit, WM_SETTEXT, 0, (LPARAM)"Я балуюсь :)");


Добавлено через 3 минуты и 51 секунду
Цитата(Andrey44 @  21.5.2009,  08:36 Найти цитируемый пост)
А HANDLE ты правильные получаешь? 

Такой косяк бывает. Не у всех эдитов можно получить текст с помощью GetWindowText. Да у того же калькулятора из примера выше. Сто процентный вариант - это отправить сообщение. Имхо


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
shuttle
Дата 21.5.2009, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.4.2008

Репутация: нет
Всего: нет



получаю текст в edit-e посылкой сообщения WM_GETTEXT. А как теперь получить имя(name) edit-а. 
--------------------
PM MAIL   Вверх
artsb
Дата 21.5.2009, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 5
Всего: 64



Цитата(shuttle @  21.5.2009,  09:51 Найти цитируемый пост)
как теперь получить имя(name) edit-а. 

Мне кажется, что никак. Хотя на 100% не уверен.
Да и зачем оно нужно?...


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Earnest
Дата 21.5.2009, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 33
Всего: 183



А что, собственно, такое "имя эдита"? Нет у него никакого имени, строкового, по крайней мере.


--------------------
...
PM   Вверх
shuttle
Дата 21.5.2009, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.4.2008

Репутация: нет
Всего: нет



имя edit-а в MFC это типа IDC_EDIT1, IDC_EDIT2, ... . Текстовых полей очень много, хотелось бы знать, с какого конкретно поля считываю значение.
--------------------
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.1277 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.