Модераторы: gambit, Partizan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Управление чужим приложением через Spy++, Помогите освоить 
:(
    Опции темы
mr.DUDA
Дата 23.6.2006, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


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

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



Цитата(zmaximka @  23.6.2006,  15:57 Найти цитируемый пост)
Таки нет! И как же все таки можно ее нажать? 


По простому не получается ? Ну попробуй тогда сделать так, если сможешь: 

1) начать с пом. Spy++ прослушивать сообщения WM_LBUTTONDOWN/UP/CLICK, выставить галку "All windows of same process"
2) нажать мышкой "кнопку" в окне
3) посмотреть, какие сообщения отловил Spy++
4) не меняя положения окна с "кнопкой", послать (с пом. SendMessage) окну такие же сообщения с теми же lParam и wParam, посмотреть будет ли результат

Если пункт 4 приведёт к такой же реакции, как пункт 2 (т.е. "кнопка" нажмётся), значит можно всё это делать для любого положения окна: после того как FindWindow() нашёл окно, определяем левый верхний угол окна (импортируемая функция GetWindowPos), по ним вычисляем координаты кнопки и посылаем окну WM_LBUTTONDOWN/WM_LBUTTONUP.

Добавлено @ 16:14 
Упс, пропустил сообщение jfx, скорее всего в этом и дело smile 


--------------------
user posted image
PM MAIL WWW   Вверх
zmaximka
Дата 26.6.2006, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 27.5.2006
Где: Украина, Одесса

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



А у меня выдает ошибку! Подозреваю что lParam у меня в такой форме 0014000E, а у тебя в 0x150018! Если да, то как переконвертировать? 
PM MAIL ICQ   Вверх
mr.DUDA
Дата 26.6.2006, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


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

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



Цитата(zmaximka @  26.6.2006,  17:28 Найти цитируемый пост)
0014000E

Это такое же hex-число, как и 0x150018. Только "0x" не хватает. 


--------------------
user posted image
PM MAIL WWW   Вверх
zmaximka
Дата 26.6.2006, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 27.5.2006
Где: Украина, Одесса

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



Цитата(mr.DUDA @  26.6.2006,  17:38 Найти цитируемый пост)
Это такое же hex-число, как и 0x150018. Только "0x" не хватает. 

А можно пример?!  smile  
PM MAIL ICQ   Вверх
mr.DUDA
Дата 26.6.2006, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


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

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



Цитата(zmaximka @  26.6.2006,  17:44 Найти цитируемый пост)
А можно пример?!

Пример чего ? Шестнадцатеричных чисел ? Пожалста:

0x000001
0xabcdef
0x456000
0x100000 


--------------------
user posted image
PM MAIL WWW   Вверх
zmaximka
Дата 26.6.2006, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 27.5.2006
Где: Украина, Одесса

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



Не работает! Я посылаю этой нарисованной кнопке сообщения, а она не реагирует! Может я не тому окну посылаю?
Код

sing System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace PreWork
{
    class Program
    {
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string className, string windowName);

        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);

        const int WM_LBUTTONDOWN = 0x0201;
        const int WM_LBUTTONUP = 0x0202;

        static void Main(string[] args)
        {
            IntPtr pillotWnd = FindWindowEx(IntPtr.Zero, IntPtr.Zero, "TMainForm", "Настройка и учет звонков PILOT-X                       -=  TANDEM LTD  =-");

            IntPtr Tab1 = FindWindowEx(pillotWnd, IntPtr.Zero, "TPageControl", null);

            IntPtr Tab2 = FindWindowEx(Tab1, IntPtr.Zero, "TTabSheet", "Параметры");

            IntPtr button1 = FindWindowEx(Tab2, IntPtr.Zero, "TScrollBox", null);

 
            if (button1 != IntPtr.Zero)
            {
                SendMessage(button1, WM_LBUTTONDOWN, 1, 0x001900B8);
                SendMessage(button1, WM_LBUTTONUP, 0, 0x001900B8);
            }
        }
    }
}
 
PM MAIL ICQ   Вверх
mr.DUDA
Дата 27.6.2006, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


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

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



Так ты посылаешь сообщение кнопке скроллбара ? Для этого есть совсем другие сообщения - WM_VSCROLL, например. 


--------------------
user posted image
PM MAIL WWW   Вверх
zmaximka
Дата 27.6.2006, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 27.5.2006
Где: Украина, Одесса

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



Цитата(mr.DUDA @  27.6.2006,  10:42 Найти цитируемый пост)
Так ты посылаешь сообщение кнопке скроллбара ?

Нет, я нечиго на хочу прокручивать! Я вообще не могу понять откуда там скрол бар, если его там нет. 
PM MAIL ICQ   Вверх
zmaximka
Дата 27.6.2006, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 27.5.2006
Где: Украина, Одесса

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



Цитата(zmaximka @  27.6.2006,  15:12 Найти цитируемый пост)
Нет, я нечиго на хочу прокручивать! Я вообще не могу понять откуда там скрол бар, если его там нет

Все!!! Эта кнопка нажимается. А если кнопка на панеле задач то же LBUTONNUP LBUTONNDOWN?
 
PM MAIL ICQ   Вверх
zmaximka
Дата 3.7.2006, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 27.5.2006
Где: Украина, Одесса

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



А если кнопка на панеле задач то же LBUTONNUP LBUTONNDOWN? 
PM MAIL ICQ   Вверх
mr.DUDA
Дата 3.7.2006, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


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

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



Цитата(zmaximka @  3.7.2006,  10:57 Найти цитируемый пост)
А если кнопка на панеле задач то же LBUTONNUP LBUTONNDOWN?

Панель задач - отдельное окно, но в целом ничем (по поведению) не должно отличаться от обычных окон. 


--------------------
user posted image
PM MAIL WWW   Вверх
zmaximka
Дата 3.7.2006, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 27.5.2006
Где: Украина, Одесса

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



Цитата(mr.DUDA @  3.7.2006,  11:08 Найти цитируемый пост)
Панель задач - отдельное окно, но в целом ничем (по поведению) не должно отличаться от обычных окон. 

И панель инструментов тоже? 
PM MAIL ICQ   Вверх
mr.DUDA
Дата 3.7.2006, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


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

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



Цитата(zmaximka @  3.7.2006,  11:15 Найти цитируемый пост)
И панель инструментов тоже? 

ну и при чём здесь панель инструментов к панели задач ?.. 


--------------------
user posted image
PM MAIL WWW   Вверх
zmaximka
Дата 3.7.2006, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 27.5.2006
Где: Украина, Одесса

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



А если кнопка на панеле инструментов, то же LBUTONNUP LBUTONNDOWN?  
PM MAIL ICQ   Вверх
mr.DUDA
Дата 3.7.2006, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


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

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



Гм, что понимается под "панелью инструментов" ? Область окна в верхней части, где расположены мелкие кнопки типа "открыть файл", "копировать", "вставить" и т.п. ? Если да - то там кроме WM_LBUTTONDOWN/UP/CLICK есть ещё очень важное сообщение WM_COMMAND, посылаемое при выборе (нажатии/отжатии) кнопки тулбара. Можно в эту сторону покопать... 


--------------------
user posted image
PM MAIL WWW   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




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


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

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