亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? kbdtypematic.asm

?? KmdKit 匯編下開發驅動的工具 由俄羅斯某強男開發
?? ASM
字號:
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;
;  Written by Four-F (four-f@mail.ru)
;
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

.386
.model flat, stdcall
option casemap:none

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                  I N C L U D E   F I L E S                                        
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

include \masm32\include\windows.inc

include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\comctl32.inc

includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\comctl32.lib

include \masm32\include\w2k\ntddkbd.inc

include \masm32\Macros\Strings.mac

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                      E Q U A T E S                                                
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

; ntddk.inc can't be included because of windows.inc
FILE_DEVICE_KEYBOARD	equ 0Bh
FILE_ANY_ACCESS			equ 0
METHOD_BUFFERED         equ 0

IDD_MAIN				equ	1000
IDC_DELAY				equ 1001
IDC_RATE				equ 1002
IDC_APPLY				equ 1003

IDI_ICON				equ 2000

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                              U N I N I T I A L I Z E D  D A T A                                   
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

.data?

g_hInstance		HINSTANCE	?
;g_hDlg			HWND		?
g_hDevice		HANDLE		?

g_hwndTbDelay	HWND		?
g_hwndTbRate	HWND		?
g_hwndBtnApply	HWND		?

g_dwUnitId		DWORD		?

g_dwMinRate		DWORD		?
g_dwMaxRate		DWORD		?
g_dwCurRate		DWORD		?

g_dwMinDelay	DWORD		?
g_dwMaxDelay	DWORD		?
g_dwCurDelay	DWORD		?

g_dwTbDelayPos	DWORD		?
g_dwTbRatePos	DWORD		?

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                       C O D E                                                     
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

.code

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                        GetRateAndDelay                                            
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

GetRateAndDelay proc uses ebx

local ka:KEYBOARD_ATTRIBUTES
local ktp:KEYBOARD_TYPEMATIC_PARAMETERS
local dwBytesReturned:DWORD

	and ebx, FALSE			; assume error

	; Firstly we have to know minimum and maximum allowable values of keyboard typematic rate and delay.
	invoke DeviceIoControl, g_hDevice, IOCTL_KEYBOARD_QUERY_ATTRIBUTES, NULL, 0, \
						addr ka, sizeof ka, addr dwBytesReturned, NULL
	.if ( eax != 0 ) && ( dwBytesReturned != 0 )

		; Minimum allowable values of keyboard typematic rate and delay.

		movzx eax, ka.KeyRepeatMinimum.Rate
		mov g_dwMinRate, eax
		movzx eax, ka.KeyRepeatMinimum.Delay
		mov g_dwMinDelay, eax

		; Maximum allowable values of keyboard typematic rate and delay.

		movzx eax, ka.KeyRepeatMaximum.Rate
		mov g_dwMaxRate, eax
		movzx eax, ka.KeyRepeatMaximum.Delay
		mov g_dwMaxDelay, eax

		; Secondly we need to know current values of keyboard typematic rate and delay.
		invoke DeviceIoControl, g_hDevice, IOCTL_KEYBOARD_QUERY_TYPEMATIC, NULL, 0, \
							addr ktp, sizeof ktp, addr dwBytesReturned, NULL
		.if ( eax != 0 ) && ( dwBytesReturned != 0 )

			; Unit identifier.  Specifies the device unit for which this request is intended.
			; Should be a value of zero for default unit ID.
			movzx eax, ktp.UnitId
			mov g_dwUnitId, eax

			; Typematic rate, in repeats per second.
			movzx eax, ktp.Rate
			mov g_dwCurRate, eax

			; Typematic delay, in milliseconds.
			movzx eax, ktp.Delay
			mov g_dwCurDelay, eax

			mov ebx, TRUE			; indicate success

		.endif
	.endif

	mov eax, ebx
	ret

GetRateAndDelay endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                        SetRateAndDelay                                            
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

SetRateAndDelay proc uses ebx

