成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > BAT批處理、VBScript批量安裝字體腳本分享

BAT批處理、VBScript批量安裝字體腳本分享

熱門標(biāo)簽:百度地圖標(biāo)注點距離代碼 神行者美術(shù)館地圖標(biāo)注 佛山真人電銷機(jī)器人廠家 齊齊哈爾高德地圖標(biāo)注店 哪里有便宜的地圖標(biāo)注公司 除了地圖標(biāo)注還有這種生意嗎 地圖標(biāo)注政府哪個部門管 如何用機(jī)器人進(jìn)行電銷 東營快遞外呼系統(tǒng)

根據(jù)新系統(tǒng)要求,經(jīng)常要部署一些原來系統(tǒng)里沒有的字體,原先我為了圖省事經(jīng)常會要求用戶手動安裝字體文件,雖然Windows的易用性做得相當(dāng)不錯,但是仍然要照顧一些不會安裝字體的人,其實把這些字體打包進(jìn)安裝包更為方便,不過我覺得總不能每有新字體都要搞個安裝包那么麻煩吧。更重要的是仍然有人會問我字體怎么安裝,以前清一色的Windows XP系統(tǒng),我倒也方便,直接告知打開控制面板找到字體文件夾,把要安裝的字體拖進(jìn)去即可;現(xiàn)在有Windows 7還是Windows 8等各種版本W(wǎng)indows系統(tǒng),對于安裝字體這個小小操作我也開始分情況討論了。

使用特殊文件夾或者DESKTOP.INI方法

使用特殊文件夾方法

Windows保留了一種特殊文件夾引用,比如在Windows XP的情況下,新建一個文件夾,然后在文件夾重命名后綴.{645FF040-5081-101B-9F08-00AA002F954E}(注意以點號分隔),然后這個文件夾就變成了回收站的一個引用,當(dāng)我們點擊進(jìn)去的時候?qū)嶋H上進(jìn)去的是回收站。

好了我在想對于字體是不是也可以搞個文件夾引用,這樣直接叫用戶把要安裝的字體拖進(jìn)去即可,大家注意到這個成功的關(guān)鍵在于后面那段長長的ID號,那個學(xué)名叫做GUID,通常可以通過注冊表查詢,主要路徑在于:

復(fù)制代碼 代碼如下:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer

比如回收站就位于下面的注冊表路徑:
復(fù)制代碼 代碼如下:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace

對于字體我也在如下路徑找到了:
復(fù)制代碼 代碼如下:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace

字體的GUID是{D20EA4E1-3957-11d2-A40B-0C5020524152},但是當(dāng)我新建一個文件夾并且名稱以.{D20EA4E1-3957-11d2-A40B-0C5020524152}(注意點號)結(jié)尾,當(dāng)我點進(jìn)去時卻不能進(jìn)入字體文件夾,于是這個想法被驗證為失敗。

使用Desktop.ini方法

其實建立特殊文件夾還有一個方法就是采用文件夾的Desktop.ini,抱著試試的心態(tài),我在文件夾內(nèi)部建立了Desktop.ini,內(nèi)容如下:

復(fù)制代碼 代碼如下:

[.ShellClassInfo]
IconFile=%SystemRoot%\system32\SHELL32.dll
IconIndex=38
CLSID={D20EA4E1-3957-11d2-A40B-0C5020524152}

很遺憾,依然不能直達(dá)字體目錄,所以這一種辦法也是行不通的。

本著方便群眾的想法,我決定做個小小的程序,當(dāng)然我首先求助了萬能的Google。原本想搞個桌面程序來著,也找到老外現(xiàn)成的代碼FontReg – Windows Font Registration Installation Utility。后來隨著研究的深入,突然發(fā)現(xiàn)這玩意兒用批處理或者腳本實現(xiàn)更為簡單。

CMD或BAT批處理安裝字體

通常情況下字體文件夾位于C:\Windows\Fonts,轉(zhuǎn)換為帶環(huán)境變量的通用版本為%SystemRoot%\Fonts\,我們也許想當(dāng)然的認(rèn)為將字體復(fù)制到這個路徑下就完成了安裝,其實不然,系統(tǒng)安裝字體不單單是將字體文件復(fù)制到這個路徑下,其還進(jìn)行了其他操作,比如更新注冊表字體列表。通常情況下這個列表位于路徑如下:

復(fù)制代碼 代碼如下:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts

于是對于批處理來說,網(wǎng)上安裝字體流程大概分為兩派,首先第一步復(fù)制到Fonts文件夾,這個是公認(rèn)的,第二步則有不同:一派認(rèn)為應(yīng)該更新注冊表;另一派則傾向于使用AddFontResource這個函數(shù)。

使用AddFontResource更新系統(tǒng)字體列表

什么是AddFontResource函數(shù)?這是個Win32 API函數(shù),位于gdi32.dll動態(tài)鏈接庫上,MSDN參考見這里。我們可以編譯調(diào)用這個函數(shù),什么?“編譯”?貌似和這里講的批處理差遠(yuǎn)了吧,別急,好在這個函數(shù)簽名不復(fù)雜,其有個AddFontResourceA的ANSI版本,這樣給我們直接外部通過rundll32調(diào)用提供了可能,例如下面的代碼片段:

復(fù)制代碼 代碼如下:

rundll32.exe gdi32.dll,AddFontResourceA %SystemRoot%\Fonts\字體.ttf

具體的代碼如下(來源不詳,將該批處理和TTF字體位于同一路徑下,然后雙擊即可):

復(fù)制代碼 代碼如下:

for /f %%a in ('dir /x /b *.ttf') do (
dir %windir%fonts%%a>nul 2>nul||(copy %%a %windir%fonts>nul 2>nulrundll32.exe gdi32.dll,AddFontResourceA %windir%fonts%%a)
)

實際操作來看,這段代碼在我的電腦上沒有產(chǎn)生任何效果。

使用注冊表更新系統(tǒng)字體列表

參考《Windows 7: Installing fonts via command line/script》這個帖子,找到下面的代碼:

@ECHO OFF
TITLE Adding Fonts..
REM Filename: ADD_Fonts.cmd
REM Script to ADD TrueType and OpenType Fonts for Windows
REM By Islam Adel
REM 2012-01-16
 
REM How to use:
REM Place the batch file inside the folder of the font files OR:
REM Optional Add source folder as parameter with ending backslash and dont use quotes, spaces are allowed
REM example "ADD_fonts.cmd" C:\Folder 1\Folder 2\

 
IF NOT "%*"=="" SET SRC=%*
ECHO.
ECHO Adding Fonts..
ECHO.
FOR /F %%i in ('dir /b "%SRC%*.*tf"') DO CALL :FONT %%i
REM OPTIONAL REBOOT
REM shutdown -r -f -t 10 -c "Reboot required for Fonts installation"
ECHO.
ECHO Done!
PAUSE
EXIT
 
:FONT
ECHO.
REM ECHO FILE=%~f1
SET FFILE=%~n1%~x1
SET FNAME=%~n1
SET FNAME=%FNAME:-= %
IF "%~x1"==".otf" SET FTYPE=(OpenType)
IF "%~x1"==".ttf" SET FTYPE=(TrueType)
 
ECHO FILE=%FFILE%
ECHO NAME=%FNAME%
ECHO TYPE=%FTYPE%
 
COPY /Y "%SRC%%~n1%~x1" "%SystemRoot%\Fonts\"
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "%FNAME% %FTYPE%" /t REG_SZ /d "%FFILE%" /f
GOTO :EOF

仔細(xì)閱讀代碼后發(fā)現(xiàn),這段批處理在復(fù)制字體并更新注冊表后居然要重啟電腦(汗~),這種做法顯然對最終用戶不太友好,綜合以上我決定放棄批處理的方式安裝字體。

使用VBSCRIPT安裝字體

最后我還是干回老本行,使用VBScript腳本來實現(xiàn)這個功能。腳本的重點是采用Shell.ApplicationActiveX/COM對象實現(xiàn)復(fù)制到系統(tǒng)特殊文件夾下,實際上這個操作和用戶手動復(fù)制到字體文件夾下一樣,系統(tǒng)會自動為我們安裝字體而不需要我們顧及注冊表更新的問題,對于Vista及更高版本的系統(tǒng)來說,我參考了《The true ultimate font install for Windows 7 and XP vbs》的做法,使用.InvokeVerb("Install")直接調(diào)用字體文件對象的安裝命令。

