Запуск программы вместе с Windows - Visual Basic .NET

  1. Как сделать что бы программа запускалась вместе с Windows?


textual

Код к задаче: «Запуск программы вместе с Windows - Visual Basic .NET»

Dim autostart As Microsoft.Win32.RegistryKey = My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True)
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        autostart.SetValue("MyProgramm", Application.ExecutablePath) 
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        autostart.DeleteValue("MyProgramm")
    End Sub

СДЕЛАЙТЕ РЕПОСТ

15   голосов, оценка 3.800 из 5



Похожие ответы
  1. Добрый день. В приложении используется NotifyIcon для отображения иконки в системном трее. Когда работа с программой закончена (все окна закрыты, процесса запущенного нет) - иконка продолжает висеть в трее и не исчезает оттуда. Если навести курсор мыши - исчезает. Как сделать, чтоб исчезала сразу, без наведения курсора? А то создается впечатление, что прога продолжает работать.. Спасибо.

  1. Доброго времени суток, подскажите новичку, как реализовать запуск ярлыка при нажатие кнопки на форме. Например если ярлык лежит по адресу "D:\programma.lnk" Спасибо.

  1. Доброго времени! Прошу помощи, т.к. не пойму в чём дело. Если вручную заполнить "Коллекцию" ComboBox, то всё работает, файлы .pdf запускаются "наУра". А вот если получить имена файлов так:vb.net1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Public Class Form1     Dim p As Process     Dim dirpath As String       Private Sub ComboBox1_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedValueChanged         Dim filename As String         filename = ComboBox1.SelectedItem         p = Process.Start(dirpath & filename)         'MsgBox(dirpath & filename)     End Sub       Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load         dirpath = Application.StartupPath & "\Manuals"         Dim Files() As String = IO.Directory.GetFiles(dirpath)         For Each fl As String In Files             ComboBox1.Items.Add(IO.Path.GetFileName(fl) & vbCrLf)         Next     End Sub End Classто выдаёт ошибку исключения, типа не найден файл. Хотя, если вместо запуска процесса раздокументировать MsgBox, то полный путь выводит правильный. Проверял на вновьсозданной ссылке на раб.столе (типа может какой-нибудь символ не в той раскладке...).

  1. Программа написана на VB.net установлена на 14 компьютерах, и у некоторых юзеров время от времени перестает грузиться - на панели задач появляется значок, что программа загружена, на экране форма не появляется. Моя программа с реестром не работает (не сохраняет в него и не читает из него). Прохожу по реестру ССleaner он пишет - Ошибки путей приложения и указывает путь к моей программе. Проблема решается в принципе элементарно, переименовываешь папку, где лежит программа и она начинает нормально работать. Но разобраться хочется, я грешу на то, что сохраняю размеры формы и местоположение ее с помощью Settings:vb.net1 2 3 'Грузим из настроек, положение формы на экране и ее размер         Me.Location = New Point(My.Settings.f1x, My.Settings.f1y)         Me.Size = New Size(My.Settings.f1w, My.Settings.f1h)vb.net1 2 3 4 5 6 'Запоминаем размер и положение формы в настройках         My.Settings.F1x = Me.Location.X         My.Settings.F1y = Me.Location.Y         My.Settings.F1h = Me.Size.Height         My.Settings.F1w = Me.Size.Width         My.Settings.Save()Может кто нибудь сталкивался с подобной проблемой и может подсказать пути решения!

  1. Доброго времени дорогие знатоки! Возник такой вопрос: можно ли открыть презентацию в vb 2010. Если да, то где и как? Спасибо

  1. Пишу программу, вычисляющую цикл с постусловием. Я думаю, что где-то я допустила ошибку.vb.net1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 Module Module1       Sub Main()         'Объявление строковых констант для сообщений         Const СтрокаВыйти As String = "выйти из программы - любая другая клавиша."         Const СтрокаОшибка As String = ControlChars.CrLf & "Ошибка: "         Const СообщениеПовторить As String = ControlChars.CrLf &             "Если вы хотите повторить ввод значения " &             "нажмите клавишу (п), " & СтрокаВыйти         Const СообщениеПродолжить As String = ControlChars.CrLf &             "Если вы хотите продолжить работу " &             "нажмите клавишу (д), " & СтрокаВыйти         Dim S As Double = 1, Sk, Epsilon As Double         'S - сумма членов рядов, Sk - k-ый член ряда, Epsilon - точность         Dim k As Integer = 1 'Номер очередного члена         Dim x As Integer = 1           Do 'Начало цикла для повтора всей программы             '1. Ввод исходных данных             Try                 Console.WriteLine("Введите точность вычисления корня Эпсилон: ")                 Epsilon = Console.ReadLine()                 Console.WriteLine("Введите значение x: ")                 x = Console.ReadLine()                 Exit Do             Catch ex As Exception                 Console.WriteLine(СтрокаОшибка & ex.Message & СообщениеПовторить)                 If Console.ReadKey(True).Key <> ConsoleKey.G Then Exit Sub             End Try         Loop 'Заверешение бесконечного цикла           '2. Цикл накопления суммы и вычисления значения члена ряда         Do                 k += 1                 Sk = (-1) ^ k + 1                 Sk = x ^ k / k                 S += Sk             'Пока член ряда не станет меньше Epsilon, повторять цикл         Loop While Sk > Epsilon           '3. Сумма членов ряда         Console.WriteLine("Сумма членов рядов S = {0}", S)           Console.WriteLine(СообщениеПродолжить)         'Завершение цикла для повтора всей программы         End Sub   End Module

  1. В Добавление программы в автозапуск описано как добавить программу в автозапуск (в реестре). Реально запись добавляется по следующему адресу: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run Как теперь отменить это действие?vb.net1 2 3 4 5 6 7 8 9 10 Public Class Form1     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click         'Добавление программы в автозапуск         My.Computer.Registry.SetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Блокнот", "notepad.exe")     End Sub     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click         'Удаление программы из автозапуска         '  ?     End Sub End ClassДобавлено через 2 часа 40 минут Нашёл ответ: Как удалить из реестра строковый параметр ? кстати ответ чуть ниже Как удалить из реестра строковый параметр ? вызвал ошибку, видимо не найдя удаляемого ключа

  1. Вот код контрола:vb.net1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 Partial Public Class Canvas     Inherits UserControl #Region "Переменные"     Private m_BitmapImage As Bitmap     Private m_BackColor As Color #End Region #Region "Свойства"     Public Property BitmapImage() As Bitmap         Get             Return m_BitmapImage         End Get         Set(ByVal value As Bitmap)             m_BitmapImage = value         End Set     End Property     Public Overrides Property BackColor() As Color         Get             Return m_BackColor         End Get         Set(ByVal value As Color)             m_BackColor = value             Me.Invalidate()         End Set     End Property #End Region #Region "Конструктор"     Public Sub New()         InitializeComponent()         BitmapImage = New Bitmap(Me.Width, Me.Height)     End Sub #End Region     Private Sub PaintCanvas_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load         Clear()     End Sub     Public Sub Clear()         Dim br As New SolidBrush(Me.BackColor)         Using g As Graphics = Graphics.FromImage(BitmapImage)             g.FillRectangle(br, New Rectangle(Me.Location, Me.Size))         End Using         Me.Invalidate()     End Sub     Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)         MyBase.OnPaint(e)         e.Graphics.DrawImage(Me.BitmapImage, 0, 0)     End Sub     Public Sub Line(ByVal aPen As Pen, ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single)         Using g As Graphics = Graphics.FromImage(BitmapImage)             g.DrawLine(aPen, x1, y1, x2, y2)             Me.Invalidate()         End Using     End Sub End Classвот код тестовой формы:vb.net1 2 3 4 5 6 7 8 9 10 11 12 Public Class Form1     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click         Dim pen As New Pen(Color.Red, 10)         Canvas1.Line(pen, 20, 30, 250, 400)     End Sub     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click         Canvas1.Clear()     End Sub     Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click         Canvas1.BackColor = Color.Green     End Sub End ClassВ дизайнере устанавливаю цвет фона контрола ( BackColor) , всё ОК. Запускаю проект с контролом - цвет куда то исчезает.

  1. Здравствуйте, уважаемые программисты, кодеры и просто знающие люди. Пытаюсь написать код, который позволит из внешнего класса(Подключаемой библиотеки DLL) Перезапустить программу от имени Администратора. Попробовал такой код:vb.net1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Private Sub RunAsAdmin()             If IsAdmin() = False Then                 Dim P As New Process                 P.StartInfo.FileName = Application.ExecutablePath                 P.StartInfo.Verb = "runas"                 P.Start()                 Process.GetCurrentProcess.Kill()             Else                 Console.WriteLine("Application is now running as Admin")             End If         End Sub         Private Function IsAdmin() As Boolean             Try                 Dim User As WindowsIdentity = WindowsIdentity.GetCurrent                 Dim Principal As WindowsPrincipal = New WindowsPrincipal(User)                 Return Principal.IsInRole(WindowsBuiltInRole.Administrator)             Catch ex As Exception                 Return False             End Try         End FunctionНе подает признаков жизни. Буду очень признателен, если кто-нибудь откликнется и восстановит справедливость.