;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; StartC.asm by WaVe
; windows开始菜单标题更改程序
; 只能在windows xp下使用
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386
.model flat, stdcall
option casemap :none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Equ 等值定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DLG_MAIN equ 1h
IDAPPLY equ 101h
IDC_ORI equ 102h
IDC_NEW equ 103h
ICO_MAIN equ 104h
IDC_STATIC equ -1h
IDS_CL equ 0ah,0dh
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data
szShell_TrayWnd db 'Shell_TrayWnd',0
szBUTTON db 'BUTTON',0
szWarning db 'Window Not Found!',IDS_CL,'You May Using',IDS_CL,'Win2000 or Win98',0
szCaption db 'Erorr',0
szOriCap db 6 dup (?),0
szNewCap db 6 dup (?),0
.data?
hInstance dd ?
hTrayWnd dd ?
hStart dd ?
icxScreen dd ?
icyScreen dd ?
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_ProcDlgMain proc uses ebx edi esi hWnd,wMsg,wParam,lParam
mov eax,wMsg
.if eax == WM_CLOSE
close: invoke EndDialog,hWnd,NULL
.elseif eax == WM_INITDIALOG
invoke LoadIcon,hInstance,ICO_MAIN
invoke SetDlgItemText,hWnd,IDC_ORI,offset szNewCap
invoke GetDlgItem,hWnd,IDC_NEW
invoke SetFocus,eax
invoke GetWindowText,hStart,offset szOriCap,7
invoke SetDlgItemText,hWnd,IDC_ORI,offset szOriCap
invoke SetWindowPos,hWnd,NULL,icxScreen,icyScreen,0,0,SWP_NOSIZE
.elseif eax == WM_COMMAND
mov eax,wParam
.if ax == IDAPPLY
.if hStart!=0
invoke GetDlgItemText,hWnd,IDC_NEW,offset szNewCap,7
invoke SetWindowText,hStart,offset szNewCap
invoke SetDlgItemText,hWnd,IDC_ORI,offset szNewCap
.elseif hStart == 0
invoke MessageBox,hWnd,offset szWarning,offset szCaption,MB_OK
.endif
.elseif ax == IDOK
invoke EndDialog,hWnd,NULL
.endif
.elseif eax == EN_UPDATE
mov eax,wParam
.if ax == IDC_ORI || ax == IDC_NEW
invoke GetDlgItemText,hWnd,IDC_ORI,offset szNewCap,7
invoke GetDlgItemText,hWnd,IDC_NEW,offset szNewCap,7
.endif
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
_ProcDlgMain endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
;初始化变量
invoke GetSystemMetrics,SM_CXSCREEN
mov icxScreen,eax
shr icxScreen,2
invoke GetSystemMetrics,SM_CYSCREEN
mov icyScreen,eax
shr icyScreen,2
;寻找开始栏窗口句柄
invoke FindWindow,offset szShell_TrayWnd,NULL
mov hTrayWnd,eax
invoke FindWindowEx,hTrayWnd,NULL,offset szBUTTON,NULL
mov hStart,eax
.if eax == 0
invoke MessageBox,NULL,offset szWarning,offset szCaption,MB_OK
.endif
;叫出对话框
invoke DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlgMain,NULL
sair: invoke ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start
浙公网安备 33010602011771号