윈폼을 백그라운드에서 실행되지 않게 설정할수있을까요?

안녕하세요

윈폼으로 만든 프로그램이 있는데
중간에 자동으로 재시작할수있도록 윈도우 서비스를 하나 만들었습니다.
exe파일을 실행하는데 윈도우서비스가 백그라운드에서 돌아가는거라 그런지
윈폼 프로그램도 백그라운드로 실행이되네요ㅠㅠ…
그래서 그런지 로그파일도 저장이 하나도 안되고 …

혹시 백그라운드로 실행되지 않게 할수있는 방법이 있을까요?..

dougrathbone/ProcessAsUser: A c# managed library for executing processes as another user, and mimicking the normal Process.Start(); framework methods used normally. (github.com)

2 Likes

윈도우 11에서 잘 되더군요.

1 Like

이해를 돕기위해 첨언 드리자면, 해당 이슈의 원인은 정성태(@kevin13)님께서 정리해주신 내용을 보시면 이해하실 수 있습니다.

Windows: 209. Windows NT Service에서 UI를 다루는 방법 (sysnet.pe.kr)

[.NET] Windows Service에서 UI 사용하기 : 네이버블로그 (naver.com)


백그라운드 서비스는 0번 세션에서 실행되고, 우리가 보고 있는 세션은 주로 1번 세션(User Session)에 속해 있기때문에 때문인데요, 0번 세션에서 구동되는 서비스 프로그램에서 윈폼 프로세스를 생성하면 이 역시 0번 세션에서 실행되기 때문입니다.

@그라목손 님께서 올려주신 링크는 위의 문제를 해결하기 위한, Session 0에서 User Session에서 실행되는 프로세스를 만들어주는 라이브러리 입니다.

5 Likes

정말 감사합니다!!

정말 감사합니다!! ㅠㅠ

친절한 설명 감사합니다!! ㅠㅠ