델파이초보 님이 쓰신 글 :
: 안녕하세요..
: 제가 모니터 2대를 연결해서 1대는 일반 키보드, 사용하고 2번째 모니터에는
: 윈도우에서 제공하는 화상키보드를 보여주게하고 싶은데 ShellExecute나 winexec를
: 사용해서 실행시 무조건 첫번째 모니터에만 나오던데 2번째 모니터에로 실행할 수 있는
: 방법 좀 알려주시면 감사하겠습니다.
답변:
ShellExecuteEx() API를 이용하면 SHELLEXECUTEINFO 구조체 멤버 중에 hMonitor 핸들을
해당 모니터의 핸들 값으로 지정해서 타켓 프로그램이 특정 모니터에 나타나도록 간단하게
처리 할 수 있지만
화상키보드 처럼 프로그램 종료시 창의 위치 정보를 갖고있다가 복원하는 경우에는
화상키보드의 윈도우 핸들을 구해서 SetWindowPos() API로 위치를 별도로 지정해야 합니다.
MONITORINFO mi;
GetMonitorInfo(hSecondMonitorHandle, &mi);
....
SetWindowPos(hWndOskWindowHandle, .... mi.rcMonitor........);
|