시작 프로그램에 다른 프로그램 추가하기


1

컴퓨터에 완전히 다른 프로그램을 추가하면 어떻게 시작할 수 있습니까? 이런 식으로 될까?

My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True).SetValue(Application.ProductName, "C:\APPLICATIONSPATH.fileextension")

추신 : 죄송합니다.


안녕하세요, 여기 새 것처럼 보입니다. 이것은 괜찮은 질문이지만 잘못된 사이트에서 요청한 것입니다. 스택 오버플로는 소프트웨어 설치 질문이 아니라 프로그래밍 질문에 관한 것입니다. 수퍼 유저라는 자매 사이트 중 하나에서이 질문을하는 것이 훨씬 낫습니다.
Taryn East

@TarynEast 그것은 소프트웨어 설치 질문이 아니며, 시작 코드를 입력 할 때 응용 프로그램을 추가해야하는 코드를 묻는 것입니다.

예 - 시작시 소프트웨어 설정에 대해 묻습니다. 컴퓨터 프로그램을 작성하는 방법에 관한 질문이 아닙니다.)
Taryn East

나는 물론 착오가있을 수 있습니다 ... 당신은 컴퓨터 프로그램 내에서 이것을하는 방법에 대해 묻고 있습니까? 그렇다면 질문에 추가하십시오. :)
Taryn East

1
@ 타 리안 이스트 한숨 좋아, 고마워.

답변:


1

시작 프로그램을 추가하는 방법에는 여러 가지가 있습니다.

우선 어떤 OS를 사용하고 있습니까? Windows 버전으로 보입니까?

그리고 어떤 프로그래밍 언어를 사용하고 싶습니까? C 샤프?

당신이 레지스트리에 글을 쓸 수있는 특권이 있다고 가정하면, 당신이 작성한 것은 대체로 정확합니다. 테스트 해 보셨습니까? 또한 RunOnce 하위 키를 사용하여 다음 번 시작시에만 프로그램을 실행할 수 있습니다. 나는 당신이 이전에하려고했던 일을 실제로 해왔지만, 지금은 제한된 권한을 가진 컴퓨터를 사용하고 있으므로 작성한 내용이 완벽하게 정확하다는 것을 확인할 수는 없습니다. 아이디어가 잘되어야하지만 :)

Windows 시작 메뉴 "시작"폴더에 바로 가기를 쓰는 것도 좋습니다. 짧은 코드를 작성하여 실행하려는 응용 프로그램에 대한 바로 가기 파일을 만든 다음 올바른 시작 디렉토리에 바로 가기 파일을 쓰려고 시도 할 수 있습니까? 바로 가기 파일이 아니라면 스크립트 파일을 작성하는 것이 훨씬 쉽습니다. 아마 뭔가 :

@echo off
echo Running a startup program!
pause 
::load program
start /b "" "C:\APPLICATIONSPATH.fileextension"

이를 .vbs 확장자를 가진 파일에 프로그래밍 방식으로 작성하십시오. 이렇게하면 컴퓨터에 익숙하지 않은 사용자가 시작 항목을 수동으로 제거하려는 경우 쉽게 볼 수 있습니다. (나는 이것이 관리 권한에 대한 요구없이 작동 할 수있는 방법이라고 생각합니다. 레지스트리에 쓰기위한 유용한 대안이 될 수 있습니까?)

Windows 8을 사용하는 경우이 시작 폴더는 시작 메뉴 아래에 더 이상 존재하지 않습니다. 대신 다음에서 찾을 수 있습니다.     C : \ Users \ YOURUSER \ AppData \ Roaming \ Microsoft \ Windows \ 시작 메뉴 \ 프로그램 \ 시작

또는 Windows 실행 프롬프트에서 다음을 수행하십시오. 승리 + 아르 자형 달리기로 shell:startup

enter image description here

여기 좀 봐 윈도우 8


1

나는 Windows 시작 trhough 레지스트리 방법론에 외부 응용 프로그램을 추가하거나 제거하는 방법을 용이하게하는이 모듈을 개발했습니다.

