2012-12-06 10 views
0

사용자 (CreateProcessAsUser())로 프로세스를 생성하여 사용자 화면에서 응용 프로그램을 시작합니다. 응용 프로그램이 시작되기 전에 어떻게 든 사용자의 화면에서 실행되는 함수를 가져와야합니다. 내 생각은 CreateRemoteThread()이었고 여기에 내 기능을 넣었지 만 이것은 CreateProcessAsUser()이 이미 응용 프로그램을 시작한 후 일어날 것입니다. 아무 것도 조언하나요? 감사합니다프로세스가 실행되기 전에 스레드가 완료되기를 원합니다.

+0

나는 WinAPI인가? – dutt

+0

입니다. createprocessasuser 호출 전에 함수 호출을했지만 그 함수는 숨겨진 Session 0에서 호출됩니다. 스레드를 사용하여 사용자 세션에서 함수를 호출 할 수 있다고 생각했습니다. – user1881918

답변

0

사용자의 기능을 실행하는 새 응용 프로그램을 만든 다음 대상 응용 프로그램을 실행합니다 (을 통해 새 응용 프로그램이 시작됨에 따라 CreateProcess()을 사용하여 수행 할 수 있음).

+0

또 다른 새로운 응용 프로그램의 생성을 우회하는 방법이 있습니까? 다음과 같이 할 수 있습니다 : CreateProcessAsUser를 사용하여 응용 프로그램을 시작하지 않는 프로세스를 만든 다음 내 함수를 호출하는이 프로세스에 스레드를 할당 한 다음 원래 응용 프로그램과 함께 다른 프로세스 (CreateProcessAsUser)를 만듭니다. – user1881918

+0

@ user1881918 : "응용 프로그램을 시작하지 않는 프로세스 만들기"- 프로세스는 응용 프로그램입니다. 인터페이스입니까? 나는'CreateRemoteThread'를 피할 것입니다. - 실행시키고 자하는 응용 프로그램이 64 비트이고 응용 프로그램이 32 비트라면 어떻게할까요? 스레드를 삽입 할 수 없습니다. 'GetModuleFileName'을 사용하여 호출 애플리케이션에서'CreateProcessAsUser'를 실행해야합니다. 즉, '함수'를 수행하라는 명령 행 매개 변수를 사용하면 하나의 애플리케이션 만 필요하지만 두 가지 작업을 수행해야합니다. – parrowdice

+0

네,하지만 인터페이스를 의미하지만, 어떤 exe는 어떤 용도로도 사용되지 않을 것입니다. 고마워요. – user1881918