2010-10-01 2 views
1

Я думаю, что это то, что это называется:Windows 7 Перейти Список

enter image description here

Я хочу, чтобы иметь возможность добавить такие вещи, как, что в моей программе. Например, открытая кнопка и другие кнопки, которые выполняют метод в приложении. Это, кстати, в C#.

Я посмотрел в Windows 7 API Code Pack, но он не работает так, как я хочу. Это не позволит мне выполнить метод внутри моего приложения, как я хочу. Он просто позволяет вам открывать другие приложения.

Возможно ли это как можно?

+0

Привет, Ион, добавьте немного ocde, чтобы мы могли вам помочь. Благодаря! –

+0

Здравствуйте, я никогда не придумывал какой-либо код для него, поскольку W7 Code Pack не имел требуемых функций. – Eaton

ответ

4

Я думаю, что это вы, кто не понимает, как работают JumpLists. «Это просто позволяет вам открывать другие приложения». Это именно то, что он делает, и ничего больше. Это функция Windows 7, а не ограничение API Code Pack. Ключевым моментом в этом является факт, что ваше приложение не запущено, поэтому ГДЕ оно должно выполнить ваш метод? Правильная реализация будет заключаться в том, чтобы заставить JumpList запустить ваше приложение с правильными параметрами, а затем внутри вашего приложения. Основной метод вызывает различные методы в зависимости от этих параметров. Не забывайте, что даже оконные приложения имеют входные параметры, как и консольные приложения.

+0

Спасибо за информацию! – Eaton

1

Если вы посмотрите на Outlook и Messenger, они вызывают другие команды в приложении, поэтому вы знаете, что это возможно. Но, как поясняет @Euphoric, архитектура jumplists действительно проста - выбор адресата (например, имя файла или URL) приводит к тому, что Windows запускает другой экземпляр приложения и передает это место назначения в качестве аргумента командной строки. Выбор задачи приводит к тому, что Windows запускает эту задачу, которая должна быть каким-то другим exe.

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

0

Назначьте URL-адреса элементам списка переходов и используйте HTTP-прослушиватель для вызова методов в вашем приложении. Например: URL mapping with C# HttpListener

Кроме того, вы можете пойти по пути awekward и использовать общий мьютекс, чтобы сделать ваше приложение только одним экземпляром и переслать аргументы командной строки по именованному каналу. Но http-прослушиватель лучше;)