При написании резидентных программ и сервисов, возникает потребность в автоматическом запуске программы при загрузке виндовс. Каждый мало-мальски знакомый с этой операционной системой пользователь скажет вам, что для решения этой проблемы нужно воспользоваться реестром.
Вот с помощью столь не хитрого кода я записываю программу в реестр для автостарта:
1: 2: // Alexandr Lysy
3: using System.Reflection;
4: using Microsoft.Win32;
5: namespace Utils.AppAutostart
6: {7: public class
8: AutoStart 9: { 10: 11: public static void Enableautostart(string
12: progname) 13: 14: { 15: 16: RegistryKey key = 17: Registry.CurrentUser.CreateSubKey("Software\\microsoft\\windows\\currentversion\\run");
18: 19: key.SetValue(progname, 20: Assembly.GetEntryAssembly().Location); 21: 22: }23: public static void
24: Enableautostart(string progname, string
25: path) 26: 27: { 28: 29: RegistryKey key = 30: Registry.CurrentUser.CreateSubKey("Software\\microsoft\\windows\\currentversion\\run");
31: 32: key.SetValue(progname, path); 33: 34: }35: public static bool
36: IsEnabled(string progname)
37: 38: { 39: 40: RegistryKey key = 41: Registry.CurrentUser.OpenSubKey("Software\\microsoft\\windows\\currentversion\\run",
42: true);
43: if
44: (key.GetValue(progname) != null) return
45: true;
46: 47: return false;
48: }49: public static void
50: Disableautostart(string progname)
51: 52: { 53: 54: RegistryKey key = 55: Registry.CurrentUser.OpenSubKey("Software\\microsoft\\windows\\currentversion\\run",
56: true);
57: 58: key.DeleteValue(progname); 59: 60: } 61: } 62: }Собственно использование: Enableautostart(“myProg”); Проверено на вин ХР.
Вроде не чего сложного программа, как и должна, запускается при старте виндовс. Но замечена довольно не красивая проблема, приложение принципиально отказывается загружать ресурсы (картинки) как внешние, так и встроенные в ресурсы. Я пытался обойти проблему с помощью не сложной комбинации. Первой загружается программа загрузчик, задача которой запустить основную программу с полными правами. Но из этого не чего не вышло);. Так же не чего не дали пляски с безопасностью, в коде. Так что, я получил множество информации для размышления. Чем делюсь и с вами.
Уважаемые коллеги, если у вас есть решение данной проблемы, прошу поделиться им в комментариях. Заранее благодарю.
Комментариев нет:
Отправить комментарий