среда, 6 февраля 2013 г.

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

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

   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”); Проверено на вин ХР.
Вроде не чего сложного программа, как и должна, запускается при старте виндовс. Но замечена довольно не красивая проблема, приложение принципиально отказывается загружать ресурсы (картинки) как внешние, так и встроенные в ресурсы. Я пытался обойти проблему с помощью не сложной комбинации. Первой загружается программа загрузчик, задача которой запустить основную программу с полными правами. Но из этого не чего не вышло);.  Так же не чего не дали пляски с безопасностью, в коде. Так что, я получил множество информации для размышления. Чем делюсь и с вами.
Уважаемые коллеги, если у вас есть решение данной проблемы, прошу поделиться им в комментариях. Заранее благодарю.

Комментариев нет:

Отправить комментарий