|
답변감사합니다
프로젝트엔 폼을 포함 시키지 않고 싶다는
의미입니다. Hide처리 말구요
덧붙여 폼이 없을경우 trayicon도 가능한가
도 다시 한번 질문드립니다.
현덕0 님이 쓰신 글 :
: 다 지워졌네.. ㅜ.ㅜ 머 암튼
:
: 1. 폼 없는 윈도우를 사용할때 Hide로 두시고
:
: Thread는 사용하시면 될듯합니다. waitfor 부분에서 cpu 사용량이 높을 듯 싶습니다
:
: waitfor는 Terminate 될때까지 기다리는 함수입니다.
:
: 또한 Thread의 메모리 해제 하는 부분도 안보이는 군요
:
: FreeOnTerminate = true 설정해주는 센스!
:
: 2. trayIcon는 빌더 6.0에서는 컴포넌트가 있습니다. 거기의 메소드를 이용하시면 폼을 안띄울수도 있습니다.
:
: Popup메뉴 등록하는 부분도 있기 때문에 종료 메뉴를 추가 시켜 줄수 있습니다.
:
: 게시판 언딘가에 예제도 본거 같습니다. 찾아 보시면 쉽게 하실수 있을껍니다.. ^^
:
: mossmin 님이 쓰신 글 :
: : 폼이 없는 프로그램을 만들려 합니다.
: : 폼 없이 10초에 한번씩 지정한 파일을 체크해서 변경이
: : 있는 경우 로그를 남기는 처리를 하려고 합니다.
: :
: : 1.프로젝트에 폼을 포함시키지 않는다.
: : 2.트레이 아이콘을 표시 해서 종료 할 수 있게 한다..
: : 3.10초에 한번씩 체크 한다.
: :
: : 질문입니당..
: : 1.아래와 같이 할 경우 CPU를 50%이상 차지 합니다.
: : CPU 사용량을 낮게 할 수있는 방법을 알고 싶습니다.
: :
: : 2. 트레이 아이콘을 표시 하고 종료 메뉴를 넣을 수 있는
: : 방법을 알고 싶습니다.
: :
: : WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
: : {
: : try
: : {
: : Application->Initialize();
: : TimerThread * PicThread = new TimerThread();
: : PicThread->WaitFor();
: : PicThread->Terminate();
: : Application->Run();
: : }
: : catch (Exception &exception)
: : {
: : Application->ShowException(&exception);
: : }
: : return 0;
: : }
: :
: : class TimerThread: public TThread {
: : enum { TIMERTHREAD_TERMINATE = WM_APP + 0x100 };
: :
: : void TimerProc(void) { Beep(); }
: :
: : public:
: : TimerThread(): TThread(false) { }
: :
: : __fastcall ~TimerThread()
: : {
: : PostThreadMessage(ThreadID, TIMERTHREAD_TERMINATE, 0, 0);
: : }
: :
: : void __fastcall Execute(void)
: : {
: : UINT id = SetTimer(NULL, 0, 10000, NULL);
: : MSG msg;
: : while (GetMessage(&msg, NULL, 0, 0)) {
: : switch (msg.message) {
: : case TIMERTHREAD_TERMINATE:
: : KillTimer(NULL, id);
: : return ;
: : case WM_TIMER:
: : TimerProc();
: : break;
: : }
: : }
: : }
|