CreateDesktop 예제입니다.
흔히 멀티 데스크탑/가상 데스크탑 이라고 부르는 예제입니다.
꼼수나 그런것이 아니고, 윈도우 2000 이상부터 제공되는 API로 제작되었습니다.
즉, 실제 데스크탑이 생성됩니다.
원래는 데스크탑이 생성되면 아무것도 없는 상태가 됩니다.
그렇게 되면 기본 데스크탑으로 돌아올수가 없습니다-_- (재부팅하지 않는 한..)
그래서 이 예제에서는 기본 데스크탑으로 돌아오기 위해 새로 생성되는 데스크탑에 미리 자기자신을 실행시켜 놓습니다.
또한, [버튼0]의 명령중에
// 만들어진 데스크탑에 쉘을 실행함.
//커널함수.CreateProcessA("", "explorer.exe", "", "", 1, 32, "", "", 시작정보, 프로세스정보);
주석처리 되어있는데요,
커널함수.CreateProcessA("", "explorer.exe", "", "", 1, 32, "", "", 시작정보, 프로세스정보);
주석처리를 해제하시면 새로 생성되는 데스크탑에도 쉘이 실행되게 됩니다.
(p.s)
예전에 델마당에 양병규님(빵집제작자분)께서 멀티데스크탑 올려 놓으신 강좌를 토대로 제작되었습니다.
당시에는 아는 게 없어서 못만들었는데, 지금에와서 만들었습니다.
(p.s2)
반드시 새로 생성되는 데스크탑에 기본데스크탑으로 돌아올 최소한의 장치를 마련하셔야합니다.
이 예제에서는 새로 생성되는 데스크탑에 자기 자신을 실행함으로써 기본데스크탑으로 돌아올 장치를 마련했습니다.
새데스크탑 생성하고 전환하는 아주 간단한 예제입니다.
데스크탑을 더 만드실수도 있고요, 기능을 더 추가하시면 멋진 프로그램이 될겁니다.
한방의 클릭만으로 화면을 숨기는 프로그램들이 있는데요, 대부분이 창들을 최소화하거나 숨기는 방식인데, 이 방식을 사용하면 제대로된 숨기기 프로그램이 되겠군요.
(물론 음소거는 알아서 하셔야합니다만....잉?)
이 예제는 프로그램을 종료할 때 자동적으로 기본 데스크탑으로 돌아오게끔 만들어져 있습니다.
(새로 만든 데스크탑에서 못돌아올 불운의 사고 방지용...)
|