Есть ли способ переопределить поведение перетаскивания или копирования / вставки существующего приложения в Windows? - PullRequest
0 голосов
/ 28 августа 2008

Я хотел бы расширить поведение перетаскивания некоторых существующих приложений, и мне интересно, есть ли способ взломать поддержку перетаскивания или изменения в поведении перетаскивания, отслеживая цикл сообщений приложения и вставляя мой собственные сообщения.

Он также будет работать для отслеживания выполнения операции вставки, в основном, для создания пользовательского поведения, когда элемент управления поддерживает только вставку текста и вставку изображения.

Я думаю, Объезд может быть моим лучшим выбором, но одна проблема заключается в том, что мне придется писать собственный код для каждого приложения, которое я хочу расширить. Если бы только Windows была разработана с учетом расширяемости!

С другой стороны, есть ли ОС, поддерживающая расширяемость такого типа?

Ответы [ 3 ]

0 голосов
/ 29 августа 2008

Если вы готовы делать додлинг в памяти во время загрузки приложения, вы, вероятно, можете найти это.

Но если вы ищете простой способ просто вставить нужный код в насос сообщений другого окна, вы не найдете его. Навыки, необходимые для выполнения чего-то подобного, огромны (если кто-то не обернул все это в приложение / библиотеку, о которой я не знаю, но я сомневаюсь в этом). Это похоже на перехват буфера обмена: слишком много писем: нахмуришься, есть куча ошибок, и вы, скорее всего, внесете существенную нестабильность в вашу систему, если вы не действительно знаете, что делаете .

0 голосов
/ 29 августа 2008

Хм, это действительно очень плохо. Я полагаю, что иногда есть причины, по которым приложения еще не существуют. По сути, я пытаюсь упростить процесс отправки ссылок на изображения людям, использующим различные приложения (в основном, текстовые формы веб-браузера, но также в любое время, когда я редактирую в окне терминала), подключив процесс вставки изображения в текстовый контекст, загрузка изображения в фоновом режиме и вставка URL-адреса туда, куда было загружено изображение, одним действием.

Редактировать: Я полагаю, что более простое решение этого заключается в том, чтобы просто создать новую комбинацию клавиш, которая будет перехвачена моим приложением, прежде чем оно попадет в любое другое приложение. Нет особой причины, по которой мне нужно привязать его к функции копирования / вставки.

0 голосов
/ 28 августа 2008

Ну, подумайте об этом с точки зрения дизайнера приложений. Если вы написали приложение, хотите ли вы, чтобы пользователи могли вводить что-то в ваше приложение (что еще более важно, вы бы захотели понести головную боль поддержки / дохода от невежественных пользователей, делающих это, а затем обвиняющих вас)? Инфраструктура перетаскивания каждого приложения написана специально для приложения, чтобы не позволить вам перетаскивать на него все, что вы хотите (что может привести к сбоям и другим видам неприятного поведения при перетаскивании чего-либо в приложение, которое просто не может с этим справиться) , Такие вещи трудно сделать по причине.

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

...