2011-01-12 3 views
2

다른 응용 프로그램을 시작해야하는 Java 응용 프로그램을 작성 중입니다. Runtime.getRuntime().exec()을 사용하여 두 번째 응용 프로그램을 시작하면이 응용 프로그램이 활성 프로세스가되고 해당 응용 프로그램 창이 내 응용 프로그램 창 앞에옵니다. 정말하고 싶은 일은 "숨김"모드로 프로세스를 시작하여 작업 표시 줄 항목이 나타나지 않고 창이 처음에는 보이지 않거나 응용 프로그램 창 뒤에 있습니다. 그렇다면 내 응용 프로그램은 그것이 보이고 준비가되었을 때 그것을 앞쪽으로 옮길 것입니다. 이게 가능한가, 아니면 내가 너무 많이 요구하고 있는가?Java 응용 프로그램에서 시작한 창 응용 프로그램 숨기기?

이것은 데모 용입니다. 그래서 나는 보안 문제에 대해 걱정하지 않는다.

편집 : 다니엘의 대답은 나에게 아이디어를 제공했습니다. Powershell을 사용하여 CMD.EXE 대신 응용 프로그램을 호출하면 어떨까요? 윌 창없이 응용 프로그램을 시작한 다음 창문을 다시 가져올 수 있을까요? PowerShell을 실행하여 응용 프로그램을 시작하기 위해 Java를 시작하는 데 사용할 것입니다.

+1

응용 프로그램이 "잘되고 준비가되었습니다"때 외부 응용 프로그램을 시작하지 않는 이유는 무엇입니까? 미리 외부 어플리케이션을 실행할 필요가 있습니까? 로드하는 데 시간이 오래 걸립니까? – Bernard

+0

글쎄, 외부 응용 프로그램을로드하는 데 오랜 시간이 걸립니다. 기본적으로 www를 통해 서버에 연결하여 정보를 얻거나 핸드 쉐이크를 협상해야합니다. 응용 프로그램이 모든 것을 기다릴 수는 없습니다. 그래서 가능한 한 빨리 시작하고 다른 작업을 계속하고 싶습니다. – 341008

답변

0

당신은이 다른 응용 프로그램이 무엇인지 말하지 않지만 제어 할 수 없다는 가정하에 (즉, 최소화 된 모드 또는 유사한 방식으로 시작하는 매개 변수 옵션을 제공 할 수 없습니다.) 실행중인 응용 프로그램을 숨기지 않고 다른 응용 프로그램이 시작된 후에 창에서 toFront() 메서드를 사용하여 다른 창을 앞에 놓을 수 있습니까? 그런 다음 다른 창을 공개하고 싶을 때 창을 최소화하십시오.

나는 처음에는 이것이 잘못된 해결책이라는 것을 인정하지만, 당신이 무엇을하고 있는지에 따라 작동 할 수도 있습니다.

+0

다른 창을 표시하는 데 얼마나 오래 걸릴지 모르겠다. – Daniel

+0

나는 그 생각을 좋아한다. 그리고 나는 이것에 대한 깨끗한 해결책이 없을 것이라고 생각합니다. 그러나 여기 두 번째 창이 언젠가 전면에 올 것입니다. Daniel이 말했듯이, 나는 그것이 나타나기까지 얼마나 걸릴지도 모른다. – 341008

0

이 매개 변수는 제공 할 수 없지만 이러한 매개 변수를 지원하는 "시작"명령 (cmd로 시도)을 사용할 수는 있습니다. 결국 cmd.exe 셸을 사용하여 호출해야하지만 작동합니다.

+0

"cmd"쉘을 호출해도 문제가 없지만, "start"를 사용하면 나중에 윈도우를 활성화 할 수 없습니다. 나는? – 341008

+0

Runtime.getRuntime(). exec()를 사용하면 어떻게 될까요? 슬프게도 플랫폼에 종속적 인 Window Message를 보내야만 가능합니다. 그러나 JNative는이를 위해 유용한 도구입니다. 창을 찾고 앞쪽으로 가져 오려면 Windows API를 사용해야합니다. – Daniel

+0

"Runtime.getRuntime(). exec()?"를 사용하면 어떻게 될까요? "할 수 없습니다. 그것이 내 문제의 두 번째 부분입니다. – 341008

관련 문제