функциональность иконки на рабочем столе в окне - PullRequest
0 голосов
/ 05 октября 2009

Моя жена жалуется, что у меня слишком много значков на рабочем столе Windows XP-Pro.

Мне нравится иметь возможность быстро перетаскивать файл на значок приложения, которое я хочу открыть. И мне нравится переходить по ссылке, чтобы открывать часто используемые глубоко вложенные папки, а не переходить туда. Таким образом, у меня на рабочем столе более 100 иконок.

(У нас одна и та же учетная запись пользователя, потому что мы часто переключаемся туда-сюда и потому что нам обоим нужен доступ к одной и той же электронной почте, поэтому отдельные учетные записи не являются решением.)

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

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

  1. Как получить значок для отображения в форме Windows (или в соответствующем элементе управления в форме)? (Например, если я добавлю ссылку на Блокнот или ссылку на папку с файлом.)

  2. Как выполнить те же действия, что и на рабочем столе, если дважды щелкнуть значок? (Например, если дважды щелкнуть ссылку на папку.)

  3. Как выполнить те же действия, что и на рабочем столе, если на значок что-то перетащено? (Например, текстовый файл перетаскивается на значок «Блокнот».)

Я использую Visual Studio и C # .NET для программирования.

Я знаю, как выполнять простое перетаскивание.

Я не знаю:
A. какие элементы управления использовать в форме для отображения значков
Б. как найти иконку
C. какие команды создаются рабочим столом в различных ситуациях (чтобы я мог эмулировать функциональность)

Я прошу прощения за то, что это вопрос, состоящий из нескольких частей, но его было трудно разорвать, не объяснив всю историю снова.

Ответы [ 2 ]

0 голосов
/ 05 октября 2009

Почему вы просто не используете виртуальный рабочий стол ??

Попробуйте http://virtuawin.sourceforge.net/

Вы пропустите много кодирования.

Прямо со своей страницы: VirtuaWin - это менеджер виртуальных рабочих столов для операционной системы Windows (Win9x / ME / NT / Win2K / XP / Win2003 / Vista). Менеджер виртуальных рабочих столов позволяет организовать приложения на нескольких виртуальных рабочих столах (также называемых «рабочими пространствами»). они очень распространены в Unix / Linux, и как только вы привыкнете ими пользоваться, они станут неотъемлемой частью продуктивного рабочего процесса. "

0 голосов
/ 05 октября 2009

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

Ключевая часть, на которую вы захотите взглянуть, это Drag / Drop, которая очень хорошо поддерживается WinForms. Если вы реализуете свои значки как ImageBoxes, вы можете установить свойство AllowDrop для значков программы, а затем обработать событие DragDrop и вызвать его перегрузкой System.Diagnostics.Process (), чтобы запустить приложение с удаленным именем файла в качестве аргумента.

Что касается поиска значков, то для большинства программ их значки включены в качестве ресурса в их файл .EXE или в связанный файл .DLL.

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

...