2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Проблема с записью в реестр.
Сообщение21.07.2010, 13:14 
Аватара пользователя


03/03/10
1341
С помощью следующего кода я пытаюсь поместить свою программу в автозагрузку:
Код:
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 
Заслуженный участник


09/08/09
3438
С.Петербург
Во-первых, это не предупреждение, а ошибка, и выдаёт её не компилятор, а среда исполнения.

Во-вторых, 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 
Аватара пользователя


03/03/10
1341
Это не помогает.

 Профиль  
                  
 
 Re: Проблема с записью в реестр.
Сообщение21.07.2010, 16:40 
Заслуженный участник


09/08/09
3438
С.Петербург
Kitozavr в сообщении #340216 писал(а):
Это не помогает.
Что "это", и что значит "не помогает"?
Программу покажите, пожалуйста.

 Профиль  
                  
 
 Re: Проблема с записью в реестр.
Сообщение21.07.2010, 17:01 
Аватара пользователя


03/03/10
1341
Я в начале не правильно сформулировал задачу, надо внести в автозагрузку не программу, а созданный ею .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 
Заслуженный участник


09/08/09
3438
С.Петербург
Почему бы Вам не прочитать внимательно то, что я написал?
У меня написано
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 
Аватара пользователя


03/03/10
1341
Спасибо!
Я тупой. :oops:

 Профиль  
                  
 
 Re: Проблема с записью в реестр.
Сообщение06.08.2010, 19:45 
Заслуженный участник


27/04/09
28128

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

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

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


03/03/10
1341

(Оффтоп)

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group