⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 registry.asm

📁 本程序**%100汇编语言**编写。 编译器: <<-----MASM6.14----->> 编辑器: <<---EditPlus2.10c--->>(
💻 ASM
字号:
;**************Registy functions**********************
_SetRegKeySz proc lpszKeyName,lpszValueName,lpszString,dwSize
		local	@hKey,@dwSize

		invoke	lstrlen,lpszString
		inc	eax
		mov	dwSize,eax
		invoke	RegCreateKey,HKEY_LOCAL_MACHINE,lpszKeyName,addr @hKey
		.if	eax == ERROR_SUCCESS
			invoke	RegSetValueEx,@hKey,lpszValueName,NULL,\
				REG_SZ,lpszString,dwSize
			invoke	RegCloseKey,@hKey
		.endif
		ret

_SetRegKeySz	endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 读取字符型键值
; 参数:键名指针,键值名指针,接收键值字符串指针
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_GetRegKeySz proc lpszKeyName,lpszValueName,lpszBuffer,dwSize
		local	@hKey
		local	@dwReturn

		pushad
		mov	@dwReturn,-1

		mov	eax,lpszBuffer
		mov	byte ptr [eax],0
		invoke	RegOpenKeyEx,HKEY_LOCAL_MACHINE,lpszKeyName,NULL,\
			KEY_QUERY_VALUE,addr @hKey
		.if	eax == ERROR_SUCCESS
			invoke	RegQueryValueEx,@hKey,lpszValueName,NULL,NULL,\
				lpszBuffer,addr dwSize
			.if	eax ==	ERROR_SUCCESS
				mov	@dwReturn,eax
			.endif
			invoke	RegCloseKey,@hKey
		.endif
		popad
		mov	eax,@dwReturn
		ret

_GetRegKeySz	endp

_SetRegKeyDw proc lpszKeyName,lpszValueName,dwValue
		local	@hKey

		invoke	RegCreateKey,HKEY_LOCAL_MACHINE,lpszKeyName,addr @hKey
		.if	eax == ERROR_SUCCESS
			invoke	RegSetValueEx,@hKey,lpszValueName,NULL,\
				REG_DWORD,addr dwValue,4
			invoke	RegCloseKey,@hKey
		.endif
		ret

_SetRegKeyDw	endp
_GetRegKeyDw proc lpszKeyName,lpszValueName
		local	@dwTemp,@hKey,@dwSize,@dwValue
		local	@dwReturn

		pushad
		mov	@dwReturn,-1
		mov	@dwSize,4
		invoke	RegOpenKeyEx,HKEY_LOCAL_MACHINE,lpszKeyName,NULL,\
			KEY_QUERY_VALUE,addr @hKey
		.if	eax == ERROR_SUCCESS
			mov	eax,REG_DWORD
			mov	@dwTemp,eax
			invoke	RegQueryValueEx,@hKey,lpszValueName,NULL,\
				addr @dwTemp,addr @dwValue,addr @dwSize
			.if	eax == ERROR_SUCCESS
				push	@dwValue
				pop	@dwReturn
			.endif
			invoke	RegCloseKey,@hKey
		.endif
		popad
		mov	eax,@dwReturn
		ret

_GetRegKeyDw	endp
_InitRegistKey proc hWnd:dword
RGB 236,255,42
mov BackColor,eax
mov RepeatFlag,1
mov Counter,1
INVOKE _SetRegKeyDw,addr szKeyName,addr szKeyBackColor, BackColor
INVOKE _SetRegKeyDw,addr szKeyName,addr szKeyRepeatFlag,RepeatFlag
INVOKE _SetRegKeyDw,addr szKeyName,addr szKeyCounter, Counter
push 0
pop iIndex
invoke _SetRegKeyDw,addr szKeyPlayList,ADDR szMenuSet, iIndex
invoke CheckDlgButton,hWnd,IDC_REPEAT,BST_CHECKED	
	ret
_InitRegistKey endp
_SetRegistKey proc 
	INC Counter
	INVOKE _SetRegKeyDw,addr szKeyName,addr szKeyBackColor, BackColor
	INVOKE _SetRegKeyDw,addr szKeyName,addr szKeyRepeatFlag,RepeatFlag
	INVOKE _SetRegKeyDw,addr szKeyName,addr szKeyCounter, Counter
	invoke _SetRegKeyDw,addr szKeyPlayList,addr szMenuSet, iIndex
	mov ecx,1
	.while ecx<=iIndex
		push ecx
		mov TempNum,ecx
		invoke _SetRegKeySz,addr szKeyPlayList,addr TempNum,PlayList[ecx*4-4],MAXSIZE
		pop ecx
		inc ecx
	.endw
	ret
_SetRegistKey endp
_GetRegistKey proc hWnd:dword
	invoke _GetRegKeyDw,addr szKeyName,addr szKeyBackColor
		.if eax!=-1
		mov BackColor,eax
		.else
			invoke _InitRegistKey,hWnd
		.endif
		invoke _GetRegKeyDw,addr szKeyName,addr szKeyRepeatFlag
		.if eax!=-1
		mov RepeatFlag,eax
		.if eax==0
		invoke CheckDlgButton,hWnd,IDC_REPEAT,BST_UNCHECKED	
		.ELSE
		invoke CheckDlgButton,hWnd,IDC_REPEAT,BST_CHECKED	
		.endif
		.else
			invoke _InitRegistKey,hWnd
		.endif
		invoke _GetRegKeyDw,addr szKeyName,addr szKeyCounter
		.if eax!=-1
			mov Counter,eax
		.else
			invoke _InitRegistKey,hWnd
		.endif
		invoke _GetRegKeyDw,addr szKeyPlayList,addr szMenuSet
		mov iIndex,eax
		mov ecx,1
		.while ecx<=iIndex
			mov TempNum,ecx
			push ecx
			push ecx
			invoke _GetRegKeySz,addr szKeyPlayList,addr TempNum,addr Buffer,MAXSIZE
			invoke SysAllocString,addr Buffer
			pop ecx
			lea edi,PlayList
			mov [edi+ecx*4-4],eax
			pop ecx
			inc ecx
		.endw
	ret
_GetRegistKey endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -