天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

當(dāng)前位置:主頁 > 論文百科 > 英文數(shù)據(jù)庫 >

Windows系統(tǒng)編程---第6章

發(fā)布時(shí)間:2017-02-20 15:52

  本文關(guān)鍵詞:Windows系統(tǒng)編程,由筆耕文化傳播整理發(fā)布。



Windows系統(tǒng)編程實(shí)用教程
授課教師: 職務(wù):

第6章
課程描述

探測網(wǎng)絡(luò)中的在線設(shè)備

Windows將很多系統(tǒng)配 置信息保存在注冊表 中,通過讀取注冊表 中的一些鍵值,,可以 獲取Windows的相應(yīng)系 統(tǒng)信息。比如,服務(wù) 和安裝程序的列表等; 通過修改注冊表中的 一些鍵值,可以對(duì) Win

dows系統(tǒng)進(jìn)行配 置.很多應(yīng)用程序也 把配置信息保存在注 冊表中。

本章知識(shí)點(diǎn)
6.1 6.2 6.3 6.4 理 注冊表的結(jié)構(gòu)和管理 對(duì)注冊表鍵的操作 對(duì)注冊表值的操作 注冊表編程實(shí)例:安裝和卸載程序管

6.1

注冊表的結(jié)構(gòu)

6.1.1注冊表的結(jié)構(gòu) 6.1.2 標(biāo)準(zhǔn)注冊表值類型

6.1.1 注冊表的結(jié)構(gòu)
1.HKEY_LOCAL_MACHINE (HKLM) 2.HKEY_CURRENT_CONFIG (HKCC) 3.HKEY_CLASSES_ROOT (HKCR) 4.HKEY_USERS (HKU) 5.HKEY_CURRENT_USER (HKCU)

注冊表編輯器
? 在“運(yùn)行”對(duì)話框中執(zhí)行regedit.exe命令,可以打開 “注冊表編輯器”窗口,如圖6.1所示。

6.1.2
類型編號(hào)
0 1 2 3 4

標(biāo)準(zhǔn)注冊表值類型
說 明

類型名
REG_NONE REG_SZ REG_EXPAND_SZ REG_BINARY REG_DWORD / REG_DWORD_LITTLE_ENDIAN

5

6
7 8 9 10 11

沒有類型 字符串類型 一個(gè)可擴(kuò)展的字符串值,其中可以包含環(huán)境變量 二進(jìn)制類型 DWORD類型,用于存儲(chǔ)32位無符號(hào)整數(shù),即 0~4,294,967,295 [232 – 1]之間的整數(shù),以littleendian格式存儲(chǔ) REG_DWORD_BIG_ENDIAN DWORD類型,用于存儲(chǔ)32位無符號(hào)整數(shù),即 0~4,294,967,295 [232 – 1] 之 間 的 整 數(shù) , 以 bigendian格式存儲(chǔ) REG_LINK 到其他注冊表鍵的鏈接,指定根鍵或到目標(biāo)鍵的 路徑 REG_MULTI_SZ 一個(gè)多字符串值,指定一個(gè)非空字符串的排序列 表 REG_RESOURCE_LIST 資源列表,用于枚舉即插即用硬件及其配置 REG_FULL_RESOURCE_DESCR 資源標(biāo)識(shí)符,用于枚舉即插即用硬件及其配置 IPTOR REG_RESOURCE_REQUIREME 資源需求列表,用于枚舉即插即用硬件及其配置 NTS_LIST REG_QWORD / QWORD類型,用于存儲(chǔ)64位無符號(hào)整數(shù),以 REG_QWORD_LITTLE_ENDIAN little-endian格式存儲(chǔ)或未指定存儲(chǔ)格式

6.2
6.2.1 6.2.2 6.2.3 6.2.4

對(duì)注冊表鍵的操作

打開和關(guān)閉鍵 創(chuàng)建注冊表鍵 刪除注冊表鍵 枚舉子鍵

6.2.1

打開和關(guān)閉鍵

?調(diào)用RegOpenKeyEx()函數(shù)可以打開指定的 注冊表鍵并返回其句柄,函數(shù)原型如下: LONG WINAPI RegOpenKeyEx( __in HKEY hKey, __in LPCTSTR lpSubKey, DWORD ulOptions, __in REGSAM samDesired, __out PHKEY phkResult );

