2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Проблема с записью в реестр.
Сообщение21.07.2010, 13:14 
Аватара пользователя
С помощью следующего кода я пытаюсь поместить свою программу в автозагрузку:
Код:
Microsoft.Win32.RegistryKey Key =
                       Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", true);
            Key.SetValue("Programm", System.IO.Directory.GetCurrentDirectory());
            Key.Close();

На месте:
Код:
Key.SetValue("Programm", System.IO.Directory.GetCurrentDirectory() + "Programm.exe");
компилятор показывает предупреждение и говорит: "В экземпляре объекта не задана ссылка на объект."
Что делать?

P.S. System.IO подключить не забыл.

 
 
 
 Re: Проблема с записью в реестр.
Сообщение21.07.2010, 13:59 
Во-первых, это не предупреждение, а ошибка, и выдаёт её не компилятор, а среда исполнения.

Во-вторых, Registry.CurrentUser -- это ветка HKEY_CURRENT_USER, поэтому ключа HKEY_LOCAL_MACHINE\SOFTWARE в ней нет и быть не может. Если Вам надо писать в ветку HKEY_LOCAL_MACHINE, то и открывать надо её. Как-то так:
Код:
RegistryKey Key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", true);

В-третьих, к имени каталога надо добавлять '\' или пользоваться стандартным способом:
Код:
string progPath = Path.Combine(Directory.GetCurrentDirectory(), "Programm.exe");

 
 
 
 Re: Проблема с записью в реестр.
Сообщение21.07.2010, 16:28 
Аватара пользователя
Это не помогает.

 
 
 
 Re: Проблема с записью в реестр.
Сообщение21.07.2010, 16:40 
Kitozavr в сообщении #340216 писал(а):
Это не помогает.
Что "это", и что значит "не помогает"?
Программу покажите, пожалуйста.

 
 
 
 Re: Проблема с записью в реестр.
Сообщение21.07.2010, 17:01 
Аватара пользователя
Я в начале не правильно сформулировал задачу, надо внести в автозагрузку не программу, а созданный ею .vbs скрипт.

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.IO;

namespace WindowsFormsApplication1
{
    static class Program
    {
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
     
            StreamWriter writer;
            writer = new StreamWriter("Script.vbs");
            writer.WriteLine("Код скрипта");
            writer.Close();

            Microsoft.Win32.RegistryKey Key =
                       Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", true);
            Key.SetValue("Script", System.IO.Directory.GetCurrentDirectory() + "Script.vbs");// здесь ошибка
            Key.Close();

        }
    }
}

 
 
 
 Re: Проблема с записью в реестр.
Сообщение21.07.2010, 17:13 
Почему бы Вам не прочитать внимательно то, что я написал?
У меня написано
Maslov в сообщении #340197 писал(а):
Как-то так:
Код:
RegistryKey Key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", true);
а у Вас
Kitozavr в сообщении #340219 писал(а):
Код:
Microsoft.Win32.RegistryKey Key =
Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", true);
Уберите префикс HKEY_LOCAL_MACHINE\ из названия ключа.

 
 
 
 Re: Проблема с записью в реестр.
Сообщение21.07.2010, 17:17 
Аватара пользователя
Спасибо!
Я тупой. :oops:

 
 
 
 Re: Проблема с записью в реестр.
Сообщение06.08.2010, 19:45 

(Предположение)

Kitozavr в сообщении #340219 писал(а):
Я в начале не правильно сформулировал задачу, надо внести в автозагрузку не программу, а созданный ею .vbs скрипт.
Агаа, вирус! :wink:

 
 
 
 Re: Проблема с записью в реестр.
Сообщение07.08.2010, 09:36 
Аватара пользователя

(Оффтоп)

arseniiv
Почти, я над одноклассником пошутил.

 
 
 [ Сообщений: 9 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group