본문 바로가기

Programing (프로그래밍)/WPF & C# (C Sharp)

WPF & C# - 시작프로그램 등록 ( Run / 레지스트리 / 윈도우 시작 / 자동실행 / AutoStart )

728x90
반응형


 WPF & C# - 시작프로그램 등록 ( Run / 레지스트리 / 윈도우 시작 / 자동실행 / AutoStart )



시작프로그램등록 복사해서 붙여넣기 하려고 남겨놓는다.

가장 심플하다고 생각한다.

시작프로그램 레지스트리에 관련해서 자세한부분은 http://insurang.tistory.com/34 을 참고하시면 됩니다.


시작프로그램 등록 ( REGKey 수정 )


MainWindow.xaml


1
2
3
4
5
6
7
8
9
10
11
12
13
14
<Window x:Class="testRunPrograms_Regedit_.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:testRunPrograms_Regedit_"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
    <Grid>
        <CheckBox x:Name="chkRunProgram" Content="시작프로그램 등록" HorizontalAlignment="Center" VerticalAlignment="Center" Click="CheckBox_Click"/>
 
    </Grid>
</Window>
 
cs



MainWindow.xaml.cs


1
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
using Microsoft.Win32;
using System;
using System.Windows;
 
namespace testRunPrograms_Regedit_
{
    /// <summary>
    /// MainWindow.xaml에 대한 상호 작용 논리
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
 
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            // 시작프로그램 등록 여부 확인
            if (runRegKey.GetValue("프로그램명"== null) chkRunProgram.IsChecked = false;
            else chkRunProgram.IsChecked = true;
        }
 
        RegistryKey runRegKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"true);
 
        private void CheckBox_Click(object sender, RoutedEventArgs e)
        {
            if (chkRunProgram.IsChecked == true)
            {
                runRegKey.SetValue("프로그램명", Environment.CurrentDirectory + "\\" + AppDomain.CurrentDomain.FriendlyName);
            }
            if (chkRunProgram.IsChecked == false)
            {
                runRegKey.DeleteValue("프로그램명"false);
            }
        }
 
    }
}
 
cs


별다른 부연설명이 필요없지 않을까 싶다.


일단 처음부분의 Window_Loaded 에서 윈도우창이 뜨면서 레지스트리에 시작프로그램이 등록 여부를 확인한다.


체크박스를 클릭할때마다 등록 삭제를 반복해준다.

만약, 비슷한 Checked UnChecked 이벤트에 등록하게 되면 처음부분의 Window_Loaded 에서 중복으로 체크하게 되니 주의하자.




728x90
반응형