【例6.1】
? 使用RegOpenKeyEx()函數(shù)判斷HKEY_LOCAL_MACHINE下的子鍵是否 存在,如圖6.2所示。 ? 創(chuàng)建一個(gè)基于對(duì)話框的MFC項(xiàng)目RegKeyExists,主對(duì)話框?qū)?yīng)的類 為CRegKeyExistsDlg。在主對(duì)話框中添加編輯框控件 IDC_EDIT_SUBKEY,并為其添加變量m_SubKey。

CRegKeyExistsDlg::OnInitDialog()
? 在CRegKeyExistsDlg::OnInitDialog()中為編輯框 IDC_EDIT_SUBKEY設(shè)置初始值,代碼如下: BOOL CRegKeyExistsDlg::OnInitDialog() { CDialog::OnInitDialog(); …… m_SubKey = "SOFTWARE\\\Microsoft\\\Windows\\CurrentVersion\\Unins tall"; UpdateData(0); return TRUE; // 除非將焦點(diǎn)設(shè)置到控件,否則返回TRUE }

單擊“判斷”按鈕對(duì)應(yīng)的代碼
void CRegKeyExistsDlg::OnBnClickedButtonVerify() { UpdateData(TRUE); LONG lRet; HKEY hKey; lRet = RegOpenKeyEx( HKEY_LOCAL_MACHINE, m_SubKey.GetBuffer(), 0, KEY_QUERY_VALUE, &hKey ); if( lRet != ERROR_SUCCESS ) AfxMessageBox("不存在") ; else AfxMessageBox("存在") ;

RegCloseKey( }

hKey

);

6.2.2

創(chuàng)建注冊表鍵

LONG RegCreateKeyEx( HKEY hKey, //一個(gè)打開的注冊表鍵的句柄,調(diào)用進(jìn)程對(duì) 該鍵必須擁有KEY_CREATE_SUB_KEY權(quán)限 LPCWSTR lpSubKey, //在hKey鍵下創(chuàng)建的子鍵的名字 DWORD Reserved, // 保留,必須為0 LPWSTR lpClass, //鍵的類別。如果NULL,則忽略 DWORD dwOptions, //選項(xiàng), REGSAM samDesired, // 指定對(duì)鍵的訪問權(quán)限 LPSECURITY_ATTRIBUTES lpSecurityAttributes, //指定安全屬 性,即返回的句柄是否可以被子進(jìn)程繼承。如果為NULL,則不可 以繼承 PHKEY phkResult, //用于接收被創(chuàng)建的鍵的句柄 LPDWORD lpdwDisposition //用于接收穿件的方式。 );

【例6.2】
? 使用RegCreateKeyEx()函數(shù)在HKEY_LOCAL_MACHINE\SOFTWARE下創(chuàng)建一個(gè)子鍵MyApp,代碼如下 : #include "stdafx.h" #include <windows.h> int _tmain(int argc, _TCHAR* argv[]) { HKEY hk; DWORD dwData, dwDisp; char lpSubKey[MAX_PATH] = "SOFTWARE\\MyApp"; if (RegCreateKeyEx(HKEY_LOCAL_MACHINE, lpSubKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hk, &dwDisp) != ERROR_SUCCESS) { printf("Could not create the registry key.\n"); return 0; } return 0; }

6.2.3

刪除注冊表鍵

LONG WINAPI RegDeleteKey( __in HKEY hKey, // 打開的要?jiǎng)h除的鍵的父鍵的句柄 ,用戶必須對(duì)該鍵有DELETE訪問權(quán)限 __in LPCTSTR lpSubKey // 要?jiǎng)h除的鍵名字,它必 須是hKey所表示的鍵的子鍵 ); ? 如果函數(shù)執(zhí)行成功,則返回ERROR_SUCCESS;否則返回一個(gè)非0錯(cuò)誤編 碼。返回ERROR_FILE_NOT_FOUND表示沒有找到要?jiǎng)h除的鍵。

【例6.3】
? 使用RegDeleteKey()函數(shù)刪除例6.2中創(chuàng)建的注冊表鍵MyApp,代碼如下: #include "stdafx.h" #include <windows.h> int _tmain(int argc, _TCHAR* argv[]) { HKEY hk; DWORD dwData, dwDisp; LONG lResult; char lpSubKey[MAX_PATH] = "SOFTWARE\\MyApp“; lResult = RegDeleteKey(HKEY_LOCAL_MACHINE, lpSubKey); if ( lResult!= ERROR_SUCCESS) { if (lResult == ERROR_FILE_NOT_FOUND) { printf("Key not found.\n"); return TRUE; } else { printf("Error opening key.\n"); return FALSE; } } return 0;

6.2.4

枚舉子鍵

? 在下面的注冊表鍵下保存著所有已安裝軟件的信息,每個(gè)子鍵都 保存著一個(gè)安裝軟件的信息,如圖6.3所示。 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersi on\Uninstall

RegEnumKey()函數(shù)
LONG WINAPI RegEnumKey( __in HKEY hKey, //打開的注冊表鍵句柄,用戶對(duì)該鍵必 須有KEY_ENUMERATE_SUB_KEYS的訪問權(quán)限 __in DWORD dwIndex, //指定要獲取hKey鍵的子鍵的 序號(hào) __out LPTSTR lpName, // 用于接收子鍵名稱的字符串 緩沖區(qū) __in DWORD cchName //指定接收緩沖區(qū)的大小 );

【例6.3】
? 枚舉并打印HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows \CurrentVersion\Uninstall 的所有子鍵,代碼如下:

#include "stdafx.h" #include <windows.h> int _tmain(int argc, _TCHAR* argv[]) { LONG lRet; HKEY hKey; //打開鍵HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall lRet = RegOpenKeyEx( HKEY_LOCAL_MACHINE, "SOFTWARE\\\Microsoft\\\Windows\\CurrentVersion\\Uninstall", 0, KEY_ENUMERATE_SUB_KEYS, &hKey ); if(lRet != ERROR_SUCCESS) { printf("Can not open the key...") ; return 0; }

接上
DWORD dwCurIndex =0; //子鍵的索引 // 枚舉子鍵 char SubKey[MAX_PATH]; while(true){ lRet=RegEnumKey(hKey, dwCurIndex, SubKey, MAX_PATH); if((lRet == ERROR_NO_MORE_ITEMS) || (lRet==ERROR_INVALID_HANDLE)) break; else printf("%s\n",SubKey); dwCurIndex++; } RegCloseKey(hKey); system("pause"); return 0;
}

【例6.3】的運(yùn)行界面

6.3
6.3.1 6.3.2 6.3.3

對(duì)注冊表值的操作

讀取注冊表值 設(shè)置注冊表值 刪除注冊表值

6.3.1

讀取注冊表值

? 調(diào)用RegQueryValueEx()函數(shù)可以讀取指定的注冊表值,函數(shù)原型如下: LONG RegQueryValueEx( HKEY hKey, // 已打開的注冊表鍵句柄 LPCWSTR lpValueName, // 要讀取的值的名字 LPDWORD lpReserved, // 保留,使用NULL LPDWORD lpType, // 值的數(shù)據(jù)類型 LPBYTE lpData, // 用于接收值的數(shù)據(jù)的緩沖區(qū) LPDWORD lpcbData // 指定緩沖區(qū)lpData的長度,單位是字 節(jié) ); ? 如果函數(shù)執(zhí)行成功,則返回ERROR_SUCCESS;否則返回錯(cuò)誤代碼。

【例6.5】
? 讀取并打印HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\鍵下的ProductName,代碼如下: #include "stdafx.h" #include <windows.h> int _tmain(int argc, _TCHAR* argv[]) { HKEY hKey; // 注冊表鍵 DWORD dwType = REG_SZ; // 值的數(shù)據(jù)類型 DWORD dwSize; //緩沖區(qū)大小 BYTE data[MAX_PATH]; //緩沖區(qū) SecureZeroMemory(data, MAX_PATH);

接上
if(RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", &hKey) == ERROR_SUCCESS) { if(RegQueryValueEx(hKey,"ProductName", //值名 NULL, //保留 &dwType, // 數(shù)據(jù)類型 (LPBYTE)data, // 獲取數(shù)據(jù)的緩沖區(qū) &dwSize) == ERROR_SUCCESS) printf("Product Name: %s\n\n", data); else printf("RegOpenKey error.\n"); } else printf("RegQueryValueEx error.\n"); system("pause"); return 0; }

6.3.2

設(shè)置注冊表值

LONG RegSetValueEx( HKEY hKey, // 已打開的注冊表鍵句柄 ,要設(shè)置的注冊表值應(yīng)在該鍵下 LPCWSTR lpValueName, //要設(shè)置的值的名字 DWORD Reserved, // 保留,使用NULL DWORD dwType, //值的數(shù)據(jù)類型 const BYTE* lpData, // 用于指定值的數(shù)據(jù)的緩 沖區(qū) DWORD cbData );

【例6.6】
? 在HKEY_LOCAL_MACHINE\SOFTWARE\MyApp\鍵下創(chuàng)建和設(shè)置值ProductName的數(shù)據(jù)為 “MyAppName”,代碼如下:

#include "stdafx.h" #include <windows.h> int _tmain(int argc, _TCHAR* argv[]) { HKEY hKey; // 注冊表鍵 DWORD dwType = REG_SZ; // 值的數(shù)據(jù)類型 DWORD dwSize; //緩沖區(qū)大小 BYTE data[MAX_PATH]; //緩沖區(qū) SecureZeroMemory(data, MAX_PATH); if(RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWARE\\MyApp", &hKey) == ERROR_SUCCESS) {

接上
if(RegSetValueEx(hKey,"ProductName", //值名 NULL, //保留 REG_SZ, // 數(shù)據(jù)類型 (LPBYTE)"MyAppName“,// 數(shù)據(jù) sizeof("MyAppName")) == ERROR_SUCCESS) printf("Write Product Name Successfully..\n\n", data); else printf("RegOpenKey error.\n"); } else printf("RegSetValueEx error.\n"); system("pause"); return 0; }

6.3.3

刪除注冊表值

? 調(diào)用RegDeletetValue()函數(shù)可以讀取指定的注冊表值,函數(shù) 原型如下: LONG WINAPI RegDeleteValue( __in HKEY hKey, // 已打開的我注冊表鍵句柄,要 設(shè)置的注冊表值應(yīng)在該鍵下 __in LPCTSTR lpValueName //要?jiǎng)h除的值的名字 );

? 如果函數(shù)執(zhí)行成功,則返回ERROR_SUCCESS;否則返回錯(cuò)誤代 碼。

【例6.7】
刪除HKEY_LOCAL_MACHINE\SOFTWARE\MyApp\鍵下的值ProductName,代碼如下:

#include "stdafx.h" #include <windows.h> int _tmain(int argc, _TCHAR* argv[]) { HKEY hKey; // 注冊表鍵 DWORD dwType = REG_SZ; // 值的數(shù)據(jù)類型 DWORD dwSize; //緩沖區(qū)大小 BYTE data[MAX_PATH]; //緩沖區(qū)

SecureZeroMemory(data, MAX_PATH); if(RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWARE\\MyApp", &hKey) == ERROR_SUCCESS) { if(RegDeleteValue(hKey,"ProductName") == ERROR_SUCCESS) printf("Delete Product Name Successfully..\n\n", data); else printf("RegOpenKey error.\n"); } else printf("RegSetValueEx error.\n");
system("pause"); return 0; }

6.4

注冊表編程實(shí)例:安裝和卸載程序管理

6.4.1

設(shè)計(jì)程序界面

? 創(chuàng)建一個(gè)基于對(duì)話框的項(xiàng)目unstallmanager,在主對(duì)話框 IDD_UNINSTALLMANAGER_DIALOG中添加一個(gè)Combo Box控件IDC_COMBO1 ,并為其定義變量,代碼如下: CComboBox m_Typelist; ? 在主對(duì)話框中添加一個(gè)List Control控件IDC_LIST1,并為其定義變量 ,代碼如下: CListCtrl m_list; ? 將控件IDC_LIST1的view屬性設(shè)置為Report,將“所有者數(shù)據(jù)”屬性設(shè) 置為False,即由用戶管理數(shù)據(jù)。

6.4.2

自定義類CinstalledSoftware

class CInstalledProgram { public: char SubkeyName[MAX_PATH]; // 所屬子鍵名 char ProgramName[MAX_PATH]; //軟件名 char ProgramVersion[MAX_PATH]; //版本 char InstallLocation[MAX_PATH]; //安裝位置 char ModifyPath[MAX_PATH]; //修復(fù)路徑 char Publisher[MAX_PATH]; //開發(fā)商 char Uninstallstring[MAX_PATH]; //卸載命令 char ReleaseType[MAX_PATH]; // 軟件類型,Security Update、Update或Hotfix char ParentKeyName[MAX_PATH]; // 父鍵名,有些系統(tǒng)補(bǔ)丁的父鍵名為 OperatingSystem char url[MAX_PATH]; // 網(wǎng)址

CInstalledProgram* Next; // 指向下一個(gè)記錄 public: CInstalledProgram(void); // 構(gòu)造函數(shù) ~CInstalledProgram(void); // 析構(gòu)函數(shù) void ReadValues(); // 根據(jù)SubkeyName從注冊表中讀取安裝軟件的 信息到當(dāng)前記錄 };

6.4.3

加載安裝軟件列表

(1)枚舉注冊表中 SOFTWARE\Microsoft\Windows\CurrentVersion\Unins tall\的子鍵,為每個(gè)子鍵創(chuàng)建一個(gè)CInstalledProgram 對(duì)象,并將這些對(duì)象連接成鏈表。 (2)對(duì)每個(gè)CInstalledProgram對(duì)象調(diào)用ReadValues()函 數(shù),從注冊表中讀取安裝軟件的信息。 (3)將安裝軟件鏈表中的每個(gè)CInstalledProgram對(duì)象添 加到CListCtrl控件m_list中。根據(jù)pProg>ReleaseType和pProg->ParentKeyName的值及確定軟件 屬于應(yīng)用程序還是系統(tǒng)補(bǔ)丁,然后根據(jù)當(dāng)前選擇的軟件 類型決定將其添加到列表中。 );

6.4.4
1.彈出右鍵菜單 2.打開目錄 3.訪問網(wǎng)站 4.修復(fù)軟件 5.卸載軟件

對(duì)軟件進(jìn)行操作


更多相關(guān)文檔:

第6章知識(shí)點(diǎn)

第6章知識(shí)點(diǎn)_政史地_高中教育_教育專區(qū)。1.物質(zhì)燃燒需要同時(shí)滿足 3 個(gè)條件 ① 2.滅火的原理 ① 3.可燃物完全燃燒的條件是① 4.木炭充分燃燒生成二氧化碳,其...

第6章 部件工作原理與編程示例(1)

第5章 應(yīng)用系統(tǒng)設(shè)計(jì)與調(diào)試... 第6章 部件工作原理與編程... 第7章 嵌入式...打開 AXD Debugger(或 ARM Debugger for Windows)的命令行窗口,執(zhí)行 obey 命令...

第6章課后答案

88 第 6 章 用戶界面設(shè)計(jì) 2.滾動(dòng)條響應(yīng)的重要...編程題 1.編寫一應(yīng)用程序,實(shí)現(xiàn)對(duì)文本框中的文本...3.設(shè)計(jì)一個(gè)類似于 Windows 操作系統(tǒng)的滾動(dòng)屏幕保護(hù)...

Windows系統(tǒng)編程練習(xí)題參考答案

Windows系統(tǒng)編程練習(xí)題參考答案_工學(xué)_高等教育_教育專區(qū)。第1章一、選擇題 1....內(nèi)核模式 6.Win32 7.POSIX 8.OS/2 9.執(zhí)行體服務(wù) 10.內(nèi)核 11.硬件抽象層...

第6章 系統(tǒng)實(shí)施

可視化開發(fā)工具,容易學(xué) 習(xí)和掌握; 它提供了基于 Windows 的圖形界面和事件驅(qū)動(dòng)...操作和編程功能,適合快速原型系統(tǒng)、小型辦公自動(dòng)化系統(tǒng)的開發(fā)(對(duì)于分布式 系統(tǒng)、...

游洪躍C語言程序設(shè)計(jì)第6章 習(xí)題解答

第6 章 習(xí)題解答一、選擇題 1.設(shè)有如下說明: ...答案:棧三、編程題 *1.定義一個(gè)結(jié)構(gòu)類型變量,包括...系統(tǒng)提示信息 */ /* 返回值 0, 返回操作系統(tǒng) *...

計(jì)算機(jī)代數(shù)系統(tǒng)第6章-程序設(shè)計(jì)

6頁 免費(fèi) 計(jì)算機(jī)代數(shù)系統(tǒng)第5章-方程... 22頁 20財(cái)富值喜歡此文檔的還喜歡 ...但是,由于程序設(shè)計(jì)本身的復(fù)雜性,因此, 在編寫程序時(shí)應(yīng)嚴(yán)格按照相關(guān)算法設(shè)計(jì)程序,...

第6章習(xí)題 - 副本

第6章 1 判斷題 1-1 計(jì)算機(jī)病毒只會(huì)破壞計(jì)算機(jī)的操作系統(tǒng),而對(duì)其他網(wǎng)絡(luò)設(shè)備...Windows“控制面板”中無“本地”連接圖標(biāo) 3-2 當(dāng)計(jì)算機(jī)上發(fā)現(xiàn)病毒時(shí),最徹底...

第6章 思考習(xí)題答案

第6章 思考習(xí)題答案_理學(xué)_高等教育_教育專區(qū)。思考習(xí)題 一、選擇題 1.下列不是混合身份驗(yàn)證模式的優(yōu)點(diǎn)的是( D )。 A 創(chuàng)建了 Windows 操作系統(tǒng)上的另外一個(gè)安...

第6章 Windows操作系統(tǒng)

第6章 Windows操作系統(tǒng)第6章 Windows操作系統(tǒng)隱藏>> 第6章一、教學(xué)內(nèi)容: 教學(xué)內(nèi)容: Windows 操作系統(tǒng) Windows 操作系統(tǒng)是微型機(jī)上最常用的操作系統(tǒng)之一,學(xué)習(xí)并使...

更多相關(guān)標(biāo)簽:

windows系統(tǒng)編程 | Windows系統(tǒng)編程 pdf | windows下系統(tǒng)編程 | linux系統(tǒng)編程 pdf | linux系統(tǒng)編程 | c c 嵌入式系統(tǒng)編程 | 易語言編程系統(tǒng) | ks線切割編程系統(tǒng) |


  本文關(guān)鍵詞:Windows系統(tǒng)編程,由筆耕文化傳播整理發(fā)布。



本文編號(hào):244169

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/wenshubaike/mishujinen/244169.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶917e2***提供,本站僅收錄摘要或目錄,作者需要?jiǎng)h除請E-mail郵箱bigeng88@qq.com
激情中文字幕在线观看| 高清国产日韩欧美熟女| 殴美女美女大码性淫生活在线播放| 国产精品日韩精品最新| 99精品国产一区二区青青| 欧美日韩在线第一页日韩| 色狠狠一区二区三区香蕉蜜桃| 成人日韩在线播放视频| 五月婷婷六月丁香亚洲| 欧美多人疯狂性战派对| 成人午夜爽爽爽免费视频| 丝袜破了有美女肉体免费观看| 丝袜视频日本成人午夜视频| 亚洲妇女作爱一区二区三区| 国产又粗又猛又爽色噜噜| 人妻少妇系列中文字幕| 亚洲高清中文字幕一区二区三区| 国产黑人一区二区三区| 亚洲国产成人av毛片国产 | 日韩精品在线观看一区| 日本深夜福利视频在线| 福利视频一区二区在线| 日本 一区二区 在线| 国产又粗又猛又爽又黄的文字| 久久99爱爱视频视频| 粉嫩国产一区二区三区在线| 午夜精品在线视频一区| 好吊一区二区三区在线看| 超薄丝袜足一区二区三区| 四季精品人妻av一区二区三区 | 亚洲欧美日本视频一区二区| 亚洲午夜福利不卡片在线| 老司机激情五月天在线不卡| 韩国日本欧美国产三级| 国产精品一级香蕉一区| 欧美日韩在线第一页日韩| 欧美激情一区二区亚洲专区| 欧美中文字幕一区在线 | 国产精品成人免费精品自在线观看| 亚洲精品高清国产一线久久| 少妇丰满a一区二区三区|