You are here

웹 체크기를 만들었는데 패키징에서 발이 묶였습니다.

혹시나하고 tclpro 1.4.1 다시 설치해서 패키징 해보았는데 역쉬 안되네요...

원하는 기능은 모두 구현된 상태입니다.

- 웹체크
- 트레이숨김/출력
- 웹브라우저 열기

정말로 긴 하루네요...

패키징만 하면 되는데 트레이 숨기는 Winico 가 말썽입니다.

이래저래 처음 하는 것이라 윈도우 개념도 없고 이리저리 짜맞춘 소스입니다.

너그러이 봐 주시고 개념이 틀린 부분은 지적 부탁드립니다.

Tcl/Tk 넘 환상입니다. 좋아요...

책값이 비싸서 망설이고 있습니다. ^^;

### 트레이에 아이콘 넣고 숨기기와 액션시 보이기 구현 http://mini.net/tcl/4090
### 윈도우 창의 X 를 숨기기로 변환하기 http://tcltk.co.kr/phpBB2/viewtopic.php?t=38&highlight=%BF%C0%B8%A5%C2%CA
### 실행화일 만들기....http://tcltk.co.kr/phpBB2/viewtopic.php?t=117

### tclpro 1.4.1 버전설치후에 멀쩡한 부분에서 에러 ... ^^; 다시 삭제

### -> 문제해결 if {} 에서 비교문에 true 를 "" 로 묶어서 에러제거 ^^;
### tclpro 의 경우 동적인 패키지 추가는 지원하지 않는다 ???? 오 제발

### tclkitsh http.step5.tc 실행하니 euc-kr 이 없다고 해서... ^^;
### sdx.bat qwrap http.step5.tcl 해서 파일이름을 제대로 읽지 못하는 어처구니 없는 에러가 나오네요... '.' 대신 '_' 로 변환

package require http
lappend auto_path [pwd]
package require Winico

set searchAddress "http://localhost/date.php?"
set tray false
## 열려있음

##http://tcltk.co.kr/phpBB2/viewtopic.php?t=38&highlight=%BF%C0%B8%A5%C2%CA

wm protocol . WM_DELETE_WINDOW consoleHide

#### 지정된URL 호출하기

proc GetUrl {} {
        global searchAddress

        set token [http::geturl $searchAddress]
        #return [encoding convertfrom euc-kr [http::data $token]]
        return [http::data $token]

}

proc main {} {
        global tray

        set urlData [GetUrl]

        if {$urlData == "newmsg"} {
                set msgStr "확인되지 않은 업무전달이 있습니다"
        } else {
                set msgStr $urlData            
        }

        .msg  config -text $msgStr -width "300"

        if {$urlData == "newmsg"} {
                if {$tray == "true" } {
                        wm deiconify .         
                        ## 트레이에 숨긴창 올리기
                        set tray false
                }
                .menubutton config -state normal
        } else {
                .menubutton config -state disabled
        }
       

        after 1000 "main"
}

# 트레이 아이콘 제어

proc tray_task {message x y w} {
        global tray

        if {$message == "WM_LBUTTONDOWN"} {
                wm deiconify .
                set tray false
                #raise .
        } elseif {$message == "WM_RBUTTONDOWN"} {
                tk_popup $w $x $y
        }
}

# 종료시

proc exitProc {} {
        foreach i [winico info] {
                winico delete $i
        }

        exit
}
proc consoleHide {} {
        global tray

        wm withdraw .
        set tray true
        console hide

}

#### 아이디 입력받기
#### -relief: Specifies the 3-D effect desired for the widget. Acceptable values are raised, sunken, flat, ridge, solid, and groove
label .title -text "아이디를 입력하세요?"
entry .titleIn -textvariable inputText  -relief sunken
focus .titleIn
pack .title .titleIn -side left

# 익스 html 바로가기는 http://tcltk.co.kr/phpBB2/viewtopic.php?t=92&highlight=exec

button .menubutton -text "확인하기" -state disabled  -command { exec $env(COMSPEC( /c start http://localhost/admin/ & }

# 트레이 아이콘에서 오른쪽 키를 눌렀을 때 보여주는 메뉴

menu .tm
.tm add command -label "종료" -command exitProc

# 트레이 아이콘 등록

set ico [winico create metro.ico]
winico text $ico "metro check ALARM V0.9"
winico taskbar add $ico -callback "tray_task %m %x %y .tm"
#winico taskbar add $ico -callback [list ht:iconCallback %m %i %w %l %x %y]
#http://mini.net/tcl/4090

bind .titleIn <Return> {

        append searchAddress $inputText

        destroy  .title .titleIn

        message .msg -justify left -text "응답대기중......"
        pack .msg .menubutton
        # 메인루프
        main

}