2009-08-17 1 views
0

Я планирую создать экранную заставку. Думаю попробовать некоторые WPF. В любом случае, я не совсем уверен, как организовать экранную заставку на диске в файловой системе. У меня есть в основном два связанных с этим вопросов, которые я очень неопределенными о том, как решить:C#: Как бы вы организовали экранную заставку в файловой системе?

  1. обычно представляет собой приложение живет, со всеми его 3-й партии сборки, статические ресурсы, изображения и т.д., в папке Program Files и бежать оттуда. Например, C: \ Program Files \ MyScreenSaver. Но (если я чего-то не пропустил) исполняемый файл экранной заставки в окнах должен иметь расширение для скрипта и жить в системной папке, например C: \ Windows \ System32. Как вы программируете экранную заставку, чтобы она могла найти «остальную часть себя»? Вы бы использовали реестр Windows? Или создать какой-то конфигурационный файл рядом с файлом scr с путём к остальному? И вы могли бы заставить scr просто быть пусковой установкой exe в папке приложения? Или это будет плохая идея?

  2. Я также хочу, чтобы экранная заставка загружала новый контент из определенных мест в Интернете. Но где я могу это поместить, и как заставка находит его? Если я правильно понял, приложение не должно создавать новое содержимое в папке своего приложения, а скорее в папке пользователя. Как найти эту папку? Вы строите его из переменных окружения? И в каком конкретном каталоге должны быть такие вещи? Например, в Vista я вижу, что у вас есть одна папка с именем C: \ ProgramData. У вас также есть C: \ Users \ username \ AppData \ Local, C: \ Users \ username \ AppData \ LocalLow и C: \ Users \ имя_пользователя \ AppData \ Роуминг. Кроме того, в папке моих документов также было много загрузок программ (хотя я ненавижу программы, загромождающие папку моих документов, поэтому я, вероятно, попытаюсь избежать этого: p).

Каковы некоторые из лучших практик, когда речь заходит об этих проблемах при установке приложения в файловой системе? Я хочу, чтобы он был лучшим и «самым правильным» для Windows 7, что означает, что он, вероятно, будет работать так же и в Vista (?), Но ему также нужно будет работать в XP, так как много людей используя это еще.

ответ

0

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

Для загруженного содержимого используйте папку данных приложения или, возможно, разрешите пользователю установить местоположение (поместите путь в реестр). Например, если вы загружаете изображения, пользователь может захотеть поместить это в папку «Мои рисунки».

+0

Хм, звучит как план =) – Svish

1

Я все еще использую XP :)

System.Environment.SpecialFolders является то, что вы хотите для этих специальных мест.

Say,

System.Environment.SpecialFolder.LocalApplicationData 
+0

Что вы бы добавили? «MyScreenSaver» или что-то в этом роде? А как насчет пути приложения? Тем более, что это то, что пользователь должен иметь возможность выбирать во время установки. – Svish

+0

Что значит «путь приложения»? Как обсуждалось, экранные хранители должны находиться в определенном месте, поэтому там нет опции. И я не уверен, но я подозреваю, что с «LocalApplicationData» вам не нужно добавлять имя вашего приложения. –

0

Вы можете поместить его в папку System32 (или SysWOW64), но вы также можете поместить его в папку Windows, что предотвратит проблемы x86 и x64.

Вы можете найти некоторые другие трудно найти, но важную информацию о написании заставок здесь: https://github.com/steveniles/MandelZoom/wiki

(Раскрытие информации: я написал выше вики в качестве компаньона для исходного кода одного из моих собственных заставок .)