아무래도 그건 수정해야 할듯 한데요~!
윈도우Application에서 통신부분만 Service로 빼야 할듯..
'서비스와 데스크톱 상호 작용 허용'을 체크하지 않고
Service에서 Application을 CreateProcess한경우
Application이 Sercice-Desktop에 생성되어서 그렇습니다.
'서비스와 데스크톱 상호 작용 허용'을 체크하지 않고도
로그인 계정 Desktop에 Application을 Create할수도 있습니다.
이경우 SendMessage 나 FindWindow같은것은 안되지만
다른 여러가지 IPC를 이용해 Service와 통신하면 될듯 하구요
( IPC로는 Pipe 나 Socket , 공유메모리등...)
그럼..
Clyde Lee 님이 쓰신 글 :
: 장성호 님이 쓰신 글 :
: : Clyde Lee 님이 쓰신 글 :
: : : 안녕하세요.
: : :
: : : 질문을 하나 드리려 합니다.
: : :
: : : 일반 윈도우 응용프로그램이 있는데 delphi7로 만들어졌습니다.
: : :
: : : 사용자가 로그오프 시에도 사용하고 싶어서
: : :
: : : 제가 NT서비스 프로그램으로 해당 응용 프로그램을 실행하게 만들었습니다.
: : :
: : : 해당 윈도우 프로그램은 SYSTEM 계정으로 실행 되었구요..
: : :
: : : 근데 사용자가 로그오프를 하면 SYSTEM 계정의 윈도우 프로그램도 같이 종료 되더군요....
: : :
: : : 서비스 속성에서 '서비스와 데스크톱 상호 작용 허용'을 끄면 종료가 안되지만
: : :
: : : 그걸 끄면 사용자가 해당 윈도우 프로그램의 GUI를 사용할수 없어서 안되구요...
: : :
: : : SYSTEM 계정 윈도우 프로그램을 로그오프시 종료 안되게 할수 없나요??
: :
: : 로그오프 한 후에도 어플리케이션이 죽지 않고 계속사용하고 싶다는 말씀이 무슨 말씀인지요?
: :
: : 로그오프 화면에서 쓰고싶다는 말씀인지?
: :
: : 아니면 화면에 안보이더라도
: : 통신이나.. 뭐 그런것 때문에 계속 살려노고 싶다는 얘기인지?
: :
: :
: : 정확히 잘모르지만 기본적으로는 불가능한 얘기인것 같구요
: :
: : 로그오프화면(즉 로그인화면)에서 프로그램을 보고 싶다면
: : 로그인-desktop에 프로그램을 다시 실행시켜야 할듯 한데요..
: :
: : 만약 통신 등을 위해 필요하다면..
: : Service프로그램으로 구현하는것이 좋을것 같구요..
: :
: : 그럼..
:
: 설명이 부족했나 봅니다.
:
: 윈도우 프로그램이 사용자 GUI + 통신 서버 인 프로그램이라서 그렇습니다.
:
: 사용자가 로그오프를 해도 살아있고 다시 로그인 했을때도 보이고 그래야 하는데
:
: 사용자 로그인 계정으로 뜨면 안될거 같아서
:
: 제가 서버스 프로그램으로 해당 윈도우 프로그램을 CreateProcess로 실행하게 만들어 보았습니다.
:
: 그럼 모든게 SYSTEM 계정이라 사용자가 로그오프를 해도 종료안되고 다음 로그인 할때도 보이지 않을까 생각했는데
:
: 그게 아니라 서요.
:
: 원래는 서비스로 만들어야 하는건데 원 제작자가 그냥 윈도우 프로그램 형식으로 만들어서 전체적 수정은 좀 엄두가 아나서요
|