詳細(xì)的代碼如下(請復(fù)制的朋友手下留情,保留版權(quán)信息,謝謝):

復(fù)制代碼 代碼如下:

'
' File Description : VBScript Windows Fonts Installer
'
' Copyright (c) 2012-2013 WangYe. All rights reserved.
'
' Author: WangYe
' This code is distributed under the BSD license
'
' Usage:
'    Drag Font files or folder to this script
'    or Double click this script file, It will install fonts on the current directory
'    or select font directory to install
' *** 請不要移除此版權(quán)信息 ***
'
Option Explicit
 
Const FONTS = H14
Const HKEY_LOCAL_MACHINE = H80000002
Const strComputer = "."
 
Const SHELL_MY_COMPUTER = H11
Const SHELL_WINDOW_HANDLE = 0
Const SHELL_OPTIONS = 0
Function GetOpenDirectory(title)
    Dim ShlApp,ShlFdr,ShlFdrItem
 
    Set ShlApp = WSH.CreateObject("Shell.Application")
    Set ShlFdr = ShlApp.Namespace(SHELL_MY_COMPUTER)
    Set ShlFdrItem = ShlFdr.Self
    GetOpenDirectory = ShlFdrItem.Path
    Set ShlFdrItem = Nothing
    Set ShlFdr = Nothing
 
    Set ShlFdr = ShlApp.BrowseForFolder _
                (SHELL_WINDOW_HANDLE, _
                title, _
                SHELL_OPTIONS, _
                GetOpenDirectory)
    If ShlFdr Is Nothing Then
        GetOpenDirectory = ""
    Else
        Set ShlFdrItem = ShlFdr.Self
        GetOpenDirectory = ShlFdrItem.Path
        Set ShlFdrItem = Nothing
    End If
    Set ShlApp = Nothing
End Function
 
 
Function IsVista()
    IsVista = False
    Dim objWMIService, colOperationSystems, objOperationSystem
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" strComputer "\root\cimv2")
    Set colOperationSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
        For Each objOperationSystem In colOperationSystems
            If CInt(Left(objOperationSystem.Version, 1)) > 5 Then
                IsVista = True
                Exit Function
            End If
        Next
    Set colOperationSystems = Nothing
    Set objWMIService = Nothing
End Function
 
