Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2010, 23:45   #11
ZBEP
Форумчанин
 
Аватар для ZBEP
 
Регистрация: 23.03.2009
Сообщений: 334
По умолчанию

Пепел Феникса, а можно поподробнее плиз, прост если слать сообщения главному, например:
PostMessage(wnd, WM_CHAR, ':', 0);
То оно не распознаётся, даже при открытом окне ввода , приходится активировать нужное окно и через keybd_event вбивать тута SHIFT + ';'.

Щас про PID почитаю..

П.с.
Перечесление окон уже ненужно.

Последний раз редактировалось ZBEP; 15.01.2010 в 23:48.
ZBEP вне форума Ответить с цитированием
Старый 16.01.2010, 00:07   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

возьмите Spy++ или чтото подобное
и посмотрите какие сообщения приходят и с какими параметрами
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 16.01.2010 в 00:08. Причина: не то написал сначало.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.01.2010, 09:49   #13
ZBEP
Форумчанин
 
Аватар для ZBEP
 
Регистрация: 23.03.2009
Сообщений: 334
По умолчанию

Посмотрел через Spy++
Вроде откопал, вот что выдает по нажатию на SHIFT + ';'


А вот это выдает по отправке нажатия на SHIFT + ';' через бота:
Посылка команд:
Код:
PostMessage(wnd, WM_KEYDOWN, VK_SHIFT, 0);
PostMessage(wnd, WM_KEYDOWN, 186, 0);
PostMessage(wnd, WM_KEYUP, 186, 0);
PostMessage(wnd, WM_KEYUP, VK_SHIFT, 0);
Результат:


Отличий мало вроде, только в Repeat, UP и ScanCode.
Но вместо ':' всеравно ';'
Буду че-нить думать..

П.с.
Обошелся без PID пока, Все порм, все команды посылаются в нужные окна.
Осталось тодько реализовать нормальное нажатие ':' , а лучше что-бы можно было через CHAR команды посылать (например как в блокнот), а не через WM_KEYDOWN

П.п.с.
Вот что выдает если через Char:
Код:
ClickKey(wnd,13);
PostMessage(wnd, WM_CHAR, Word(':'), 0);

Странно..

Последний раз редактировалось ZBEP; 16.01.2010 в 10:46.
ZBEP вне форума Ответить с цитированием
Старый 16.01.2010, 15:06   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну так возьмите себе параметры со Spy++
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.01.2010, 15:35   #15
ZBEP
Форумчанин
 
Аватар для ZBEP
 
Регистрация: 23.03.2009
Сообщений: 334
По умолчанию

А можете на примере показать пожалуйста?
ZBEP вне форума Ответить с цитированием
Старый 16.01.2010, 17:18   #16
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Могу посоветовать программу InqSoft Window Scanner. С помощью неё можно просмотреть дерево окон.
profi вне форума Ответить с цитированием
Старый 16.01.2010, 18:12   #17
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

щелкните правой кнопкой по сообщению...и там св-ва
там будет шестнадцатеричное значение lParam и wParam
подставить думаю сможете

(в Делфи HEX значение пишется $<тут значение>)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.01.2010, 20:38   #18
ZBEP
Форумчанин
 
Аватар для ZBEP
 
Регистрация: 23.03.2009
Сообщений: 334
По умолчанию

Пепел Феникса, о все, спасибо, разобрался!
ZBEP вне форума Ответить с цитированием
Старый 16.01.2010, 23:27   #19
ZBEP
Форумчанин
 
Аватар для ZBEP
 
Регистрация: 23.03.2009
Сообщений: 334
По умолчанию

Блин, я забыл что выставил фокус окна((

Вобщем на неактивном окне всеравно ';' получается.
Делаю так:
Код:
PostMessage(wnd, WM_KEYDOWN, $00000010, $002A0001);
PostMessage(wnd, WM_KEYDOWN, $000000BA, $00270001);
PostMessage(wnd, WM_KEYUP, $000000BA, $C0270001);
PostMessage(wnd, WM_KEYUP, $00000010, $C02A0001);
ZBEP вне форума Ответить с цитированием
Старый 13.05.2014, 08:17   #20
progma
 
Регистрация: 13.05.2014
Сообщений: 6
По умолчанию

Здравствуйте!
Если сможете, то помогите по такому вопросу:
У меня такая задача:
Программа запускает запароленные презентации PowerPoint и должна:
- эмулировать ввод пароля в окне "Пароль" на запуск презентации
- в следующем окне "Пароль" эмулировать нажатие кнопки "Только для чтения"
Вот мой упрощенный тестовый код:
var
Form1: TForm1;
h1,h2,h3,h4,h5,h6:HWND;
procedure TForm1.Button1Click(Sender: TObject);
begin
{ищем 1-е окно с именем "Пароль"}
1. SendMessage(h2, WM_SETTEXT, 0, lparam(pchar('testor')));
2. h3:=findwindowex(h1,0,nil,'ОК');
3. sendmessage(h3,BM_CLICK,0,0);
4. ищем 2-е окно с именем "Пароль" }
5. h4 := FindWindow(nil, 'Пароль'); // форма на которой кнопка находится
6. h5:= FindWindowEx(h4, 0, nil, 'Только для чтения'); //находим дескриптор кнопки
7. windows.SetFocus(h5);
8. sendmessage(h5,BM_CLICK,0,0);
end;
До строки 6 все работает хорошо. Второе окно "Пароль" активно.
Но эмуляции нажатия кнопки не происходит, хотя вреде бы все
должно быть также, как при нажатии первой кнопки "Пароль".
Ставил Sleep после появления второй кнопки "Пароль", но ничего не менялось.
Помогите разобраться в чем причина. Спасибо

Последний раз редактировалось progma; 13.05.2014 в 08:28.
progma вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с чужими окнами Djem1991 Общие вопросы Delphi 3 15.11.2009 22:35
работа с чужими окнами betirsolt Общие вопросы Delphi 8 06.10.2009 12:52
работа с чужими программами Rend1 Win Api 31 02.03.2008 16:42
работа с окнами Briz Общие вопросы Delphi 5 07.10.2007 22:20
работа с "чужими" окнами zetrix Безопасность, Шифрование 1 29.10.2006 11:28