나는이 비슷한 주제에 대해 적절한 해결책이없는 비슷한 질문을 모두 읽었다.현재 프로세스가 서비스인지 여부를 어떻게 알 수 있습니까 (C++, Win32)?
내가 알고 싶은 것은 내 코드가 실행중인 응용 프로그램인지 서비스인지 응용 프로그램인지 여부를 어떻게 알 수 있습니까? 왜 이것을 알고 싶습니다 - 대상 응용 프로그램에 주입되는 코드를 작성하고 있으며이 코드는이 정보를 알 수있는 방법이 없기 때문에 코드 자체를 해결해야합니다.
서비스 제어 관리자, 시작, 중지 또는 명령 줄 매개 변수에서 호출되는 코드에 의존 할 수 없습니다.
현재 서비스 (콘솔 없음)에 대한 NULL과 콘솔 (응용 프로그램)에 대한 창 핸들을 반환하는 GetConsoleWindow()를보고 있습니다. 이 가정이 얼마나 유효한지 잘 모르겠습니다.
더 나은 솔루션을위한 아이디어가 있습니까?
감사
스티븐
코드에서 알아야하는 이유는 무엇입니까? 아마도 그 것을 분명히 감지 할 수있을 것입니다. 예를 들어, 사용자의 대화 형 데스크톱 (또는 터미널 서버의 데스크톱)에만 영향을 주거나 SYSTEM 계정 (또는 다른 서비스 계정) 내에서 실행하지 않으려는 경우 해당 항목을 검색 할 수 있습니다. –
서비스를 정의하는 방법 (OS가 염려하는 한 APP는 단지 APP 임). 서비스를 정의하는 방법은 우리가 그것을 탐지 할 수있는 방법을 나타낼 것입니다. –
서비스가 "services.msc"제어판에 나열된 것 같아요.;) – jalf