Class FontInstaller
 
    Private objShell
    Private objFolder
    Private objRegistry
    Private strKeyPath
    Private objRegExp
    Private objFileSystemObject
    Private objDictFontFiles
    Private objDictFontNames
    Private pfnCallBack
    Private blnIsVista
 
    Public Property Get FileSystemObject
        Set FileSystemObject = objFileSystemObject
    End Property
 
    Public Property Let CallBack(value)
        pfnCallBack = value
    End Property
 
    Private Sub Class_Initialize()
        strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Fonts"
 
        Set objShell = CreateObject("Shell.Application")
        Set objFileSystemObject = CreateObject("Scripting.FileSystemObject")
        Set objFolder = objShell.Namespace(FONTS)
        Set objDictFontFiles = CreateObject("Scripting.Dictionary")
        Set objDictFontNames = CreateObject("Scripting.Dictionary")
        Set objRegistry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _
                     strComputer "\root\default:StdRegProv")
        Set objRegExp = New RegExp
            objRegExp.Global = False
            objRegExp.Pattern = "^([^\(]+) \(.+$"
 
        blnIsVista = IsVista()
        makeFontNameList
        makeFontFileList
    End Sub
 
    Private Sub Class_Terminate()
        Set objRegExp = Nothing
        Set objRegistry = Nothing
        Set objFolder = Nothing
            objDictFontFiles.RemoveAll
        Set objDictFontFiles = Nothing
            objDictFontNames.RemoveAll
        Set objDictFontNames = Nothing
        Set objFileSystemObject = Nothing
        Set objShell = Nothing
    End Sub
 
    Private Function GetFilenameWithoutExtension(ByVal FileName)
        ' http://social.technet.microsoft.com/Forums/en-US/ebe19301-541a-412b-8e89-08c4263cc60b/get-filename-without-extension
        Dim Result, i
        Result = FileName
        i = InStrRev(FileName, ".")
        If ( i > 0 ) Then
        Result = Mid(FileName, 1, i - 1)
        End If
        GetFilenameWithoutExtension = Result
    End Function
 
    Private Sub makeFontNameList()
        On Error Resume Next
        Dim strValue,arrEntryNames
        objRegistry.EnumValues HKEY_LOCAL_MACHINE, strKeyPath, arrEntryNames
        For Each strValue in arrEntryNames
           objDictFontNames.Add objRegExp.Replace(strValue, "$1"), strValue
        Next
        If Err.Number>0 Then Err.Clear
    End Sub
 
    Private Sub makeFontFileList()
        On Error Resume Next
        Dim objFolderItem,colItems,objItem
        Set objFolderItem = objFolder.Self
        'Wscript.Echo objFolderItem.Path
        Set colItems = objFolder.Items
        For Each objItem in colItems
            objDictFontFiles.Add GetFilenameWithoutExtension(objItem.Name),objItem.Name
        Next
        Set colItems = Nothing
        Set objFolderItem = Nothing
        If Err.Number>0 Then Err.Clear
    End Sub
 
    Function getBaseName(ByVal strFileName)
        getBaseName = objFileSystemObject.GetBaseName(strFileName)
    End Function
 
    Public Function PathAddBackslash(strFileName)
        PathAddBackslash = strFileName
        If objFileSystemObject.FolderExists(strFileName) Then
          Dim last
          ' 文件夾存在
          ' 截取最后一個字符
          last = Right(strFileName, 1)
          If last>"\" And last>"/" Then
            PathAddBackslash = strFileName "\"
          End If
        End If
    End Function
 
    Public Function isFontInstalled(ByVal strName)
        isFontInstalled = objDictFontNames.Exists(strName) Or objDictFontFiles.Exists(strName)
    End Function
 
    Public Function isFontFileInstalled(ByVal strFileName)
        isFontFileInstalled = isFontInstalled(objFileSystemObject.GetBaseName(strFileName))
    End Function
 
    Public Sub installFromFile(ByVal strFileName)
        Dim strExtension, strBaseFileName, objCallBack, nResult
        strBaseFileName = objFileSystemObject.GetBaseName(strFileName)
        strExtension = UCase(objFileSystemObject.GetExtensionName(strFileName))
 
        If Len(pfnCallBack) > 0 Then
            Set objCallBack = GetRef(pfnCallBack)
        Else
            Set objCallBack = Nothing
        End If
 
        If strExtension = "TTF" Or strExtension = "TTC" Or strExtension = "OTF" Then
            If Not isFontInstalled(strBaseFileName) Then
                If blnIsVista Then
                    Dim objFont, objFontNameSpace
                    Set objFontNameSpace = objShell.Namespace(objFileSystemObject.GetParentFolderName(strFileName))
                    Set objFont = objFontNameSpace.ParseName(objFileSystemObject.GetFileName(strFileName))
                        'WSH.Echo objFileSystemObject.GetParentFolderName(strFileName)
                        objFont.InvokeVerb("Install")
                    Set objFont = Nothing
                    Set objFontNameSpace = Nothing
                Else
                'WSH.Echo strFileName
                objFolder.CopyHere strFileName
                End If
 
                nResult = 0
            Else
                nResult = 1
            End If
        Else
            nResult = -1
        End If
 
        If IsObject(objCallBack) Then
            objCallBack Me, strFileName, nResult
            Set objCallBack = Nothing
 
        End If
    End Sub
 
    Public Sub installFromDirectory(ByVal strDirName)
        Dim objFolder, colFiles, objFile
        Set objFolder = objFileSystemObject.GetFolder(strDirName)
        Set colFiles = objFolder.Files
        For Each objFile in colFiles
            If objFile.Size > 0 Then
                installFromFile PathAddBackslash(strDirName) objFile.Name
            End If
        Next
 
        Set colFiles = Nothing
        Set objFolder = Nothing
    End Sub
 
    Public Sub setDragDrop(objArgs)
        ' http://msdn.microsoft.com/en-us/library/c488f3e0(v=vs.84).aspx
        Dim i
        For i = 0 to objArgs.Count - 1
           If objFileSystemObject.FileExists(objArgs(i)) Then
                installFromFile objArgs(i)
           ElseIf objFileSystemObject.FolderExists(objArgs(i)) Then
                installFromDirectory objArgs(i)
           End If
        Next
    End Sub