시작 범위 (실행 / RunOnce), 사용자 범위 (현재 사용자 / 모든 사용자), 레지스트리 범위 (x86 / x64)를 포함하며 "보안 모드"Windows 로그온에 바이 패스를 추가 할 수도 있습니다.

예제 사용법 :

WinStartupUtil.Add(UserScope.CurrentUser, StartupScope.Run, RegistryScope.System32,
                   title:="Application Title",
                   filePath:="C:\Application.exe",
                   arguments:="/Arg1",
                   secureModeByPass:=True)

WinStartupUtil.Remove(UserScope.CurrentUser, StartupScope.Run, RegistryScope.System32,
                      title:="Application Title",
                      throwOnMissingValue:=True)

소스 코드 :

' ***********************************************************************
' Author   : Elektro
' Modified : 12-October-2015
' ***********************************************************************
' <copyright file="WinStartupUtil.vb" company="Elektro Studios">
'     Copyright (c) Elektro Studios. All rights reserved.
' </copyright>
' ***********************************************************************

#Region " Option Statements "

Option Explicit On
Option Strict On
Option Infer Off

#End Region

#Region " Imports "

Imports System
Imports Microsoft.Win32

#End Region

#Region " WinStartup Util "

''' ----------------------------------------------------------------------------------------------------
''' <summary>
''' Adds or removes an application from Windows Startup.
''' </summary>
''' ----------------------------------------------------------------------------------------------------
Public Module WinStartupUtil

#Region " Constants "

    ''' ----------------------------------------------------------------------------------------------------
    ''' <summary>
    ''' The 'Run' registry subkey path.
    ''' </summary>
    ''' ----------------------------------------------------------------------------------------------------
    Public Const RunSubKeyPath As String = "Software\Microsoft\Windows\CurrentVersion\Run"

    ''' ----------------------------------------------------------------------------------------------------
    ''' <summary>
    ''' The 'Run' registry subkey path for x86 appications on x64 operating system.
    ''' </summary>
    ''' ----------------------------------------------------------------------------------------------------
    Public Const RunSubKeyPathSysWow64 As String = "Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run"

    ''' ----------------------------------------------------------------------------------------------------
    ''' <summary>
    ''' The 'RunOnce' registry subkey path.
    ''' </summary>
    ''' ----------------------------------------------------------------------------------------------------
    Public Const RunOnceSubKeyPath As String = "Software\Microsoft\Windows\CurrentVersion\RunOnce"

    ''' ----------------------------------------------------------------------------------------------------
    ''' <summary>
    ''' The 'RunOnce' registry subkey path for x86 appications on x64 operating system.
    ''' </summary>
    ''' ----------------------------------------------------------------------------------------------------
    Public Const RunOnceSubKeyPathSysWow64 As String = "Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce"

#End Region

#Region " Enumerations "

    ''' ----------------------------------------------------------------------------------------------------
    ''' <summary>
    ''' Specifies an user scope.
    ''' </summary>
    ''' ----------------------------------------------------------------------------------------------------
    Public Enum UserScope As Integer

        ''' <summary>
        ''' 'HKEY_CURRENT_USER' root key.
        ''' </summary>
        CurrentUser = &H1

        ''' <summary>
        ''' 'HKEY_LOCAL_MACHINE' root key.
        ''' </summary>
        AllUsers = &H2

    End Enum

    ''' ----------------------------------------------------------------------------------------------------
    ''' <summary>
    ''' Specifies a Startup scope.
    ''' </summary>
    ''' ----------------------------------------------------------------------------------------------------
    Public Enum StartupScope As Integer

        ''' <summary>
        ''' 'Run' registry subkey.
        ''' </summary>
        Run = &H1

        ''' <summary>
        ''' 'RunOnce' registry subkey.
        ''' </summary>
        RunOnce = &H2

    End Enum

    ''' ----------------------------------------------------------------------------------------------------
    ''' <summary>
    ''' Specifies a registry scope.
    ''' </summary>
    ''' ----------------------------------------------------------------------------------------------------
    Public Enum RegistryScope As Integer

        ''' <summary>
        ''' 'System32' registry subkey.
        ''' </summary>
        System32 = &H1

        ''' <summary>
        ''' 'SysWow64' registry subkey.
        ''' </summary>
        SysWow64 = &H2

    End Enum

#End Region

#Region " Public Methods "

    ''' ----------------------------------------------------------------------------------------------------
    ''' <summary>
    ''' Adds an application to Windows Startup.
    ''' </summary>
    ''' ----------------------------------------------------------------------------------------------------
    ''' <param name="userScope">
    ''' The user scope.
    ''' </param>
    ''' 
    ''' <param name="startupScope">
    ''' The startup scope.
    ''' </param>
    ''' 
    ''' <param name="registryScope">
    ''' The registry key scope.
    ''' </param>
    ''' 
    ''' <param name="title">
    ''' The registry entry title.
    ''' </param>
    ''' 
    ''' <param name="filePath">
    ''' The application file path.
    ''' </param>
    ''' 
    ''' <param name="secureModeByPass">
    ''' If set to <see langword="True"/>, the file is ran even when the user logs into 'Secure Mode' on Windows.
    ''' </param>
    ''' ----------------------------------------------------------------------------------------------------
    ''' <exception cref="System.ArgumentNullException">
    ''' title or filePath
    ''' </exception>
    ''' ----------------------------------------------------------------------------------------------------
    <DebuggerHidden>
    <DebuggerStepThrough>
    Public Sub Add(ByVal userScope As UserScope,
                   ByVal startupScope As StartupScope,
                   ByVal registryScope As RegistryScope,
                   ByVal title As String,
                   ByVal filePath As String,
                   Optional ByVal arguments As String = "",
                   Optional secureModeByPass As Boolean = False)

        If String.IsNullOrEmpty(title) Then
            Throw New ArgumentNullException(paramName:="title")

        ElseIf String.IsNullOrEmpty(filePath) Then
            Throw New ArgumentNullException(paramName:="filePath")

        Else
            If secureModeByPass Then
                title = title.TrimStart("*"c).Insert(0, "*")
            End If

            Dim regKey As RegistryKey = Nothing
            Try
                regKey = WinStartupUtil.GetRootKey(userScope).OpenSubKey(GetSubKeyPath(startupScope, registryScope), writable:=True)
                regKey.SetValue(title, String.Format("""{0}"" {1}", filePath, arguments), RegistryValueKind.String)

            Catch ex As Exception
                Throw

            Finally
                If regKey IsNot Nothing Then
                    regKey.Close()
                End If

            End Try

        End If

    End Sub

    ''' ----------------------------------------------------------------------------------------------------
    ''' <summary>
    ''' Removes an application from Windows Startup.
    ''' </summary>
    ''' ----------------------------------------------------------------------------------------------------
    ''' <param name="userScope">
    ''' The user scope.
    ''' </param>
    ''' 
    ''' <param name="startupScope">
    ''' The startup scope.
    ''' </param>
    ''' 
    ''' <param name="registryScope">
    ''' The registry scope.
    ''' </param>
    ''' 
    ''' <param name="title">
    ''' The registry entry to find.
    ''' </param>
    ''' 
    ''' <param name="throwOnMissingValue">
    ''' if set to <see langword="true"/>, throws an exception on missing value.
    ''' </param>
    ''' ----------------------------------------------------------------------------------------------------
    ''' <exception cref="System.ArgumentNullException">
    ''' title
    ''' </exception>
    ''' 
    ''' <exception cref="System.ArgumentException">
    ''' Registry value not found.;title
    ''' </exception>
    ''' ----------------------------------------------------------------------------------------------------
    <DebuggerHidden>
    <DebuggerStepThrough>
    Friend Sub Remove(ByVal userScope As UserScope,
                      ByVal startupScope As StartupScope,
                      ByVal registryScope As RegistryScope,
                      ByVal title As String,
                      Optional ByVal throwOnMissingValue As Boolean = False)

        If String.IsNullOrEmpty(title) Then
            Throw New ArgumentNullException(paramName:="title")

        Else
            Dim valueName As String = String.Empty
            Dim regKey As RegistryKey = Nothing

            Try
                regKey = WinStartupUtil.GetRootKey(userScope).OpenSubKey(GetSubKeyPath(startupScope, registryScope), writable:=True)

                If (regKey.GetValue(title, defaultValue:=Nothing) IsNot Nothing) Then
                    valueName = title

                ElseIf (regKey.GetValue(title.TrimStart("*"c).Insert(0, "*"), defaultValue:=Nothing) IsNot Nothing) Then
                    valueName = title.TrimStart("*"c).Insert(0, "*")

                ElseIf throwOnMissingValue Then
                    Throw New ArgumentException(paramName:="title", message:="Registry value not found.")

                End If

                regKey.DeleteValue(valueName, throwOnMissingValue)

            Catch ex As Exception
                Throw

            Finally
                If regKey IsNot Nothing Then
                    regKey.Close()
                End If

            End Try

        End If

    End Sub

