2012-02-15 2 views
0

저는 Java로 화면 보호기를 만들고 있으며 이제 명령 줄 인수 지원을 위해 노력하고 있습니다. 이를 위해 here에 나열된 잠재적 인 인수 중 하나는 화면 보호기를 지정된 창 자식으로 사용하기위한 것입니다. 어떻게 그 논쟁을하고 화면 보호기를 넣기 위해 필요한 창을 얻을 수 있습니까?명령 줄 인수로 창 만들기

'모달을 창으로'한다는 것은 무엇을 의미합니까?

답변

0

Windows에서는 화면 보호기를 somewhere in the control panels에서 설정합니다. 제어판을 타사 화면 보호기와 연결하기 위해 특정 명령 줄 인수로 제어판을 실행하도록 설계되었습니다. 당신이 목록에서 화면 보호기를 선택하고 "미리보기"버튼을 쳤을 때

그래서, 제어 패널은이 명령을 실행 :

여기
ScreenSaver /p 1234 

"화면 보호기"woudl EB 프로그램의 경로 및 1234는 제어판 창에 대한 HWND 참조를 제공하는 포인터 값입니다. 화면 보호기는 미리보기를 제공하기 위해 그 창의 자식으로 자신을 추가해야합니다. 당신이 "설정"버튼을 쳤을 때

마찬가지로, 제어판이 명령을 실행 :

화면 보호기 프로그램이 그 명령 행 인수를 얻을 때,이 시스템을 조회한다는 것을 알 필요가
ScreenSaver /c 

("모달"은 대화 상자가 닫힐 때까지 해당 창에 대한 액세스를 차단 함을 의미합니다). 프로그램이 전체 화면을 이동해야 할 때

ScreenSaver /s 

이것은 :

마지막으로, 컨트롤 패널은 화면 보호기를 실행하는 데 시간이 실제로 있다고 판단하는 경우,이 명령을 실행합니다.

이제 자바 개발자로서 당신에게 어떤 의미가 있습니까?

우선, Java 구성 요소를 시스템 창에 삽입하는 것은 복잡한 JNI 작업을 필요로합니다. 미리보기의 경우 Java 코드가 이미지에 렌더링 한 다음 JNI를 통해 일반 Windows 구성 요소로 그려주는 것이 가장 좋습니다. 시스템 윈도우에서 Java 대화 상자를 시작하는 것은 거의 불가능합니다.

그러나 화면 보호기와 기본 화면 보호기 사이에 약간의 불일치가 생기지 않는다면 그렇게하지 않고 도망 갈 수 있습니다. 미리보기 모드로 미리보기가있는 새 창을 팝업하고 설정 모드에서 대화 상자를 새 창으로 팝업 할 수 있습니다. 그리고 전체 화면 모드는 조정없이 잘 작동합니다.

+0

감사합니다. 이 시점에서 시스템을 더 많거나 적게 작동 시켰습니다! – bionicOnion

관련 문제