2010-01-06 3 views
0

SysTray로 최소화 된 타사 응용 프로그램을 복원 할 수 있습니까?시스 트 레이에서 응용 프로그램을 복원하는 방법은 무엇입니까? ShowWindow는 Handle = 0 이후 도움이되지 않습니다

ShowWindow를 호출하면 TaskBar로 최소화 된 응용 프로그램에서 문제가 없지만 응용 프로그램이 SysTray로 최소화되어 나타나는 경우 핸들이 0으로 설정되고 물론 ShowWindow에서 찾을 수 없습니다.

+0

핸들이 "0으로 설정됩니다"라고 말하면 어떻게 창 핸들을 얻고 있습니까? 프로세스에서 –

+0

, Process.GetProcessesByName을 통해, myProcess.MainWindowHandle을 사용합니다. Process 핸들과 Windows 핸들을 muddling하는 것이 가능합니다. 어떤 충고? – hawbsl

답변

0

Adam Robinson 및 nobugz의 유용한 조언. 우리가 시도하고있는 것이 가능하지 않을 수도 있다는 것을 알게 도와주었습니다. 너무 많은 것은 앱이 숨어있을 때 앱이 내부적으로 어떻게 행동하는지에 달려 있습니다. 앱을 숨기거나 제어하지 못하고 앱에 대해 많이 알지도 못합니다. 우리는 이것을 다른 방향에서 접근해야했습니다.

앱이 사용자 마우스를 통해 활성화되기를 기다리는 시스템 트레이에 앉아 있지만이를 자동화 할 수 없습니다. 하지만 앱을 "활성화"하는 또 다른 방법은 exe 파일을 다시 실행하는 것입니다. 이 경우 두 번째 인스턴스가 시작되지 않고 기존 인스턴스가 다시 활성화됩니다. 그렇다면 왜 Shell을 exe 파일로 옮기고 그런 식으로 앱을 재 활성화하지 않을까요? 이것이 우리가 한 일이며 작동하는 솔루션입니다.

2

아니오; 이를 달성하기 위해 취할 수있는 여러 접근법이 있습니다 (응용 프로그램이 창을 닫고 복원 할 때 새 사본을 열거 나 원래 창을 숨기고 복원시 표시 할 수 있음). 이 기능을 구현하려면 응용 프로그램이 따라야하는 특정 프로세스가 없으므로이를 뒤집기 위해 수행 할 수있는 특별한 프로세스가 없습니다.

특정 응용 프로그램의 작동 방식에 대한 정보가 있고 특정 사례로 처리하려는 경우 가능할 수 있습니다. 그러나 하나의 크기에 맞는 해결책은 불행하게도 존재하지 않습니다.

편집

당신은 윈도우 처리 프로세스에 의해 열려있는 것 (있는 경우)를 결정하는 Process Explorer를 사용하여 시도 할 수 있습니다. 창을 파괴하거나 숨길 지 여부는 적어도 알려줄 것입니다.

+0

그것은 타겟팅하는 특정 앱입니다 – hawbsl

+0

@hawbsl : ​​그게 더 낫지 만, 그 애플리케이션이 어떻게 도움이되는지 정확하게 알아야합니다. 편집을 참조하십시오. –

+0

유용한 조언, 감사합니다. Process Explorer를 다운로드하여 살펴 보았습니다. – hawbsl

1

전적으로 앱의 구현에 달려 있습니다. 훨씬 더 일반적인 방법은 숨겨진 창을 표시하는 대신 처음부터 새 창을 만드는 것입니다.

개인 전화 콜 기능을 통해 트레이 아이콘 알림을 받으면 스스로 위장 할 수 없습니다. 아이콘이있는 곳을 알 수 없기 때문에 마우스 클릭을 가짜로 찍는 것은 매우 어렵습니다. 네가 갇혀있는 것 같아.

+0

유용한 조언, 감사합니다. – hawbsl