local ktp:KEYBOARD_TYPEMATIC_PARAMETERS
local dwBytesReturned:DWORD

	and ebx, FALSE			; assume error

	mov eax, g_dwUnitId
	mov ktp.UnitId, ax

	; Typematic rate, in repeats per second.

	invoke SendMessage, g_hwndTbRate, TBM_GETPOS, 0, 0

	mov ecx, g_dwMaxRate
	sub ecx, g_dwMinRate
	shr ecx, 4					; / 16
	xor edx, edx
	mul ecx
	add eax, g_dwMinRate
	mov ktp.Rate, ax

	; Typematic delay, in milliseconds.

	invoke SendMessage, g_hwndTbDelay, TBM_GETPOS, 0, 0

	mov ecx, g_dwMaxDelay
	sub ecx, g_dwMinDelay
	shr ecx, 3					; / 8
	xor edx, edx
	mul ecx
	add eax, g_dwMinDelay
	mov ktp.Delay, ax

	invoke DeviceIoControl, g_hDevice, IOCTL_KEYBOARD_SET_TYPEMATIC, addr ktp, sizeof ktp, \
						NULL, 0, addr dwBytesReturned, NULL
	.if ( eax != 0 )
		mov ebx, TRUE			; indicate success
	.endif

	mov eax, ebx
	ret

SetRateAndDelay endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                               D I A L O G     P R O C E D U R E                                   
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

DlgProc proc uses ebx hDlg:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM

	mov eax, uMsg
	.if eax == WM_INITDIALOG

		invoke LoadIcon, g_hInstance, IDI_ICON
		invoke SendMessage, hDlg, WM_SETICON, ICON_BIG, eax

		invoke GetDlgItem, hDlg, IDC_DELAY
		mov g_hwndTbDelay, eax
		invoke GetDlgItem, hDlg, IDC_RATE
		mov g_hwndTbRate, eax
		invoke GetDlgItem, hDlg, IDC_APPLY
		mov g_hwndBtnApply, eax
		invoke EnableWindow, eax, FALSE

		; Range 0-7
		invoke SendMessage, g_hwndTbDelay, TBM_SETRANGE, TRUE, (7 SHL 16) OR 0
		invoke SendMessage, g_hwndTbDelay, TBM_SETPAGESIZE, 0, 2

		mov ecx, g_dwMaxDelay
		sub ecx, g_dwMinDelay
		shr ecx, 3					; / 8

		mov eax, g_dwCurDelay
		sub eax, g_dwMinDelay
		.if eax != 0				; Is it possible MaxDelay = MinDelay ? I don't know.
			xor edx, edx
			div ecx
		.endif
		.if eax > 7
			mov eax, 7
		.endif
		mov g_dwTbDelayPos, eax
		invoke SendMessage, g_hwndTbDelay, TBM_SETPOS, TRUE, eax
 

		; Range 0-15
		invoke SendMessage, g_hwndTbRate, TBM_SETRANGE, TRUE, (15 SHL 16) OR 0
		invoke SendMessage, g_hwndTbRate, TBM_SETPAGESIZE, 0, 4

		mov ecx, g_dwMaxRate
		sub ecx, g_dwMinRate
		shr ecx, 4					; / 16

		mov eax, g_dwCurRate
		sub eax, g_dwMinRate
		.if eax != 0				; Is it possible MaxRate = MinRate ? I don't know.
			xor edx, edx
			div ecx
		.endif
		.if eax > 15
			mov eax, 15		
		.endif
		mov g_dwTbRatePos, eax
		invoke SendMessage, g_hwndTbRate, TBM_SETPOS, TRUE, eax


	.elseif eax == WM_COMMAND

		mov ebx, wParam
		and ebx, 0FFFFh
		.if ( ebx == IDC_APPLY ) || ( ebx == IDOK )
			invoke SetRateAndDelay
			.if eax == TRUE
				invoke EnableWindow, g_hwndBtnApply, FALSE

				invoke SendMessage, g_hwndTbDelay, TBM_GETPOS, 0, 0
				mov g_dwTbDelayPos, eax

				invoke SendMessage, g_hwndTbRate, TBM_GETPOS, 0, 0
				mov g_dwTbRatePos, eax
			.else
				invoke MessageBox, NULL, $CTA0("Couldn't set keyboard typematic parameters"), \
							NULL, MB_ICONEXCLAMATION
			.endif
			.if ebx == IDOK
				invoke EndDialog, hDlg, 0
			.endif
		.elseif ebx == IDCANCEL
			invoke EndDialog, hDlg, 0
		.endif

	.elseif eax == WM_HSCROLL
		mov eax, lParam
		.if ( eax == g_hwndTbDelay ) || ( eax == g_hwndTbRate )
			invoke SendMessage, g_hwndTbDelay, TBM_GETPOS, 0, 0
			push eax
			invoke SendMessage, g_hwndTbRate, TBM_GETPOS, 0, 0
			pop ecx
			.if ( ecx == g_dwTbDelayPos ) && ( eax == g_dwTbRatePos )
				invoke EnableWindow, g_hwndBtnApply, FALSE
			.else
				invoke EnableWindow, g_hwndBtnApply, TRUE
			.endif
		.endif

	.elseif eax == WM_CLOSE
		invoke EndDialog, hDlg, 0

	.else

		xor eax, eax
		ret
	
	.endif

	xor eax, eax
	inc eax
	ret
    