End Class
 
Sub ForceCScriptExecution()
    ' https://stackoverflow.com/questions/4692542/force-a-vbs-to-run-using-cscript-instead-of-wscript
    ' http://www.winhelponline.com/articles/185/1/VBScripts-and-UAC-elevation.html
    Dim Arg, Str
    If Not LCase( Right( WScript.FullName, 12 ) ) = "\cscript.exe" Then
        For Each Arg In WScript.Arguments
            If InStr( Arg, " " ) Then Arg = """" Arg """"
            Str = Str " " Arg
        Next
 
        If IsVista() Then
            CreateObject( "Shell.Application" ).ShellExecute _
                "cscript.exe","http://nologo """ _
                WScript.ScriptFullName _
                """ " Str, "", "runas", 1
        Else
 
            CreateObject( "WScript.Shell" ).Run _
            "cscript //nologo """ _
            WScript.ScriptFullName _
            """ " Str
 
        End If
        WScript.Quit
    End If
End Sub
 
Sub DisplayMessage(ByRef objInstaller, ByVal strFileName, ByVal nResult)
    WScript.StdOut.Write "Install " objInstaller.getBaseName(strFileName) " ->>> "
    Select Case nResult
        Case 0
            WScript.StdOut.Write "SUCCEEDED"
        Case 1
            WScript.StdOut.Write "ALREADY INSTALLED"
        Case -1
            WScript.StdOut.Write "FAILED (Reason: Not a Font File)"
    End Select
    WScript.StdOut.Write vbCrLf
End Sub
 
Sub Pause(strPause)
     WScript.Echo (strPause)
     WScript.StdIn.Read(1)
End Sub
 
Function VBMain(colArguments)
    VBMain = 0
 
    ForceCScriptExecution()
 
    WSH.Echo "Easy Font Installer 1.0" vbCrLf _
              "Written By WangYe " vbCrLf vbCrLf
    Dim objInstaller, objFso, objDictFontFiles
    Set objInstaller = New FontInstaller
        objInstaller.CallBack = "DisplayMessage"
        If colArguments.Count > 0 Then
            objInstaller.setDragDrop colArguments
        Else
            Set objFso = objInstaller.FileSystemObject
            Set objDictFontFiles = CreateObject("Scripting.Dictionary")
            Dim objFolder, colFiles, objFile, strDirName, strExtension
            strDirName = objFso.GetParentFolderName(WScript.ScriptFullName)
            Set objFolder = objFso.GetFolder(strDirName)
            Set colFiles = objFolder.Files
            For Each objFile in colFiles
                If objFile.Size > 0 Then
                    strExtension = UCase(objFso.GetExtensionName(objFile.Name))
                    If strExtension = "TTF" Or strExtension = "TTC" Or strExtension = "OTF" Then
                        objDictFontFiles.Add objFile.Name, objInstaller.PathAddBackslash(strDirName) objFile.Name
                    End If
                End If
            Next
 
            Set colFiles = Nothing
            Set objFolder = Nothing
            Set objFso = Nothing
 
            If objDictFontFiles.Count > 0 Then
                If MsgBox("Current Directory has " objDictFontFiles.Count " Font Files." vbCrLf _
                        vbCrLf "Click OK to continue install or Cancel to Select Directory", 1) = 1 Then
                      Dim i, objItems
                      For i = 0 To  objDictFontFiles.Count-1
                        objItems = objDictFontFiles.Items
                        objInstaller.installFromFile objItems(i)
                      Next
                Else
                    strDirName = GetOpenDirectory("Select Fonts Directory:")
                    If strDirName>"" Then
                        objInstaller.installFromDirectory strDirName
                    Else
                        WScript.Echo "----- Drag Font File To This Script -----"
                    End If
                End If
            End If
                objDictFontFiles.RemoveAll
            Set objDictFontFiles = Nothing
        End If
    Set objInstaller = Nothing
 
    Pause vbCrLf vbCrLf "Press Enter to continue"
End Function
 
WScript.Quit(VBMain(WScript.Arguments))

這個腳本的使用方法很簡單,將上述代碼保存為VBS文件,然后將要安裝的字體或者包含字體的文件夾拖放到這個腳本文件即可,還有個方法就是直接雙擊腳本,然后按照提示會自動安裝與腳本同路徑的字體文件或者提示選擇字體所在路徑以便于安裝。

還有一處值得注意的是:我對已經(jīng)安裝的字體是采取建立字體列表,然后判斷當(dāng)前安裝的字體是否存在于字體列表,字體列表的來源是已經(jīng)安裝的字體在系統(tǒng)的注冊名(存在于注冊表中)和已經(jīng)安裝的字體文件名。唯一遺憾的是我是通過比判斷安裝字體的文件名是否在字體列表中來判斷字體是否安裝,這里的問題主要是待安裝的字體文件名不一定與字體真實的名字一致,字體真實的名字是需要讀取二進(jìn)制字體文件從中來獲取的,這樣腳本又復(fù)雜了,所以放棄了這種方式。

您可能感興趣的文章:
  • 可以將Bat轉(zhuǎn)換位VBS文件的VBS腳本
  • 用VBS來代替BAT或CMD文件進(jìn)行命令
  • vbs后臺運行bat刪除自身的代碼
  • 進(jìn)程監(jiān)控實現(xiàn)代碼[vbs+bat]
  • vbs 批量修改文件,bat 批處理文件調(diào)用執(zhí)行vbs,并在cmd窗口打印返回值(vbs運行結(jié)果)
  • VBS腳本和BAT批處理刪除自身的方法
  • EXE2BAT(EXE轉(zhuǎn)BAT)的vbs腳本
  • VBS和bat批處理逐行讀取文件實例
  • vbs與bat混編修改虛擬盤符的卷標(biāo)

標(biāo)簽:銅川 四平 文山 湖州 西安 邢臺 鶴壁

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《BAT批處理、VBScript批量安裝字體腳本分享》,本文關(guān)鍵詞  BAT,批處理,VBScript,批量,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《BAT批處理、VBScript批量安裝字體腳本分享》相關(guān)的同類信息!
  • 本頁收集關(guān)于BAT批處理、VBScript批量安裝字體腳本分享的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    av网站免费观看| 在线一区电影| av毛片在线免费看| 国产欧美综合视频| 乳奴隷乳フ辱julia在线观看| 久久午夜羞羞影院免费观看| 亚洲色图综合| 日本一卡二卡在线| 国产又粗又爽| segui88久久综合| 日韩一级淫片| 四虎国产成人永久精品免费| 羞羞视频在线观看欧美| 三级外国片在线观看视频| mm131丰满少妇人体欣赏图| 欧美日本精品一区二区三区| 91午夜交换视频| 超碰色偷偷男人的天堂| 在线精品视频一区二区三四| 污污美女网站| 亚洲欧美韩国综合色| 亚洲国产精品一区制服丝袜| 国产精品免费精品自在线观看| 美女黄页在线观看| 精品一区久久久久久| 国产精品一区二区三区免费视频| 日韩的一区二区| 2020最新国产精品| 国产精品亚洲一区二区三区妖精| 奇门遁甲1982国语版免费观看高清| 国产网红在线观看| 久久草在线视频| aa片在线观看视频在线播放| 亚洲欧美在线成人| 久久夜色精品国产噜噜亚洲av| 国产激情无码一区二区三区| av在线之家电影网站| av在线免费观看国产| 国产精品老女人精品视频| 亚洲综合极品香蕉久久网| 久久综合久色欧美综合狠狠| 欧美日韩不卡在线视频| 国语对白做受69按摩| 亚洲欧美一二三| 尤物视频一区二区| 二区三区在线| 少妇极品熟妇人妻无码| 亚洲成人av中文字幕| 精品亚洲一区二区三区| 欧美人狂配大交3d怪物一区| 香蕉青柠影院| 亚洲av人人澡人人爽人人夜夜| 欧美日韩在线影院| 中国一级片在线观看| 四虎1515hh.com| 亚洲天堂中文字幕在线观看| 国产91精品入| 欧美精品videosex性欧美| 亚洲福利合集| 蜜臀国产一区二区三区在线播放| 五月婷婷色综合| 成人羞羞网站入口| 国产精品一区二区av交换| 欧美不卡视频在线观看| 亚洲高清一二三区| www.欧美视频| 蜜乳av中文字幕| 亚洲美女一区二区三区| 国产精品网站视频| 黄色成人在线免费| 初高中福利视频网站| 麻豆视频久久| 国产精品国产亚洲精品看不卡15| 国产69久久精品成人看| 中文字幕在线精品| 91精品国产777在线观看| 9.1国产丝袜在线观看| 免费一级特黄毛片| 美女精品视频在线| 亚洲一区二区三区日本久久九| 136福利视频导航| 性感美女极品91精品| 精品精品国产高清一毛片一天堂| 国产亚洲精品久久久久久移动网络| 一级特黄特色的免费大片| 日韩av密桃| 欧美日韩国产丝袜美女| 亚洲一区二区三区四区五区xx| 91精品在线免费观看| 日韩一区二区在线播放| 最新日韩av在线| 欧美午夜精品一区二区三区| 中文字幕精品久久久久| 男人的天堂va| 中文字幕超碰在线| 二区三区在线视频| 日日摸天天添天天添破| 亚洲资源视频| 精品成人一区| 国产欧美中文在线| 天堂资源在线播放| 色婷婷一区二区三区| 天堂在线一区二区三区| 成年人观看网站| 99成人在线视频| 亚洲精品国产精品国| 欧美日韩五码| 国产精品pans私拍| 国产午夜精品视频免费不卡69堂| 激情视频综合网| 三级网站免费看| 亚洲精品中文字| 国产精品视频h| 大乳在线免费观看| 狠狠做深爱婷婷久久综合一区| 国产午夜精品视频免费不卡69堂| 欧美最猛黑人xxxx黑人猛交3p| 夜夜摸夜夜操| 曰本人一级毛片免费完整视频| 国产美女网站在线观看| 久久久免费高清视频| 国产成人8x视频一区二区| 99视频入口| 日日摸日日碰夜夜爽av| 成人免费网站在线观看| 欧美色图亚洲视频| 奇米精品一区二区三区在线观看| 超级污的网站| 日韩欧美国产另类| 日韩精品有码在线观看| 欧美日韩小视频| 亚洲精品第一| 最近免费中文字幕mv视频| 亚洲福中文字幕伊人影院| 人人在线视频| 天堂中文在线免费观看| 欧美色视频在线| 免费黄网大全| 国产精品日日夜夜| 日韩激情毛片| 人妻少妇精品久久| 精品一区二区精品| 伊人成综合网站| 丰满人妻一区二区三区53号| 国产伦精品一区二区三区免费视频| 日韩理论片在线观看| 女人体1963| 亚洲欧美日本国产有色| 黄色精品视频网站| 亚洲免费在线播放| 国产中文字幕在线| 欧美日韩国产高清一区| 久久久久久久久久久久久久久久av| 日本一区视频在线观看免费| 欧美日韩国产在线观看网站| 6080日韩午夜伦伦午夜伦| 国产性生活视频| 91精品国产自产91精品| 天堂在线视频免费观看| 欧美男男gaygay1069| 久久欧美在线电影| 国模私拍一区二区国模曼安| 亚洲欧美变态国产另类| 亚洲一区999| 国产精品v日韩精品v在线观看| 美女av一区二区三区| 成人午夜激情在线| 国产日产亚洲精品系列| 日韩av免费一区| 蜜臀a∨国产成人精品| 久草视频在线免费看| 黄色国产网站在线观看| 肉丝袜脚交视频一区二区| 欧美精品999| 久久久一区二区三区四区| 国产精品一二区| 日韩电影网站| 欧美在线不卡区| 91麻豆精品激情在线观看最新| 外国一级黄色片| 不卡视频观看| 精品日产一区2区三区黄免费| 欧美一进一出视频| 最近中文字幕免费在线观看| 亚洲综合网在线观看| 亚洲精品国产品国语在线app| 欧美国产在线一区| 国产乱码午夜在线视频| 国产不卡免费视频| 中文字幕人成一区| 一本一道波多野毛片中文在线| 久热精品视频在线| 波多野结衣激情视频| 久久国产精品-国产精品| 久久一区二区三区四区| 91丨九色丨海角社区| 成人一区二区三| 国产欧美午夜| 在线观看免费国产视频| 少妇性色午夜淫片aaa播放| 你懂的视频网| 日韩欧美精品一区二区三区经典| 亚洲精品视频啊美女在线直播| 国产精品久久久久久久久男| 在线免费黄色小视频| 精品一成人岛国片在线观看| 国产99久久久精品| 亚洲2区在线| 欧美疯狂做受xxxx富婆| 一本二本三本亚洲码| 阿v视频在线观看| 51午夜精品国产| 午夜性色一区二区三区免费视频| 日韩乱码人妻无码中文字幕久久| 成人影院www在线观看| 日本免费黄视频| 成人xxxxx| 色呦呦在线看| 日韩中文字幕高清在线观看| 精品视频在线免费观看| 国产日韩三级| 亚洲精品人成| 国产在线一区二区综合免费视频| 亚洲国产精品第一区二区三区| 欧美三级 欧美一级| 欧美综合色免费| 亚洲成人免费电影| 国产高潮又爽又无遮挡又免费| 精品综合久久88少妇激情| 亚洲一区二区久久久| 污视频网站在线免费| 成人黄色777网| 2019中文字幕在线免费观看| 国产一区二区三区丝袜| 精品国产伦一区二区三区| 国产精品久久久久久久久久ktv| 国产精品久久久久久久久久久久| 国产精品理伦片| www.亚洲资源| 精品视频999| 一出一进一爽一粗一大视频| 人妻激情另类乱人伦人妻| 91av在线影院| 日韩一区二区欧美| 欧美另类videosbestsex日本| 国产亚洲小视频| 欧美在线视频一区二区| 国产96在线 | 亚洲| 国产精品色一区二区三区| www.日本久久久久com.| 一区二区精品| 国产成人夜色高潮福利影视| 国产理论片免费观看| 国产在线观看免费| 天天躁日日躁狠狠躁超碰2020| 91老师片黄在线观看| 色播色播色播色播色播在线| 国产精品久久亚洲不卡| 国产日韩欧美中文| 精品国产精品国产偷麻豆| 视频一区视频二区视频三区视频四区国产| 色综合色综合网色综合| 麻豆国产欧美一区二区三区| 亚洲精品av在线播放| 88久久精品无码一区二区毛片| 9999精品免费视频| 草久视频在线观看| 欧美风情在线观看| 免费av不卡在线观看| 久久精品一区中文字幕| 国产精品精品久久久久久| 欧美xxx视频| 洋洋av久久久久久久一区| 久久av.com| 超碰在线最新| 久久综合久久美利坚合众国| 牛夜精品久久久久久久99黑人| 国产色在线 com| eeuss影院www在线播放| 亚洲欧美国产77777| 菠萝菠萝蜜在线视频免费观看| av免费在线不卡| 在线观看成人av电影| 亚洲欧美日韩精品久久亚洲区| 婷婷六月综合| 中文字幕欧美日本乱码一线二线| 国产精品理论片在线观看| 跑男十一季在线观看免费| 日韩久久免费电影| 国产美女高潮在线观看| 欧美性猛交xxxx乱大交退制版| 成人影音在线| 9.1片黄在线观看| 久久av国产紧身裤| 欧美网站大全在线观看| 欧美一卡2卡3卡4卡无卡免费观看水多多| 日韩在线一级片| 国产玉足脚交久久欧美| 丁香激情综合国产| 国产一区二区三区高清视频| 日韩一区二区久久| 久久久久久久久一区| 日本新janpanese乱熟| 蜜桃传媒一区二区亚洲| 久草资源在线视频| 综合激情久久| 久久波多野结衣| 天天影视综合色| 日韩欧美激情一区二区| 97一区二区国产好的精华液| 中文字幕日韩综合av| 99久久久无码国产精品性色戒| 18禁裸乳无遮挡啪啪无码免费| 不卡中文字幕| 国产黄色免费看| 精品国产91洋老外米糕| 成人性色生活片| 中文字幕精品—区二区日日骚| 日本中文字幕二区| 成人深夜福利| 800av免费在线观看| 国语自产在线不卡| 777色狠狠一区二区三区| 精一区二区三区| 97精品视频在线| 91黄色激情网站| 亚洲丝袜啪啪| 日韩av中文字幕一区二区三区|