|
저는 간단한 노트형태의 윈도우들을 데스크탑에 돌아다니게 하는 프로그램을 제작하고 있습니다.
이 프로그램은 윈도우즈가 돌아가고 있을 때는 항상 켜져 있어야 합니다.
즉, 윈도우즈가 부팅되면, 이 노트프로그램도 자동으로 실행됩니다.(시작프로그램 디렉토리에 링크파일을 올려주면 이렇게 되지요.)
그리고, 사용자가 직접 노트프로그램을 종료하지 않는한은 윈도우즈가 종료될 때 까지 계속 running 하게 됩니다.
저는 이 노트프로그램의 메인폼의 OnClose()루틴 속에 노트정리된 정보들을 모두 저장하는 루틴이 포함되어있씁니다.
즉, 이 노트프로그램이 종료되면서 자신의 정보를 설정파일에 저장합니다.
그리고 윈도우즈가 다시 부팅되어서 노트프로그램이 다시 실행되게 되면, 설정파일에서 정보를 복구하게 되는 것입니다.
그런데 제가 테스트로 메인폼의 OnClose()함수 내에 ShowMessage("OnClose"); 를 삽입해봤습니다.
이때, 윈도우즈가 종료되면서 (제가 사용하는 것은 windows XP) 그 윈도우즈는 이 때 켜져 있는 프로그램들이 무엇이 있나를 찾아본 후, 켜져 있는 프로그램들을 강제종료하게 됩니다.
제 노트프로그램이 강제종료될 때, ShowMessage("OnClose"); 는 실행되지 않았습니다.
즉, 메인폼의 OnClose()함수는 실행되지 않은 것입니다. 따라서 설정파일에 정보저장하는 루틴도 실행되지 않은 체 강제종료되는 것이었씁니다.
이 문제를 어떻게 해결하면 좋을까요?
(질문1) 윈도우즈종료될때, 윈도우즈가 강제종료를 시행하기 전에, 제 노트프로그램이 알아서, 그 전에 정상적으로 종료를 하게 하려면 어떻게 해야 하나요?
(질문2) 이 노트프로그램의 링크를 사용자가 원하는 대로 시작프로그램디렉토리에 생성했다가 지웠다가 해야 하는데, 이를 위해서 링크를 생성해주는 함수는 무엇인가요?
|