2011-03-20 4 views
1

UI 만 Windows 작업 표시 줄 아이콘 인 앱을 만들었습니다. 앱이 직접 시작되면 (예 : Windows 탐색기에서 앱을 두 번 클릭하면) 작업 표시 줄 아이콘이 올바르게 표시됩니다. 이 앱이 항상 실행되고 있는지 확인해야합니다. 이를 위해, 나는 응용 프로그램이 계속 실행되는 경우 10 초마다 확인하고하지 않을 경우, 그것이 내가 작업에서 볼 수있는 과정이 시작시스템 사용자의 작업 표시 줄 아이콘은 어디에 있습니까?

System.Diagnostics.Process.Start("MyApp.exe"); 

를 호출하여 다시 시작됩니다 C#에서 Windows 서비스를 만들어 매니저. 그러나 작업 표시 줄 아이콘을 찾을 수 없습니다. 한 가지는 윈도우 서비스에서 시작할 때 시스템 사용자 이름으로 실행된다는 것입니다.

Windows 서비스에서 시작할 때 작업 표시 줄 아이콘을 표시하려면 어떻게합니까?

+0

서비스를 SYSTEM으로 실행하지 마십시오. 이 목적을 위해 LOCALSERVICE가 필요하다고 생각합니다. –

+0

왜 항상 실행되는지 확인해야합니까? 사용자가 가드 서비스를 중지하고 앱을 종료하지 못하도록하는 것은 무엇입니까? 아니면 응용 프로그램이 벗겨 지거나 많이 충돌합니까? –

답변

1

서비스는 Vista 또는 Win7 사용자와 동일한 데스크톱에 액세스 할 수 없습니다. 기본적으로 다른 프로세스가 시작한 응용 프로그램은 시작한 응용 프로그램과 동일한 권한을가집니다 (동일한 계정으로 실행됩니다). 사용자 계정으로 서비스를 실행하거나 ImpersonateLoggedOnUser (이 함수의 .NET 버전이 무엇인지 잘 모름)을 사용해야합니다. 시작 지점으로이 함수를 찾을 수 있기를 바랍니다.

+0

서비스는'CreateProcessAsUser()'함수 (또는 .NET equivilent가 무엇이든)를 사용하여 트레이 아이콘 앱을 실행해야합니다. –

관련 문제