[.NET 6.0]RegistryKey로 시작 프로그램 등록하기

2023. 9. 25. 15:24Just do IT/C#

반응형

애플리케이션을 만들면 시작 프로그램에 등록하여 윈도우 부팅 시 시작되어야 하는 경우가 있습니다.

아래와 같이 코드를 작성하면, 애플리케이션 시작시 시작 프로그램으로 등록하고,

이후 시작시에는 애플리케이션의 시작프로그램 등록 여부를 확인하여, 패스합니다.

        public void srartupReg()
        {

            try
            {
                string runKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run";
                string appName = "ProcessMonitoring";

                using (var baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, Environment.Is64BitOperatingSystem ? RegistryView.Registry64 : RegistryView.Registry32))
                {
                    using (var strUpKey = baseKey.OpenSubKey(runKey, writable: true))
                    {
                        if (strUpKey.GetValue(appName) == null)
                        {
                            strUpKey.SetValue(appName, Application.ExecutablePath);
                            MessageBox.Show("시작 프로그램으로 등록되었습니다.");
                        }
                    }
                }
            }
            catch
            {
                MessageBox.Show("시작 프로그램 등록에 실패하였습니다.");
            }

        }

Method명은 원하시는 대로 하시면 되고, appName은 시작프로그램에 등록하고자 하는 애플리케이션명으로 등록하면 됩니다.

LocalMachine 부분에서 오류가 나거나, 본인의 PC에서는 정상적으로 동작을 하나

다른 PC에서 테스트한 경우 정상적으로 동작을 하지 않는 다면, 관리자 권한 문제로 인한 것이므로,

아래의 글을 참조하여 애플리케이션을 관리자권한이 있는 애플리케이션으로 만드시면 됩니다.

 

이 권한 문제는 개발한 애플리케이션이 관리자 권한이 있는 다른 애플리케이션을 동작하는 형태의 애플이케이션인 경우에 정상적으로 실행시키지 못하는 문제가 발생할 수 있으므로,

Windows UAC( User Account Control :사용자 계정 컨트롤) 설정과 타 애플리케이션의 권한 문제등을 고려하여 수정해야 하는 부분이 있을 수 있습니다.

하지만, 위와 같이 작성하고 만들고자 하는 애플리케이션을 관리자 권한이 필요한 애플리케이션으로 만들면 문제없이 동작하였습니다.

 

https://metalheart.tistory.com/7

 

[.NET 6.0]관리자 권한으로 실행되는 애플리케이션 만들기

업무를 위해 만들어 보고 싶은 프로그램이 있어서 c#으로 작업을 해 보았습니다. PC에서 작동되고 있는 애플리케이션이 자꾸 셧다운 되는 증상이 발생하여, 프로그램을 자동으로 재시작 시켜 줄

metalheart.tistory.com

https://metalheart.tistory.com/19

 

[.NET 6.0]RegistryKey를 이용하여 등록되어 있는 시작 프로그램 해제하기

애플리케이션 최초 구동시 시작프로그램에 등록하는 기능을 구현하였다면, 반대로 등록되어 있는지 여부를 확인하여 시작 프로그램에서 해제 해야 하는 경우도 필요합니다. 아래 코드와 같이

metalheart.tistory.com

 

반응형