.data?
buffer db 127 dup(?)
.data
shell db "Shell_TrayWnd",0 ; 데스크탑윈도우 핸들 저장용 변수
sbar db "BUTTON",0 ; 시작버튼저장용 변수
child dd ?
slen dd ?
.code
invoke FindWindow,addr shell,NULL ; 작업표시줄 핸들 획득
mov tray, eax ; 핸들값을 tray 변수에 저장
invoke GetWindow,tray, GW_CHILD ; 작업표시줄의 차일드 획득
mov child, eax
.if child != 0 ; 작업표시줄의 차일드가 있다면....(시작버튼도 차일드다)
invoke GetClassName,child,offset buffer, sizeof buffer ; 차일드의 클래스이름을 획득
.if eax > 0
invoke lstrlen, offset buffer ; 클래스이름의 길이를 획득
mov slen,eax ; 클래스이름의 길이를 slen변수에 저장
invoke CharUpperBuff,offset buffer,slen ; 대문자로 변경
invoke lstrcmp,addr buffer, addr sbar ; 시작버튼과 비교
.if eax == 0 ; 같다면, 즉 시작버튼을 찾았으므로 여러가지 제어가능
invoke ShowWindow,child,SW_HIDE ; 시작 버튼 숨기기
; invoke ShowWindow,child,SW_SHOW ; 시작 버튼 표시
; invoke EnableWindow,child,FALSE ; 시작 버튼 사용불가
; invoke EnableWindow,child,TRUE ; 시작 버튼 사용가능
.endif
.endif
.endif