Q&A

  • 질문을 검색하다가...과연..쉘이란게 뭔가요? 저두 하구 싶어요~
질문이요? 제목 그래두입니다..

쉘프로그램은 뭐하는 데 쓰는 겁니까?

쉘익스텐션은 또 뭡니까?

자세히 갈켜주세요~



4  COMMENTS
  • Profile
    최용일 2000.06.25 11:46
    안녕하세요. 최용일입니다.



    먼저 쉘이 무엇인지를 알아야죠. 쉘이란 뭘까? 시스템전반에 걸쳐 여러가지 설정사항들을



    유저가 변경할 수 있도록 운영체제가 제공하는 사용자 인터페이스입니다. 예전 도스시절에는



    command.com이 이 역활을 했죠... 윈도우환경의 쉘은 탐색기입니다. 우리가 항상 다루는 파일



    관리자로서의 탐색기가 아니라 윈도우즈 부팅과 동시에 백그라운드에서 실행되는 탐색기를



    말합니다. 윈도우즈의 탐색기는 쉘로서 작동할뿐아니라 우리가 항상 보아왔던 파일관리자의



    두가지 기능을 동시에 합니다. 바로 이 쉘(탐색기)을 다루는 프로그래밍이 쉘프로그래밍입니다.



    쉘익스텐션은 쉘의 특정한 기능들을 사용자 프로그램에서 사용할 수 있도록 해주는 인터페이스



    를 말합니다. Add-On 프로그램이라고 생각하시면 이해하기가 쉽겠습니다. 아래 질문의 칸텍스



    트메뉴 핸들러나 카피훅 핸들러, 아이콘핸들러, 프라퍼티쉬트, 드래그앤드랍핸들러와 같은 것



    들이 쉘익스텐션입니다. 이것들은 모두 COM으로 표현되기 때문에 COM을 모르고는 쉘익스텐션을



    프로그래밍할 수가 없습니다.



    조금 횡설수설한듯한데... 이해가 되셨길...



    ^^ 항상 즐코하세요.



    어린왕자 wrote:

    > 질문이요? 제목 그래두입니다..

    > 쉘프로그램은 뭐하는 데 쓰는 겁니까?

    > 쉘익스텐션은 또 뭡니까?

    > 자세히 갈켜주세요~

    >

  • Profile
    어린왕자 2000.06.25 12:39
    .

  • Profile
    최용일 2000.06.25 15:34
    안녕하세요. 최용일입니다.



    쉽게 하는 방법이 없는 것은 아닙니다. 약간의 편법이긴 하지만 쉽습니다. 대신 컨텍스트



    메뉴 핸들러를 사용한것 처럼 막강한 기능(윈집을 보시면 메뉴가 동적으로 변하죠. 이런것



    들)들을 사용할 수가 없습니다. 단지 정적으로만 사용할 수 있죠...



    레지스트리를 건드려야 하는데 TRegistry 클래스를 이용하여 프로그래밍하시거나 윈도우의



    RegEdit.exe를 이용하여 직접 손보는 방법이 있습니다.



    먼저 컨텍스트메뉴가 뜰 파일 확장자를 정해야합니다. 모든 파일에 대해서 할 것인가...아님



    특정한 확장자에 대해서 할 것인가, 기존에 있던 확장자에 대해서 할 것인가를...



    RegEdit.Exe를 가지고 설명할께요. TRegistry를 이용하여 코딩하는 것도 이걸 들으면 하실수



    있을 것입니다.



    RegEdit.exe를 실행하면 내컴퓨터밑에 네개의 키가 보이는데 이중 HKEY_CLASSES_ROOT를 보세요.



    그럼 *부터해서 파일 확장자리스트가 보일것입니다. 나만의 확장자 이름을 델파이의 백업파



    일중 .pas의 백업파일 ~pas로 하겠습니다. HKEY_CLASSES_ROOT키 아래에 새로운 확장자



    (.~pas) 이름으로 하위키를 하나 만듭니다.



    이 키 아래에 shell이라는 하위키를 만들고 또 shell이라는 하위키아래에 컨텍스트메뉴에



    뜰이름으로 하위키를 하나 만듭니다. 여기에서는 notepad라는 이름으로 만들겠습니다.



    이렇게 만들면 기본적으로 첫번째 문자가 단축키가 되고 이름도 이키의 이름인 notepad가



    되는데 이 키의 Default값을 변경시키면 단축키와 컨텍스트메뉴에 나오는 이름을 바꿀수가



    있습니다. 기본적으로 메뉴에 notepad라고 나오고 첫번째글짜인 n에 밑줄이 그어져 있을것



    입니다. Default값을 메모장(&M) 이라고 써놓으면 메뉴에 메모장(M)하고 M에 밑줄이 그어



    져 단축키가 M으로 바뀌어 질것입니다. 그리고 메뉴도 한글로 나오죠...



    또 이 notepad키 밑에 command라는 하위키를 만듭니다. 그럼 전체적으로



    HKEY_CLASSES_ROOT/.~pas/shell/notepad/command 라는 키가 만들어졌을 것입니다.



    // .~pas와 notepad키는 적당히 이름을 바꿀수가 있습니다. 나머지는 이름을 바꾸면 않되요.



    여기에서는 *.~pas파일을 메모장으로 여는 예를 들겠습니다.



    HKEY_CLASSES_ROOT/.~pas/shell/notepad/command 키의 Default값에 notepad %1이라고 적어



    줍니다. 그럼 만사 OK.



    탐색기를 실행시켜 델파이 폴더중에서 확장자가 .~pas파일에 마우스 커서를 놓고 컨텍스트



    메뉴를 불러보세요. 그럼 방금 적은 메뉴가 보일것입니다. 그리고 클릭하면 메모장에서



    .~pas파일을 편집할 수 있습니다.



    어때요. 간단하죠.........



    컨텍스트 메뉴 핸들러 프로그래밍은 강좌란에 올릴께요...



    ^^ 항상 즐코하세요.



















  • Profile
    어린왕자 2000.06.25 12:45
    아..오늘 오프모임 있었져? 잼있었나요? 조심해 내려가세요