![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
HiVeR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 30.6.2008 Репутация: нет Всего: нет |
как из своей проги записать текст в поле для ввода в другом приложений?
умею пользоваться spy++, то есть ввожу вручную в тот текстбокс букву и затем в spy++ в Messages нахожу произошедшее и там увидел три строчки(ненужное не стал переписывать): ...WM_KEYDOWN nVirtKey: 'F' cRepeat:1... ...WM_CHAR ch CharCode:'224' (224) cRepeat:1... ...WM_KEYUP nVirtKey: 'F' cRepeat:1... и что делать дальше, подскажите пожалуйста ![]() нужно, чтобы, допустим, при нажатий на кнопку на моём приложении, текст из моего текстбокса перешел в текстбокс другого приложения, как это осуществляется?, думаю через функцию Api SendMessage или PostMessge, но как их использовать в данном случае? |
|||
|
||||
nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: 4 Всего: 26 |
-------------------- Жизнь - печальная штука. |
|||
|
||||
HiVeR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 30.6.2008 Репутация: нет Всего: нет |
я читал ту тему, там нету ответа на мой вопрос..., там говорицо о нажатии кнопки с помощью мышки и пользовании spy++ в целом, а я о другом, я просто не знаю как отправить в текстбокс букву или целую строчку... |
|||
|
||||
nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: 4 Всего: 26 |
Вообще я тут не мастер , но мне кажется что не получится отправить сразу целую строчку. Поэтому надо по символам отправлять , а как символ отправить посмотри через Spy++. Еще можно через буфер попоробовать : отправляешь строку в буфер , потом фокусируешь и вставляешь. Но повторюсь - я тут не мастер.
-------------------- Жизнь - печальная штука. |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 2 Всего: 98 |
В той теме говорится об использовании функции SendMessage()...
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
HiVeR |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 30.6.2008 Репутация: нет Всего: нет |
та программа находит окно виндовского калькулятора и нажимает на кнопку "1" вот тот код:
а если нужно чтото вписать в строчку, где вводятся цифры, то как нужно поступить тогда? вот измененный мною код:
а теперь вопросы: 1. что писать в местах ???, чтобы отправить в текстбокс букву или цифру? 2. что означает IntPtr.Zero? 3. для чего вот эти строчки: const int WM_LBUTTONDOWN = 0x0201; const int WM_LBUTTONUP = 0x0202; и всегда ли их нужно писать? Это сообщение отредактировал(а) HiVeR - 9.7.2008, 13:26 |
||||||
|
|||||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 2 Всего: 98 |
ты бы матчасть подучил бы...
в местах ??? писать то, что тебе spy показал. если что -- не стесняйся и смотри в справку. IntPtr.Zero, как абсолютно не видно из названия, обозначает 0. эти вот строчки нужны для объявления значения констант WM_LBUTTONDOWN и WM_LBUTTONUP их нужно писать не всегда. пиши их тогда, когда они нужны... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
HiVeR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 30.6.2008 Репутация: нет Всего: нет |
что такое матчасть? spy после нажатия F показал мне вот это: ...WM_KEYDOWN nVirtKey: 'F' cRepeat:1... ...WM_CHAR ch CharCode:'224' (224) cRepeat:1... ...WM_KEYUP nVirtKey: 'F' cRepeat:1... а что с этим делать я беспонятия, с нажатием кнопки всё значительно проще и про какую справку ты имеешь ввиду? те две строчки понятное дело, что нужны если используются, но что писать вместо них, если надо нажать клавишу на клавиатуре? читал, что поступающие сообщения от Windows имеют префикс WM_, и для разных таковых сообщений, разные значения. для WM_KEYDOWN = 0x0100, а для WM_KEYUP = 0x0101 и для WM_CHAR = 0x0102, по сути это и нужно вписать, так? Это сообщение отредактировал(а) HiVeR - 9.7.2008, 22:08 |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 2 Всего: 98 |
Ответ на этот вопрос дает первая же ссылка гугла (запрос "учи матчасть"). Если не осилиш гугл -- вот: http://lurkmore.ru/Учи_матчасть прямая ссылка. Вот поэтому и следует учить матчасть... Если кратко -- полученные сообщения и их параметны нужно вписать на соответствующие места в месте вызова SendMessage(). естественно -- там все уже написанно... Справка (а точнее СПРАВКА) тут одна -- MSDN... писать, как ни странно, сообщения нажатия клавиши на клавиатуре (их показал spy) -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
HiVeR |
|
||||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 30.6.2008 Репутация: нет Всего: нет |
можешь пожалуста показать пример? например как отправить F в виндовский блокнот, используя SendMessage я по разному пробовал, не получилось. информации по этому поводу не нашёл... |
||||
|
|||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 2 Всего: 98 |
код не помешало бы показать -- телепатию я не особо прокачивал... не смешите мои тапочки: инфы (и примеров) всевозможных отправлялок текста -- море... вот: http://www.delphisources.ru/pages/faq/base...er_windows.html неплохая дока (для начала) по окнам да и по Send/PostMessage не помешало бы почитать... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
HiVeR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 30.6.2008 Репутация: нет Всего: нет |
_hunter, большое спасибо!!!, ты настоящий эксперт))))), толком ни на один мой вопрос не ответил, оно и правильно) всё слишком просто, исходя из примера с мышкой)), но я сразу не догнал... |
|||
|
||||
HiVeR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 30.6.2008 Репутация: нет Всего: нет |
просветите пожалуйста, как используется буфер в си шарпе?
в интернете не нашёл решения для си шарпа и в мсдн тоже. по сути я просто не знаю синтаксиса при использовании буфера... насколько знаю для записи чеголибо в буфер нужно использовать такую последовательность действий: Открыть буфер обмена функцией OpenClipboard Очистить содержимое буфера обмена функцией EmptyClipboard Заказать функцией GlobalAlloc глобальный блок памяти, имеющий размер, достаточный для размещения записываемых в буфер обмена данных Заблокировать полученный блок памяти функцией GlobalLock Записать в заблокированный блок памяти данные Разблокировать блок памяти функцией GlobalUnlock Поместить данные в буфер обмена функцией SetClipboardData Закрыть буфер обмена функцией CloseClipboard нашёл код на с++:
может кто-нить перевести тот код в с#, или дать простенький примерчик с использованием буфера, буду очень благодарен сорр, что не там запостил, просто поторопился, а удалить его уже не смог...(((((( Это сообщение отредактировал(а) HiVeR - 12.7.2008, 17:04 |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |