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

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

?? shutdown.cpp

?? 定時關閉系統.For window 98, window 2000, window xp.
?? CPP
字號:
//寶石軟體 自動關機服務程序 Bosssoft Automatic Shutdown Ver 1.0
//Designed for 9zi.com Server
//參考代碼 codeguru Anish C.V.
//shutdown.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#include "Windows.h"
#include "Winsvc.h"
#include "time.h"

#define  defSERVICENAME			"Bosssoft Automatic Shutdown"
#define  defVER					"1.0.0727"
#define  defSERVICEDISPLAYNAME	"Automatic Shutdown"
#define  defCOMMANDHELP			"\nshutdown [-i | -u]\n\n   -i    Install Service\n   -u    Uninstall Service\n   -s    Power Off\n   -r    Reboot\n   -l    Log Off\n   -a    Abort Shutdown"
#define  defDEFAULTDELAY        10

typedef enum {
	eSHUTDOWN = 0,	//關機
	eREBOOT,		//重起
	eLOGOFF,		//注銷
	eMORE
}ESHUTDOWN_PARAMETER;

SERVICE_STATUS g_ServiceStatus;
SERVICE_STATUS_HANDLE g_ServiceStatusHandle;
BOOL g_bRunning=true;
char g_strINIDir[MAX_PATH] = {0};

void WINAPI ServiceMain(DWORD argc, LPTSTR *argv);
void WINAPI ServiceCtrlHandler(DWORD Opcode);
BOOL InstallService();
BOOL DeleteService();
BOOL Shutdown(ESHUTDOWN_PARAMETER eParam);
BOOL AbordShutdown();
int IsTimeNow();//時間到了返回1,沒到返回0,用戶沒有設置,就返回-1指示程序退出
BOOL setPathToReg(LPSTR lpPath);

void test();
int main(int argc, char* argv[])
{
	printf("\n%s [Ver: %s]\n", defSERVICENAME, defVER);
	if(argc>1)
	{
		if(strcmp(argv[1],"-I")==0 || strcmp(argv[1], "-i")==0)
		{
			if(InstallService())
				printf("\nService Installed Successfully!");
			else
				printf("\nError Installing Service!");
		}
		else if(strcmp(argv[1],"-U")==0 || strcmp(argv[1], "-u")==0)
		{
			if(DeleteService())
				printf("\nService UnInstalled Sucessfully!");
			else
				printf("\nError UnInstalling Service!");
		}
		else if(strcmp(argv[1],"-S")==0 || strcmp(argv[1], "-s")==0)
		{
			Shutdown(eSHUTDOWN);
		}
		else if(strcmp(argv[1],"-R")==0 || strcmp(argv[1], "-r")==0)
		{
			Shutdown(eREBOOT);
		}
		else if(strcmp(argv[1],"-L")==0 || strcmp(argv[1], "-l")==0)
		{
			Shutdown(eLOGOFF);
		}
		else if(strcmp(argv[1],"-A")==0 || strcmp(argv[1], "-a")==0)
		{
			AbordShutdown();
		}
		else
		{
			printf("\nUnknown Switch Usage\n%s", defCOMMANDHELP);
		}
	}
	else
	{
		printf("%s", defCOMMANDHELP);
		SERVICE_TABLE_ENTRY DispatchTable[]={{defSERVICENAME,ServiceMain},{NULL,NULL}};  
		StartServiceCtrlDispatcher(DispatchTable); 
	}
	printf("\n");
	return 0;
}

void WINAPI ServiceMain(DWORD argc, LPTSTR *argv)
{
//	DWORD status; 
//	DWORD specificError; 
	g_ServiceStatus.dwServiceType        = SERVICE_WIN32; 
	g_ServiceStatus.dwCurrentState       = SERVICE_START_PENDING; 
	g_ServiceStatus.dwControlsAccepted   = SERVICE_ACCEPT_STOP; 
	g_ServiceStatus.dwWin32ExitCode      = 0; 
	g_ServiceStatus.dwServiceSpecificExitCode = 0; 
	g_ServiceStatus.dwCheckPoint         = 0; 
	g_ServiceStatus.dwWaitHint           = 0; 

	g_ServiceStatusHandle = RegisterServiceCtrlHandler(defSERVICENAME,ServiceCtrlHandler);  
	if (g_ServiceStatusHandle == (SERVICE_STATUS_HANDLE)0) 
	{ 
		return; 
	}

	g_ServiceStatus.dwCurrentState       = SERVICE_RUNNING; 
	g_ServiceStatus.dwCheckPoint         = 0; 
	g_ServiceStatus.dwWaitHint           = 0;  
	if (!SetServiceStatus (g_ServiceStatusHandle, &g_ServiceStatus)) 
	{ //失敗

	} 
	g_bRunning=true;
	while(g_bRunning)
	{
		int nRe = IsTimeNow();
		if(nRe == -1)//錯誤設置時間,退出
			break;
		if(nRe == 1)
			Shutdown(eSHUTDOWN);
		Sleep(950);//小于1秒鐘timer一次
	}
	return; 
}

void WINAPI ServiceCtrlHandler(DWORD Opcode)
{
	switch(Opcode) 
	{ 
	case SERVICE_CONTROL_PAUSE: 
		g_ServiceStatus.dwCurrentState = SERVICE_PAUSED; 
		break; 

	case SERVICE_CONTROL_CONTINUE: 
		g_ServiceStatus.dwCurrentState = SERVICE_RUNNING; 
		break; 

	case SERVICE_CONTROL_STOP: 
		g_ServiceStatus.dwWin32ExitCode = 0; 
		g_ServiceStatus.dwCurrentState  = SERVICE_STOPPED; 
		g_ServiceStatus.dwCheckPoint    = 0; 
		g_ServiceStatus.dwWaitHint      = 0; 

		SetServiceStatus (g_ServiceStatusHandle,&g_ServiceStatus);
		g_bRunning=false;
		break;

	case SERVICE_CONTROL_INTERROGATE: 
		break; 
	}      
	return; 
}

BOOL InstallService()
{

	char strDir[MAX_PATH];
	SC_HANDLE schSCManager,schService;
	
	GetCurrentDirectory(sizeof(strDir),strDir);

	if(!setPathToReg(strDir))//安裝到注冊表中
		return FALSE;


	strcat(strDir,"\\shutdown.exe"); 

	schSCManager = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS); 

	if (schSCManager == NULL) 
		return false;

	LPCTSTR lpszBinaryPathName=strDir;

	schService = CreateService(schSCManager,defSERVICENAME, defSERVICEDISPLAYNAME,// service name to display 
		SERVICE_ALL_ACCESS,        // desired access 
		SERVICE_WIN32_OWN_PROCESS, // service type 
		SERVICE_AUTO_START,      // start type 自動執行
		SERVICE_ERROR_NORMAL,      // error control type 
		lpszBinaryPathName,        // service's binary 
		NULL,                      // no load ordering group 
		NULL,                      // no tag identifier 
		NULL,                      // no dependencies 
		NULL,                      // LocalSystem account 
		NULL);                     // no password 

	if (schService == NULL) 
		return false;  

	StartService(schService, 0, NULL);//自動開始

	CloseServiceHandle(schService); 
	return true;
}

BOOL DeleteService()
{
	SC_HANDLE schSCManager;
	SC_HANDLE hService;

	schSCManager = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);

	if (schSCManager == NULL) 
		return false;	

	hService=OpenService(schSCManager,defSERVICENAME,SERVICE_ALL_ACCESS);

	if (hService == NULL) 
		return false;

	if(DeleteService(hService)==0)
		return false;

	if(CloseServiceHandle(hService)==0)
		return false;
	else
		return true;
}

void ErrorHandler(LPSTR pszMsg)
{
	printf(pszMsg);
}

#define BUFSIZE 80

BOOL setPathToReg(LPSTR lpPath)
{
	HKEY hKey;
	LONG lRet;

	lRet = RegCreateKey( HKEY_LOCAL_MACHINE,
		"SOFTWARE\\Bosssoft\\BossShutdown",&hKey );
	if( lRet != ERROR_SUCCESS )
		return FALSE;

	lRet = RegSetValueEx( hKey, "Path", NULL, REG_SZ,
		(LPBYTE) lpPath, lstrlen(lpPath));
	if( (lRet != ERROR_SUCCESS))
		return FALSE;
	return TRUE;
}

char *getIniFileName()//得到INI文件地址,如果第一次生成,則自動得到當前文件名
{
	if(g_strINIDir[0] == 0)
	{
		HKEY hKey;
		char  szPath[BUFSIZE];
		DWORD dwBufLen=BUFSIZE;
		LONG lRet;

		lRet = RegOpenKey(HKEY_LOCAL_MACHINE,
			"SOFTWARE\\Bosssoft\\BossShutdown",
			&hKey );
		if( lRet != ERROR_SUCCESS )
			return NULL;

		lRet = RegQueryValueEx( hKey, "Path", NULL, NULL,
			(LPBYTE) szPath, &dwBufLen);
		if( (lRet != ERROR_SUCCESS) || (dwBufLen > BUFSIZE) )
			return NULL;
		strcpy(g_strINIDir, szPath);
		strcat(g_strINIDir, "\\shutdown.ini");
	}
	return g_strINIDir;
}


BOOL Shutdown(ESHUTDOWN_PARAMETER eParam)
{
	if(eParam == eSHUTDOWN || eParam == eREBOOT)//需要延遲計數的
	{
		UINT nDelay = ::GetPrivateProfileInt(_T("Config"), _T("AlertDelay"), defDEFAULTDELAY, getIniFileName());//取延長時間
		//從注冊表中讀取延遲時間
		::WritePrivateProfileString(_T("Config"), _T("AbortFlag"), "FALSE", getIniFileName());
		//初始化,強行設置終止標志為FALSE;
		while(nDelay>0)
		{
			nDelay --;

			if(nDelay > 0)
				Beep(1000, 100); //每次1秒鐘
			else
				Beep(2000, 200);
			Sleep(900);

			char buf[_MAX_PATH] = {0};
			::GetPrivateProfileString(_T("Config"), _T("AbortFlag"), "FALSE" , buf, sizeof(buf), getIniFileName());
			if(strcmp(buf, "TRUE") == 0)//用戶終止設置
				return FALSE;
		}
	}

	HANDLE hToken; 
	TOKEN_PRIVILEGES tkp; 
	// Get a token for this process. 
	if (!OpenProcessToken(GetCurrentProcess(), 
		TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) 
		return( FALSE ); 
	// Get the LUID for the shutdown privilege. 
	LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, 
		&tkp.Privileges[0].Luid); 

	tkp.PrivilegeCount = 1;  // one privilege to set    
	tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 

	// Get the shutdown privilege for this process. 

	AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, 
		(PTOKEN_PRIVILEGES)NULL, 0); 

	if (GetLastError() != ERROR_SUCCESS) 
		return FALSE; 

	// Shut down the system and force all applications to close. 

	UINT nShutdownCode = EWX_SHUTDOWN;
	switch(eParam) {
	case eSHUTDOWN:
		//nShutdownCode = EWX_SHUTDOWN;
		break;
	case eREBOOT:
		nShutdownCode = EWX_REBOOT;
		break;
	case eLOGOFF:
		nShutdownCode = EWX_LOGOFF;
		break;
	default:
		break;
	}
	if (!ExitWindowsEx(nShutdownCode | EWX_FORCE, 0)) 
		return FALSE; 

	return TRUE;
}

BOOL Shutdown2(ESHUTDOWN_PARAMETER eParam)
{
	HANDLE hToken; // handle to process token 
	TOKEN_PRIVILEGES tkp; // pointer to token structure 
	BOOL fResult; // system shutdown flag 

	// Get the current process token handle so we can get shutdown 
	// privilege. 
	if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
	{
		ErrorHandler("OpenProcessToken failed."); 
		return FALSE;
	}

	// Get the LUID for shutdown privilege. 
	LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);

	tkp.PrivilegeCount = 1; // one privilege to set 
	tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
	// Get shutdown privilege for this process. 

	AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES) NULL, 0); 
	// Cannot test the return value of AdjustTokenPrivileges. 

	if (GetLastError() != ERROR_SUCCESS)
	{
		ErrorHandler("AdjustTokenPrivileges enable failed."); 
		return FALSE;
	}

	// Display the shutdown dialog box and start the time-out countdown. 
	fResult = InitiateSystemShutdown( NULL, // shut down local computer 
		"寶石軟體自動關機\n正在準備自動關機\n請輸入shutdown -a終止關機", // message to user 
		40, // time-out period 
		FALSE, // ask user to close apps 
		TRUE); // reboot after shutdown 

	if (!fResult) 
	{
		ErrorHandler("InitiateSystemShutdown failed."); 
		return FALSE;
	} 
	// Disable shutdown privilege. 
	tkp.Privileges[0].Attributes = 0; 
	AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES) NULL, 0); 
	if (GetLastError() != ERROR_SUCCESS) 
	{
		ErrorHandler("AdjustTokenPrivileges disable failed."); 
		return FALSE;
	} 
	return TRUE;
}


BOOL AbordShutdown()
{
	::WritePrivateProfileString(_T("Config"), _T("AbortFlag"), "TRUE", getIniFileName());//設置終止標志
	return TRUE;
}
BOOL AbordShutdown2()
{
	HANDLE hToken; // handle to process token 
	TOKEN_PRIVILEGES tkp; // pointer to token structure 
	BOOL fResult; // system shutdown flag 

	// Get the current process token handle so we can get shutdown 
	// privilege. 
	if (!OpenProcessToken(GetCurrentProcess(), 	TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) 
	{
		ErrorHandler("OpenProcessToken failed.");
		return FALSE;
	}
	// Get the LUID for shutdown privilege. 
	LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); 
	tkp.PrivilegeCount = 1; // one privilege to set 
	tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
	// Get shutdown privilege for this process. 
	AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0); 
	// Cannot test the return value of AdjustTokenPrivileges. 
	if (GetLastError() != ERROR_SUCCESS) 
	{
		ErrorHandler("AdjustTokenPrivileges enable failed.");
		return FALSE;
	}
	// Prevent the system from shutting down. 
	fResult = AbortSystemShutdown(NULL); 
	if (!fResult) 
	{ 
		ErrorHandler("AbortSystemShutdown failed.");
		return FALSE;
	} 
	// Disable shutdown privilege. 
	tkp.Privileges[0].Attributes = 0; 
	AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES) NULL, 0); 
	if (GetLastError() != ERROR_SUCCESS) 
	{
		ErrorHandler("AdjustTokenPrivileges disable failed.");
		return FALSE;
	}
	return TRUE;
}



BOOL g_bInited = FALSE;
int  g_nHour = 0;
int  g_nMin  = 0;
int  g_nSec  = 0;

BOOL getUserTime()//得到用戶輸入的關機時間
{
	char buf[_MAX_PATH] = {0};
	DWORD dwSize= ::GetPrivateProfileString(_T("Config"), _T("ShutdownTime"), "" , buf, sizeof(buf), getIniFileName());
	if(dwSize == 0)//用戶沒設置
		return FALSE;
	char szHour[100] = {0};
	char szMin[100]  = {0};
	char szSec[100]  = {0};

	int nCount = 0;
	int nTokey = 0;//0->hour, 1->min, 2->Sec
	for(DWORD i=0; i<dwSize; i++)
	{
		if(nCount >= 100)//誰那么無聊啊,輸那么長
		{
			g_bInited = FALSE;		
			return FALSE;
		}
		if(buf[i] == ':')
		{
			nCount = 0;		
			nTokey ++;
			if(nTokey>2)
				break;
		}
		else if(buf[i] >= '0' && buf[i] <= '9')
		{
			switch(nTokey) {
			case 0:
				szHour[nCount] = buf[i];
				break;
			case 1:
				szMin[nCount] = buf[i];
				break;
			case 2:
				szSec[nCount] = buf[i];
				break;
			default:
				break;
			}
			nCount ++;
		}
		else if(buf[i] == ' ')//跳過空格
			nCount ++;
		else//非需要的數字
		{
			g_bInited = FALSE;
			return FALSE;
		}
	}
	g_nHour = atoi(szHour);
	g_nMin  = atoi(szMin);
	g_nSec  = atoi(szSec);
	g_bInited = TRUE;
	return TRUE;
}