#End Region

#Region " Private Methods "

    ''' ----------------------------------------------------------------------------------------------------
    ''' <summary>
    ''' Gets a <see cref="RegistryKey"/> instance of the specified root key.
    ''' </summary>
    ''' ----------------------------------------------------------------------------------------------------
    ''' <param name="userScope">
    ''' The user scope.
    ''' </param>
    ''' ----------------------------------------------------------------------------------------------------
    ''' <returns>
    ''' A <see cref="RegistryKey"/> instance of the specified root key.
    ''' </returns>
    ''' ----------------------------------------------------------------------------------------------------
    ''' <exception cref="System.ArgumentException">
    ''' Invalid enumeration value.;userScope
    ''' </exception>
    ''' ----------------------------------------------------------------------------------------------------
    <DebuggerHidden>
    <DebuggerStepThrough>
    Private Function GetRootKey(ByVal userScope As UserScope) As RegistryKey

        Select Case userScope

            Case WinStartupUtil.UserScope.CurrentUser
                Return Registry.CurrentUser

            Case WinStartupUtil.UserScope.AllUsers
                Return Registry.LocalMachine

            Case Else
                Throw New ArgumentException("Invalid enumeration value.", "userScope")

        End Select ' userScope

    End Function

    ''' ----------------------------------------------------------------------------------------------------
    ''' <summary>
    ''' Gets the proper registry subkey path from the parameters criteria.
    ''' </summary>
    ''' ----------------------------------------------------------------------------------------------------
    ''' <param name="startupScope">
    ''' The startup scope.
    ''' </param>
    ''' 
    ''' <param name="registryScope">
    ''' The registry key scope.
    ''' </param>
    ''' ----------------------------------------------------------------------------------------------------
    ''' <returns>
    ''' The registry subkey path.
    ''' </returns>
    ''' ----------------------------------------------------------------------------------------------------
    ''' <exception cref="System.ArgumentException">
    ''' Invalid enumeration value.;startupScope or 
    ''' Invalid enumeration value.;registryScope
    ''' </exception>
    ''' ----------------------------------------------------------------------------------------------------
    <DebuggerHidden>
    <DebuggerStepThrough>
    Private Function GetSubKeyPath(ByVal startupScope As StartupScope,
                                   ByVal registryScope As RegistryScope) As String

        Select Case registryScope

            Case WinStartupUtil.RegistryScope.System32

                Select Case startupScope

                    Case WinStartupUtil.StartupScope.Run
                        Return WinStartupUtil.RunSubKeyPath

                    Case WinStartupUtil.StartupScope.RunOnce
                        Return WinStartupUtil.RunOnceSubKeyPath

                    Case Else
                        Throw New ArgumentException("Invalid enumeration value.", "startupScope")

                End Select ' startupScope

            Case WinStartupUtil.RegistryScope.SysWow64

                Select Case startupScope

                    Case WinStartupUtil.StartupScope.Run
                        Return WinStartupUtil.RunSubKeyPathSysWow64

                    Case WinStartupUtil.StartupScope.RunOnce
                        Return WinStartupUtil.RunOnceSubKeyPathSysWow64

                    Case Else
                        Throw New ArgumentException("Invalid enumeration value.", "startupScope")

                End Select ' startupScope

            Case Else
                Throw New ArgumentException("Invalid enumeration value.", "registryScope")

        End Select ' registryScope

    End Function

#End Region

End Module

#End Region
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.