Q&A

  • 프로그램이 alt+tab을 누르면 나타나는 프로그램 전환창에 않보이게하기
오늘은 질문을 많이 하네요.. ^^;

질문내용은 제목 그대로 입니다.

지금 만드는 프로그램에서 alt+tab을 누르면 나타나는 프로그램 전환창에 아예 않보이게하고 싶습니다.

그러니까 alt+tab을 누르면 프로그램 전환창은 나오지만 거기에서 특정프로그램이 보이지 않게 하고 싶습니다.

좋은 방법 없을까요..?

2  COMMENTS
  • Profile
    구창민 2000.03.03 19:48
    유나니 wrote:

    > 오늘은 질문을 많이 하네요.. ^^;

    > 질문내용은 제목 그대로 입니다.

    > 지금 만드는 프로그램에서 alt+tab을 누르면 나타나는 프로그램 전환창에 아예 않보이게하고 싶습니다.

    > 그러니까 alt+tab을 누르면 프로그램 전환창은 나오지만 거기에서 특정프로그램이 보이지 않게 하고 싶습니다.

    > 좋은 방법 없을까요..?





    왜 이런 작업을 하시는 지 이해가 안되지만은.. ^^

    구지 하려면 방법이 없는 것도 아니죠.



    먼저 테스크바에 안타나게 하고나서

    윈도우를 사라지게 하면 Alt + Tab 을 눌러도 안 보이죠.



    그런다음 Ctrl + Alt + Del을 눌러도 보이지 않게 하는건

    API중에 RegisterServiceProcess() 라는 함수가 있습니다.

    요놈을 쓰면 Ctrl + Alt + Del을 눌러도 나타나지 않습니다.

    그런데 이 함수는 임포트유닛에 없으므로 직접 바인딩 해줘야 합니다.



    그러면 위의 작업들을 코드로 한번 해 볼까요?



    먼저 프로젝트 화일을 열고

    program Project1;



    uses

    Forms, Windows,

    Unit1 in 'Unit1.pas' {Form1};



    {$R *.RES}



    begin

    Application.Initialize; //<--- 요놈 아래에다

    // 아래 문장을 추가합니다. 그러면 테스크바에 안나타나게 됩니다.

    SetWindowLong(application.handle,GWL_EXSTYLE,

    GetWindowLong(application.handle,GWL_EXSTYLE)

    or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);



    Application.CreateForm(TForm1, Form1);

    Application.Run;

    end.



    그런다음 어디에선가 다음 문장을 써서 폼을 감추어 주면

    Alt + Tab을 눌러도 안나타나죠.



    ShowWindow(Handle, SW_HIDE);



    그런다음 마지막으로 Ctrl + Alt + Del을 눌렀을때도 안보이게 하려면

    아래 함수를 쓰면 됩니다 (참, 이놈은 NT에서는 지원 안됩니다.)



    RegisterServiceProcess(GetCurrentProcessID, 1); // 안나타나게 합니다.

    RegisterServiceProcess(GetCurrentProcessID, 0); // 나타나게 합니다.





    여기 까지 하면 내 프로그램을 어디에서도 찾기 어렵네요.

    이러면 어떻게 되는 거죠? ^^



    그럼~ 즐거운 프로그래밍 되시길~

  • Profile
    하얀까마귀 2000.03.03 09:56
    안녕하세요 하얀까마귀입니다.



    이게 답변이 될려나..... ^o^

    예전에 한번 저도 그런게 필요해서 한번 해보았던적이 있었거든요... 그런데.. 그게참

    잘 안되더군요... 쩝....

    아예 윈도우를 쥐고 쬐끔 놀아주지 않는한 힘들겠더라구요.. 너무 그렇게 하는건

    좋지 않을것 같아서...쩝...



    그래서 이렇게 했어요...

    유나니님께서 하시는것도 당연히 alt+Tab만 안나오는게 아니라 상태바에도 안나와야

    겠죠??? 그럼 간단히 되는게 Tray Icon이잖아요.. 그런데 이놈이 그래도 Tray iCon에서

    는 보이잖아요.. 그래서 아이콘을 투명으로 만들었죠.. 우와 완전 싸이비다... 후후

    그냥 그랬었던적이 있었어요.. 참고만 하세요....

    그리고 이렇게 해도 ctrl+alt+Delete에선 보이잖아요....

    아예 쓰레드로 만들면 될려나???

    한번 해봐야 겠네요...그럼...즐거운 시간 되세요..

    - 하얀까마귀 -