• 북마크
  • 추가메뉴
어디로 앱에서 쉽고 간편하게!
애플 중고 거래 전문 플랫폼
오늘 하루 보지 않기
KMUG 케이머그

팁사용기

[팁] 자신의 프로그램 활성화시키는 함수 BrongMeFront

  • - 첨부파일 : BringMeFront.zip (6.1K) - 다운로드

본문

자신의 어플리케이션 활성화 시키기..

가끔 프로그램을 만들다 보면 해당 동작이나 특정 이벤트 발생시, 또는 해당 시간이 되면 다른 프로그램 뒤에 가려져있는 자신의 프로그램이 맨 앞으로 자동으로 오기를 바라는 경우가 있습니다.
이럴 때 필요한 것이 프로그램을 활성화 해주는 함수인데요.
MacOS Classic 일 경우에는 리얼베이직에서 이를 동작하려면 툴박스 함수(지금의 카본 정도?)를 이용하기 위해 Declare 문을 이용하곤 했습니다. 물론 툴박스도 알아야 하기 때문에 의외로 간단한 것이 아니었죠.
하지만 리얼베이직이 MacOS X 의 Bundle 형식을 지원한 이후로 이것은 아주아주 간단하게 되어버렸습니다. 단순히 3줄의 코드로 구현이 가능한데요.
이를 예전에 다른 사람이 만들어서 가져다 썼던 함수명인 BringMeFront 로 하여 자주 사용하고 있습니다.
그럼 간단하다는 코드를 볼까요?

dim f as FolderItem

f = app.ExecutableFile.Parent.Parent.Parent
f.Launch

헉~!..정말 3줄입니다..^^;;
위의 코드는 3줄이지만 몇가지 내용을 담고 있는데요.
리얼베이직에는 기본적으로 자신의 프로그램을 나타내고 있는 app 클래스가 있다는 것입니다.
이에 대해서는 LanguageReferences 를 참조하시면 app 클래스에 대해서 많은 것을 알 수 있을 것 입니다. 즉 이 클래스의 객체는 실행되는 프로그램 자체이죠.
그리고 이 클래스 내에는 ExecuteableFile 이라는 FolderItem 형식의 속성을 갖고 있다는 것이죠. 이것이 무엇일까요? 바로 Bundle 내에 위치하고 있는 프로그램 자체를 말합니다.
실질적으로 리얼베이직으로 만들어진 프로그램의 본체는 이 번들안에 존재를 하는데요.
리얼베이직으로 만들어진 프로그램을 패키지 보기를 하여 속을 보게 되면 처음에 Contents 라는 폴더가 있고, 그 안에 Frameworks, info.plist, MacOS, Pkginfo, Resources 라는 파일이나 폴더가 있습니다. 그 중에서 MacOS 폴더 안에 리얼베이직으로 컴파일 된 프로그램 본체가 위치
하게 됩니다.
즉 Example.app 라는 프로그램이 있다고 한다면
Example.app -> Contents -> MacOS -> Example
이런식으로 위치를 하게 된다는 거죠.
따라서 리얼베이직의 App 클래스에서 ExecutableFile 속성은 맨 마지막의 Example 이라는 프로그램 본체를 가리킵니다. 따라서 상위 폴더로 이동을 해주는 Parent 라는 FolderItem 함수를 통해서 Example.app 가리키도록 상위, 상위, 상위 3번을 해 주는 것입니다. 이후에 FolderItem 을 실행해주는 Launch 를 통해서 실행하도록 하면 이미 실행되어있는 프로그램은 맨뒤에 있어도 맨 앞으로 활성화되게 되는 것이죠.
자신의 프로그램을 맨앞으로 활성화 해주는 BringMeFront 라는 함수는 이런 간단한 편법(?)을 통해서 구현할 수 있는 것 입니다.
그럼 함께 포함된 예제를 확인해보시고 한번 테스트 해 보시기 바랍니다.
그럼 좋은 하루 되세요~!

ps. 질문이나 의문점, 잘못된 점이 있을 시에는 michelin4k@yahoo.co.kr 으로 메일 주시기 바랍니다.
첨부파일을 포함시켰으니 참고하시면 될 것 입니다.

from michelin
0 0
로그인 후 추천 또는 비추천하실 수 있습니다.
포인트 5,044
가입일 :
2004-01-25 23:38:19
서명 :
미입력
자기소개 :
미입력

최신글이 없습니다.

최신글이 없습니다.

댓글목록 0

등록된 댓글이 없습니다.
전체 48 건 - 1 페이지