int IsTimeNow()//時間到了返回1,沒到返回0,用戶沒有設置,就返回-1指示程序退出
{
	if(!g_bInited)
	{
		if(!getUserTime())//沒取出來失敗
			return -1;
	}

	__time64_t long_time_now;
	_time64( &long_time_now );                /* Get time as long integer. */
	struct tm *pnow = _localtime64( &long_time_now ); /* Convert to local time. */
	if(pnow->tm_hour == g_nHour && pnow->tm_min == g_nMin && pnow->tm_sec == g_nSec)
		return 1;//時間正確,關機

    return 0;
}

void test()
{
	while(g_bRunning)
	{
		//循環邏輯,判斷時間是否正確
		int nRe = IsTimeNow();
		if(nRe == -1)//錯誤設置時間,退出
			return;
		if(nRe == 1)
			Shutdown(eSHUTDOWN);
		Sleep(950);//小于1秒鐘timer一次
		//if(is time now)
		//shutdown delay waiting for user stop.
		//
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩激情一区| 国产精品嫩草影院com| 欧美激情一二三区| 日本麻豆一区二区三区视频| 99精品一区二区三区| 日韩三级伦理片妻子的秘密按摩| 国产精品二三区| 国内精品免费**视频| 欧美久久久久久久久| 亚洲品质自拍视频网站| 国产精品99久久久久久久vr| 欧美日本精品一区二区三区| 国产精品高清亚洲| 精品一区二区在线免费观看| 欧美日韩一区二区三区在线看| 国产精品五月天| 精品无人码麻豆乱码1区2区 | 国产福利一区在线观看| 欧美精品视频www在线观看| 亚洲欧美另类小说| av电影一区二区| 26uuu另类欧美亚洲曰本| 日本不卡的三区四区五区| 欧美日韩国产天堂| 亚洲大尺度视频在线观看| 色综合久久66| 中文字幕一区二区不卡| 国产mv日韩mv欧美| 欧美极品aⅴ影院| 丁香六月综合激情| 中文字幕+乱码+中文字幕一区| 久久99久久久久久久久久久| 欧美大白屁股肥臀xxxxxx| 日本成人中文字幕在线视频| 欧美日韩一级视频| 午夜不卡在线视频| 欧美精品在线观看播放| 日本一区中文字幕| 日韩色视频在线观看| 久久精品国产亚洲高清剧情介绍| 日韩一区二区免费在线观看| 久久精品国产免费看久久精品| 欧美一卡二卡在线观看| 免费精品99久久国产综合精品| 欧美日本在线看| 另类综合日韩欧美亚洲| 日韩一区二区电影| 国产成人综合在线| 亚洲男人的天堂在线aⅴ视频| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲黄色免费电影| 51久久夜色精品国产麻豆| 热久久久久久久| 久久亚洲综合色| av高清不卡在线| 亚洲成人精品一区| 欧美成人官网二区| 成人动漫在线一区| 亚洲444eee在线观看| 久久久三级国产网站| 99精品黄色片免费大全| 五月婷婷激情综合| xf在线a精品一区二区视频网站| 97精品超碰一区二区三区| 亚洲福利视频一区二区| 久久久久国产精品麻豆| 91在线播放网址| 美日韩黄色大片| 国产精品毛片高清在线完整版| 欧美日韩一区二区在线观看| 国产99久久精品| 天天综合天天做天天综合| 国产日韩精品一区二区三区在线| 欧美日韩在线直播| 国产不卡免费视频| 图片区小说区国产精品视频| 国产欧美日韩精品a在线观看| 欧美羞羞免费网站| 国产精品伊人色| 午夜精品久久久久久久| 国产精品国产三级国产aⅴ原创| 91.xcao| 成人高清视频在线观看| 日日夜夜精品免费视频| 国产精品视频一二三区| 日韩精品一区二区三区老鸭窝| 97久久精品人人做人人爽| 麻豆久久久久久| 一区二区三区中文字幕| 国产欧美精品一区aⅴ影院| 4438x亚洲最大成人网| 色狠狠色狠狠综合| 成人爽a毛片一区二区免费| 麻豆精品视频在线观看视频| 亚洲一区二区三区国产| 国产精品视频在线看| 久久久噜噜噜久久人人看| 91精品国模一区二区三区| 在线亚洲人成电影网站色www| 国产剧情av麻豆香蕉精品| 日本欧美在线观看| 污片在线观看一区二区| 亚洲一二三区视频在线观看| 最新成人av在线| 国产精品久久久久久户外露出 | 成人av在线观| 国产乱码精品一区二区三区五月婷 | 国产精品一区二区三区网站| 日本不卡视频在线| 丝袜诱惑亚洲看片| 午夜视频在线观看一区二区| 亚洲自拍偷拍综合| 亚洲女厕所小便bbb| 一区二区视频在线| 1000部国产精品成人观看| 欧美激情综合五月色丁香小说| 久久久午夜精品| 国产欧美一区在线| 国产精品欧美久久久久无广告| 久久久久国产一区二区三区四区 | 欧美国产精品一区二区| 久久久久高清精品| 国产日韩精品视频一区| 国产精品对白交换视频| 中文字幕视频一区| 亚洲精品你懂的| 亚洲国产一区视频| 日韩av一二三| 国产曰批免费观看久久久| 国产一区久久久| 国产精品白丝jk白祙喷水网站| 成人福利视频在线看| 91国产免费看| 91麻豆精品国产91久久久久| 欧美一区二区视频网站| 亚洲精品一区二区三区香蕉| 国产人成亚洲第一网站在线播放| 国产精品美女久久久久aⅴ| 一区二区成人在线| 奇米影视在线99精品| 国产成+人+日韩+欧美+亚洲| 99久久免费精品| 91精品国产综合久久久久久漫画| 日韩你懂的电影在线观看| 日本一区二区视频在线| 亚洲一二三四区不卡| 精品一区二区三区久久| jlzzjlzz亚洲女人18| 欧美伦理电影网| 国产亚洲自拍一区| 亚洲高清一区二区三区| 精品一区二区三区不卡 | 奇米四色…亚洲| 粉嫩在线一区二区三区视频| 在线精品视频一区二区三四| 日韩欧美一级精品久久| 国产精品久久久久久久浪潮网站| 香蕉影视欧美成人| 成人久久久精品乱码一区二区三区| 欧美日韩一区高清| 国产欧美一区二区在线| 无吗不卡中文字幕| 处破女av一区二区| 欧美一区二区三区成人| 中文字幕亚洲综合久久菠萝蜜| 亚洲午夜私人影院| 成人免费黄色大片| 欧美一区二区三区色| **欧美大码日韩| 国产精一品亚洲二区在线视频| 欧美在线观看视频一区二区三区 | 日本一区二区动态图| 性做久久久久久免费观看 | 国产精品久久久久7777按摩| 日本视频一区二区| 日本精品视频一区二区| 久久这里都是精品| 日本免费新一区视频| 色婷婷综合久久久中文一区二区 | 欧美国产精品久久| 精品亚洲免费视频| 欧美精品亚洲二区| 亚洲一区欧美一区| av中文字幕不卡| 国产丝袜在线精品| 国产精品综合在线视频| 日韩欧美激情四射| 奇米影视一区二区三区小说| 精品视频免费在线| 一个色综合网站| 97超碰欧美中文字幕| 中文字幕一区不卡| 97精品国产露脸对白| 综合亚洲深深色噜噜狠狠网站| 成人精品国产一区二区4080| 久久精品欧美日韩精品 | 91色在线porny| 国产精品电影一区二区三区| 成人动漫一区二区在线| 国产精品三级电影|