앙큼한 개발기록

[c#] 윈도우 자동 실행 후 꺼짐 본문

개발

[c#] 윈도우 자동 실행 후 꺼짐

angkeum 2023. 5. 23. 12:16

c#을 자동실행 등록후 

시스템을 다시시작했을 때 

프로그램이 켜졌다 꺼지거나 아예 안켜지는 경우가 있다. 

 

# 프로그램 자동실행 등록

https://angkeum.tistory.com/entry/c-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EC%9E%90%EB%8F%99%EC%8B%A4%ED%96%89

 

 

우선 확인해 볼 사항은 

application manifest file에서 level=requireAdministrator로 되어 있으면 

프로그램 자체 권한이 관리자 권한으로 실행이 되기 때문에

시작되지 않을 수 있다.

 

해당 권한을 낮추고 

프로그램 내부에서 관리자 권한을 부여하는 방법으로 변경해야 된다. 

 

#프로그램 시작시 관리자 권한 부여 방법

https://angkeum.tistory.com/entry/c-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EC%8B%9C%EC%9E%91%EC%8B%9C-%EA%B4%80%EB%A6%AC%EC%9E%90%EA%B6%8C%ED%95%9C

 

[c#] 프로그램 시작시 관리자권한

프로젝트에서 관리자 권한이 필요한 경우가 있다. 나는 로그 파일, config 파일을 txt로 저장해서 저장 및 호출 할때 관리자 권한이 필요하여 초기 프로그램 시작시 권한을 부여 하였다. 관리자 권

angkeum.tistory.com

 

manifest 설정도 안되어 있고, 혹은 관리자 권한도 아닌데 꺼지는 경우는 프로그램 동작시 에러가 발생해서 인데 에러는 프로젝트 마다 프로그램 마다 다양하게 나타난다. 

 

이를 확인하기 위해 form을 처음 시작하는 Program.cs나 Main.cs에서 try catch로 잡아서 확인해야 된다. 

            try
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
            catch (Exception ex)
            {
                MessageBox.Show($"시스탬을 재시작하지 못했습니다 \r\n {ex}", "에러");
            }

 

나의 경우에는 

config 파일 및 로그 파일을 .txt로 저장, 호출 하였는데 

자동실행에서 호출될때 Windows안에 txt 파일을 읽고 쓰려고 해서 

권한 부족으로 시스템이 다운 되었다.  

 

이러한 경우 프로그램 시작시 관리자 권한을 부여하여 

프로그램에 권한을 주거나 

디렉토리 루트를 Windows나 Programs 밖으로 빼서 관리자 권한이 필요 없는 곳으로 이동하면 된다.

 

이번 경우에는 txt 파일을 ini 파일로 변경하고 kernal로 읽으니 해결 되었다. 

# ini 파일 kernal로 읽고 쓰기

https://angkeum.tistory.com/entry/C-ini-%ED%8C%8C%EC%9D%BC-kernal%EB%A1%9C-%EC%9D%BD%EA%B3%A0-%EC%93%B0%EA%B8%B0

 

[C#] ini 파일 kernal로 읽고 쓰기

url, host, serialport 등등 상수를 저장하고 해당 값을 호출 할때 txt 파일과 ini 파일로 저장하여 데이터를 호출 및 저장하면 window 외부에서 파일을 열어 수정도 가능하고 static한 데이터를 읽고 쓰고

angkeum.tistory.com

 

Comments