DlgProc endp


;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                       start                                                       
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

start:

	invoke GetModuleHandle, NULL
	mov g_hInstance, eax
	invoke DefineDosDevice, DDD_RAW_TARGET_PATH, $CTA0("KbdTypematic"), $CTA0("\\Device\\KeyboardClass0")
	.if eax != 0

		invoke CreateFile, $CTA0("\\\\.\\KbdTypematic"), 0, 0, NULL, OPEN_EXISTING, 0, NULL
		.if eax != INVALID_HANDLE_VALUE
			mov g_hDevice, eax

			invoke GetRateAndDelay
			.if eax == TRUE
				invoke DialogBoxParam, g_hInstance, IDD_MAIN, NULL, addr DlgProc, 0
			.else
				invoke MessageBox, NULL, $CTA0("Couldn't query keyboard attributes"), NULL, MB_ICONEXCLAMATION
			.endif

			invoke CloseHandle, g_hDevice                 
		.else
			invoke MessageBox, NULL, $CTA0("Couldn't open keyboard device"), NULL, MB_ICONEXCLAMATION
		.endif
		invoke DefineDosDevice, DDD_REMOVE_DEFINITION, $CTA0("KbdTypematic"), NULL
	.else
		invoke MessageBox, NULL, $CTA0("Couldn't define link to keyboard device"), NULL, MB_ICONEXCLAMATION
	.endif

	invoke ExitProcess, 0
	invoke InitCommonControls

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                                                                                   
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

end start

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品精品国产色婷婷| 91精品国产综合久久久久久久久久| 7777精品伊人久久久大香线蕉的 | 欧美aa在线视频| 成人国产电影网| 日韩欧美一二三四区| 亚洲精品国产视频| 国产福利精品一区二区| 欧美日韩国产在线播放网站| 国产精品高清亚洲| 国产一区二区女| 日韩一区国产二区欧美三区| 亚洲成人中文在线| 91免费在线视频观看| 久久久综合九色合综国产精品| 青青草视频一区| 欧美日韩久久一区| 亚洲综合一区二区精品导航| 成人h动漫精品| 国产夜色精品一区二区av| 久久99最新地址| 日韩欧美一级二级三级久久久| 一区二区高清在线| 日本精品裸体写真集在线观看| 中文子幕无线码一区tr| 国产一区激情在线| 2021国产精品久久精品| 麻豆国产欧美日韩综合精品二区| 欧美日韩一级视频| 亚洲高清在线视频| 欧美影院一区二区| 玉米视频成人免费看| 97aⅴ精品视频一二三区| 国产在线精品一区二区| 日韩色视频在线观看| 视频一区视频二区中文字幕| 欧美日韩亚洲国产综合| 亚洲v中文字幕| 在线看日韩精品电影| 一区二区理论电影在线观看| 一本久久a久久精品亚洲| 亚洲欧美视频在线观看| 日本道精品一区二区三区| 亚洲精品自拍动漫在线| 色素色在线综合| 亚洲午夜电影在线观看| 欧美日韩在线三级| 日韩激情av在线| 欧美三级欧美一级| 手机精品视频在线观看| 日韩欧美国产精品| 国产一区二区美女| 视频一区二区不卡| 偷拍自拍另类欧美| 欧美精品一区二区在线观看| 成人综合日日夜夜| 午夜精品久久久久久久99樱桃| 中文字幕一区二区三区色视频| 91麻豆免费观看| 久久国产精品无码网站| **性色生活片久久毛片| 日韩欧美在线123| 欧美日韩aaa| 99视频精品在线| 国产综合久久久久影院| 亚洲精品国产a| 日韩一区二区视频在线观看| 99久久精品一区二区| 日本成人在线不卡视频| 亚洲欧美另类图片小说| 欧美精品久久天天躁| 国产另类ts人妖一区二区| 一区二区日韩av| 亚洲欧洲性图库| 最新热久久免费视频| 91高清在线观看| 国产一区二区精品久久| 亚洲激情男女视频| 久久婷婷成人综合色| 欧美私人免费视频| 97se狠狠狠综合亚洲狠狠| 不卡视频一二三| 午夜视频一区二区| 婷婷中文字幕一区三区| 日本成人在线电影网| 亚洲一区二区黄色| 亚洲色欲色欲www在线观看| 久久亚洲精精品中文字幕早川悠里 | 国产一区二区三区在线看麻豆| 亚洲卡通动漫在线| 日韩精品91亚洲二区在线观看| 免费观看30秒视频久久| 亚洲电影欧美电影有声小说| 国产一区二区三区综合| 18成人在线观看| 欧美一二三四区在线| 成人午夜碰碰视频| 亚洲国产三级在线| 国产网红主播福利一区二区| 欧美四级电影网| 久久综合久久综合亚洲| 日本丶国产丶欧美色综合| 久久精品国产一区二区三区免费看| 国产精品亲子乱子伦xxxx裸| 欧美日韩国产影片| 99视频一区二区| 蓝色福利精品导航| 亚洲综合色自拍一区| 久久久久久影视| 欧美日韩不卡在线| 本田岬高潮一区二区三区| 久久国产人妖系列| 亚洲综合丁香婷婷六月香| 久久精品视频在线看| 欧美日本不卡视频| 91免费看片在线观看| 国产在线精品一区二区夜色 | 欧美一区二区三区视频免费播放 | 日韩在线一二三区| 成人欧美一区二区三区视频网页 | 日韩一区二区在线观看视频播放| heyzo一本久久综合| 久久se精品一区二区| 亚洲成人综合视频| 亚洲精品网站在线观看| 国产蜜臀av在线一区二区三区| 欧美精品免费视频| 91蜜桃免费观看视频| 国产精品小仙女| 蜜臀99久久精品久久久久久软件| 亚洲国产日产av| 洋洋av久久久久久久一区| 国产精品久线观看视频| 久久久一区二区三区| 日韩欧美专区在线| 欧美一区二区三区在线看| 在线影院国内精品| 色噜噜夜夜夜综合网| 不卡电影免费在线播放一区| 国产在线精品一区二区不卡了| 久久精品久久久精品美女| 午夜影视日本亚洲欧洲精品| 亚洲国产视频一区二区| 樱花草国产18久久久久| 国产精品不卡在线| 国产精品久久午夜| 中文字幕第一区| 欧美国产精品中文字幕| 欧美激情一区二区| 亚洲国产高清不卡| 欧美经典一区二区| 国产精品美女久久久久av爽李琼| 久久久高清一区二区三区| 久久综合狠狠综合久久激情| 欧美成人高清电影在线| 日韩三级中文字幕| www国产成人免费观看视频 深夜成人网| 欧美一级午夜免费电影| 91精品福利在线一区二区三区| 9191国产精品| 日韩精品一区二区三区在线观看| 亚洲v精品v日韩v欧美v专区| 同产精品九九九| 日韩国产欧美在线视频| 日韩高清不卡一区二区| 免费日韩伦理电影| 激情国产一区二区| 国产成人三级在线观看| 国产a区久久久| 99久久国产免费看| 91九色最新地址| 欧美日韩一区精品| 日韩欧美一级在线播放| 久久久久国产精品厨房| 亚洲国产精品传媒在线观看| 亚洲色图一区二区三区| 亚洲自拍偷拍综合| 日韩高清不卡一区二区三区| 久久国产三级精品| 成人av资源在线观看| 在线精品国精品国产尤物884a| 欧美乱妇一区二区三区不卡视频| 欧美一三区三区四区免费在线看| 精品国产百合女同互慰| 亚洲国产精品成人综合色在线婷婷| 亚洲品质自拍视频网站| 亚洲成人动漫一区| 久久99久久久久久久久久久| 国产98色在线|日韩| 一本久道久久综合中文字幕| 欧美色倩网站大全免费| 亚洲精品在线观看网站| 国产精品久久久久久久久免费樱桃| 亚洲精品欧美二区三区中文字幕| 丝袜美腿亚洲一区二区图片| 国产精品影视在线| 色婷婷久久久亚洲一区二区三区| 91麻豆精品国产91久久久久久 | 久久一二三国产| 1024国产精品|