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

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

?? kbdptr.c

?? 遠程桌面連接工具
?? C
?? 第 1 頁 / 共 2 頁
字號:
    for (i = 0; i < N_PREDEFINED_KEYS * GLYPHS_PER_KEY; i++) {	if (keySym == kbdMap[i]) {	    keyCode = MIN_KEY_CODE + i / GLYPHS_PER_KEY;	    if (kbdMap[(i/GLYPHS_PER_KEY) * GLYPHS_PER_KEY + 1] != NoSymbol) {		/* this keycode has more than one symbol associated with it,		   so shift state is important */		if ((i % GLYPHS_PER_KEY) == 0)		    shiftMustBeReleased = TRUE;		else		    shiftMustBePressed = TRUE;	    }	    break;	}    }    if (!keyCode) {	/* not one of our predefined keys - see if it's in the current keyboard           mapping (i.e. we've already allocated an extra keycode for it) */	if (keySyms->mapWidth < 2) {	    rfbLog("KbdAddEvent: Sanity check failed - Keyboard mapping has "		   "less than 2 keysyms per keycode (KeySym 0x%x)\n", keySym);	    return;	}	for (i = 0; i < NO_OF_KEYS * keySyms->mapWidth; i++) {	    if (keySym == keySyms->map[i]) {		keyCode = MIN_KEY_CODE + i / keySyms->mapWidth;		if (keySyms->map[(i / keySyms->mapWidth)					* keySyms->mapWidth + 1] != NoSymbol) {		    /* this keycode has more than one symbol associated with		       it, so shift state is important */		    if ((i % keySyms->mapWidth) == 0)			shiftMustBeReleased = TRUE;		    else			shiftMustBePressed = TRUE;		}		break;	    }	    if ((freeIndex == -1) && (keySyms->map[i] == NoSymbol)		&& (i % keySyms->mapWidth) == 0)	    {		freeIndex = i;	    }	}    }    if (!keyCode) {	KeySym lower, upper;	/* we don't have an existing keycode - make one up on the fly and add	   it to the keyboard mapping.  Thanks to Vlad Harchev for pointing	   out problems with non-ascii capitalisation. */	if (freeIndex == -1) {	    rfbLog("KbdAddEvent: ignoring KeySym 0x%x - no free KeyCodes\n",		   keySym);	    return;	}	keyCode = MIN_KEY_CODE + freeIndex / keySyms->mapWidth;	XConvertCase(keySym, &lower, &upper);	if (lower == upper) {	    keySyms->map[freeIndex] = keySym;	} else {	    keySyms->map[freeIndex] = lower;	    keySyms->map[freeIndex+1] = upper;	    if (keySym == lower)		shiftMustBeReleased = TRUE;	    else		shiftMustBePressed = TRUE;	}	SendMappingNotify(MappingKeyboard, keyCode, 1, serverClient);	rfbLog("KbdAddEvent: unknown KeySym 0x%x - allocating KeyCode %d\n",	       keySym, keyCode);    }    time = GetTimeInMillis();    if (down) {	if (shiftMustBePressed && !(kbdDevice->key->state & ShiftMask)) {	    fakeShiftPress = TRUE;	    fake.u.u.type = KeyPress;	    fake.u.u.detail = SHIFT_L_KEY_CODE;	    fake.u.keyButtonPointer.time = time;	    mieqEnqueue(&fake);	}	if (shiftMustBeReleased && (kbdDevice->key->state & ShiftMask)) {	    if (KEY_IS_PRESSED(SHIFT_L_KEY_CODE)) {		fakeShiftLRelease = TRUE;		fake.u.u.type = KeyRelease;		fake.u.u.detail = SHIFT_L_KEY_CODE;		fake.u.keyButtonPointer.time = time;		mieqEnqueue(&fake);	    }	    if (KEY_IS_PRESSED(SHIFT_R_KEY_CODE)) {		fakeShiftRRelease = TRUE;		fake.u.u.type = KeyRelease;		fake.u.u.detail = SHIFT_R_KEY_CODE;		fake.u.keyButtonPointer.time = time;		mieqEnqueue(&fake);	    }	}    }    ev.u.u.detail = keyCode;    ev.u.keyButtonPointer.time = time;    mieqEnqueue(&ev);    if (fakeShiftPress) {	fake.u.u.type = KeyRelease;	fake.u.u.detail = SHIFT_L_KEY_CODE;	fake.u.keyButtonPointer.time = time;	mieqEnqueue(&fake);    }    if (fakeShiftLRelease) {	fake.u.u.type = KeyPress;	fake.u.u.detail = SHIFT_L_KEY_CODE;	fake.u.keyButtonPointer.time = time;	mieqEnqueue(&fake);    }    if (fakeShiftRRelease) {	fake.u.u.type = KeyPress;	fake.u.u.detail = SHIFT_R_KEY_CODE;	fake.u.keyButtonPointer.time = time;	mieqEnqueue(&fake);    }}voidPtrAddEvent(buttonMask, x, y, cl)    int buttonMask;    int x;    int y;    rfbClientPtr cl;{    xEvent ev;    int i;    unsigned long time;    static int oldButtonMask = 0;#ifdef CORBA    if (cl) {	CARD32 clientId = cl->sock;	ChangeWindowProperty(WindowTable[0], VNC_LAST_CLIENT_ID, XA_INTEGER,			     32, PropModeReplace, 1, (pointer)&clientId, TRUE);    }#endif    time = GetTimeInMillis();    miPointerAbsoluteCursor(x, y, time);    for (i = 0; i < 5; i++) {	if ((buttonMask ^ oldButtonMask) & (1<<i)) {	    if (buttonMask & (1<<i)) {		ev.u.u.type = ButtonPress;		ev.u.u.detail = i + 1;		ev.u.keyButtonPointer.time = time;		mieqEnqueue(&ev);	    } else {		ev.u.u.type = ButtonRelease;		ev.u.u.detail = i + 1;		ev.u.keyButtonPointer.time = time;		mieqEnqueue(&ev);	    }	}    }    oldButtonMask = buttonMask;}voidKbdReleaseAllKeys(){    int i, j;    xEvent ev;    unsigned long time = GetTimeInMillis();    for (i = 0; i < DOWN_LENGTH; i++) {	if (kbdDevice->key->down[i] != 0) {	    for (j = 0; j < 8; j++) {		if (kbdDevice->key->down[i] & (1 << j)) {		    ev.u.u.type = KeyRelease;		    ev.u.u.detail = (i << 3) | j;		    ev.u.keyButtonPointer.time = time;		    mieqEnqueue(&ev);		}	    }	}    }}/* copied from Xlib source */static void XConvertCase(KeySym sym, KeySym *lower, KeySym *upper){    *lower = sym;    *upper = sym;    switch(sym >> 8) {    case 0: /* Latin 1 */	if ((sym >= XK_A) && (sym <= XK_Z))	    *lower += (XK_a - XK_A);	else if ((sym >= XK_a) && (sym <= XK_z))	    *upper -= (XK_a - XK_A);	else if ((sym >= XK_Agrave) && (sym <= XK_Odiaeresis))	    *lower += (XK_agrave - XK_Agrave);	else if ((sym >= XK_agrave) && (sym <= XK_odiaeresis))	    *upper -= (XK_agrave - XK_Agrave);	else if ((sym >= XK_Ooblique) && (sym <= XK_Thorn))	    *lower += (XK_oslash - XK_Ooblique);	else if ((sym >= XK_oslash) && (sym <= XK_thorn))	    *upper -= (XK_oslash - XK_Ooblique);	break;    case 1: /* Latin 2 */	/* Assume the KeySym is a legal value (ignore discontinuities) */	if (sym == XK_Aogonek)	    *lower = XK_aogonek;	else if (sym >= XK_Lstroke && sym <= XK_Sacute)	    *lower += (XK_lstroke - XK_Lstroke);	else if (sym >= XK_Scaron && sym <= XK_Zacute)	    *lower += (XK_scaron - XK_Scaron);	else if (sym >= XK_Zcaron && sym <= XK_Zabovedot)	    *lower += (XK_zcaron - XK_Zcaron);	else if (sym == XK_aogonek)	    *upper = XK_Aogonek;	else if (sym >= XK_lstroke && sym <= XK_sacute)	    *upper -= (XK_lstroke - XK_Lstroke);	else if (sym >= XK_scaron && sym <= XK_zacute)	    *upper -= (XK_scaron - XK_Scaron);	else if (sym >= XK_zcaron && sym <= XK_zabovedot)	    *upper -= (XK_zcaron - XK_Zcaron);	else if (sym >= XK_Racute && sym <= XK_Tcedilla)	    *lower += (XK_racute - XK_Racute);	else if (sym >= XK_racute && sym <= XK_tcedilla)	    *upper -= (XK_racute - XK_Racute);	break;    case 2: /* Latin 3 */	/* Assume the KeySym is a legal value (ignore discontinuities) */	if (sym >= XK_Hstroke && sym <= XK_Hcircumflex)	    *lower += (XK_hstroke - XK_Hstroke);	else if (sym >= XK_Gbreve && sym <= XK_Jcircumflex)	    *lower += (XK_gbreve - XK_Gbreve);	else if (sym >= XK_hstroke && sym <= XK_hcircumflex)	    *upper -= (XK_hstroke - XK_Hstroke);	else if (sym >= XK_gbreve && sym <= XK_jcircumflex)	    *upper -= (XK_gbreve - XK_Gbreve);	else if (sym >= XK_Cabovedot && sym <= XK_Scircumflex)	    *lower += (XK_cabovedot - XK_Cabovedot);	else if (sym >= XK_cabovedot && sym <= XK_scircumflex)	    *upper -= (XK_cabovedot - XK_Cabovedot);	break;    case 3: /* Latin 4 */	/* Assume the KeySym is a legal value (ignore discontinuities) */	if (sym >= XK_Rcedilla && sym <= XK_Tslash)	    *lower += (XK_rcedilla - XK_Rcedilla);	else if (sym >= XK_rcedilla && sym <= XK_tslash)	    *upper -= (XK_rcedilla - XK_Rcedilla);	else if (sym == XK_ENG)	    *lower = XK_eng;	else if (sym == XK_eng)	    *upper = XK_ENG;	else if (sym >= XK_Amacron && sym <= XK_Umacron)	    *lower += (XK_amacron - XK_Amacron);	else if (sym >= XK_amacron && sym <= XK_umacron)	    *upper -= (XK_amacron - XK_Amacron);	break;    case 6: /* Cyrillic */	/* Assume the KeySym is a legal value (ignore discontinuities) */	if (sym >= XK_Serbian_DJE && sym <= XK_Serbian_DZE)	    *lower -= (XK_Serbian_DJE - XK_Serbian_dje);	else if (sym >= XK_Serbian_dje && sym <= XK_Serbian_dze)	    *upper += (XK_Serbian_DJE - XK_Serbian_dje);	else if (sym >= XK_Cyrillic_YU && sym <= XK_Cyrillic_HARDSIGN)	    *lower -= (XK_Cyrillic_YU - XK_Cyrillic_yu);	else if (sym >= XK_Cyrillic_yu && sym <= XK_Cyrillic_hardsign)	    *upper += (XK_Cyrillic_YU - XK_Cyrillic_yu);        break;    case 7: /* Greek */	/* Assume the KeySym is a legal value (ignore discontinuities) */	if (sym >= XK_Greek_ALPHAaccent && sym <= XK_Greek_OMEGAaccent)	    *lower += (XK_Greek_alphaaccent - XK_Greek_ALPHAaccent);	else if (sym >= XK_Greek_alphaaccent && sym <= XK_Greek_omegaaccent &&		 sym != XK_Greek_iotaaccentdieresis &&		 sym != XK_Greek_upsilonaccentdieresis)	    *upper -= (XK_Greek_alphaaccent - XK_Greek_ALPHAaccent);	else if (sym >= XK_Greek_ALPHA && sym <= XK_Greek_OMEGA)	    *lower += (XK_Greek_alpha - XK_Greek_ALPHA);	else if (sym >= XK_Greek_alpha && sym <= XK_Greek_omega &&		 sym != XK_Greek_finalsmallsigma)	    *upper -= (XK_Greek_alpha - XK_Greek_ALPHA);        break;    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩主播视频在线| 中文在线免费一区三区高中清不卡| 欧美日韩一本到| 日韩美女主播在线视频一区二区三区| 精品国产免费一区二区三区香蕉| 亚洲国产精品二十页| 亚洲一区二区三区四区五区黄| 麻豆一区二区三| 97久久精品人人澡人人爽| 欧美一区二区视频网站| 国产精品素人视频| 日韩va亚洲va欧美va久久| 国产乱码精品一区二区三区忘忧草| 色综合天天天天做夜夜夜夜做| 日韩免费电影一区| 亚洲免费看黄网站| 国产一区二区三区电影在线观看 | 欧美夫妻性生活| 久久精品日韩一区二区三区| 一级中文字幕一区二区| 精品一区二区日韩| 欧美综合一区二区三区| 蜜桃视频在线观看一区二区| 国产精品99久久不卡二区| 欧美日韩精品一区二区三区| 久久久久久麻豆| 午夜伊人狠狠久久| 成人毛片视频在线观看| 日韩片之四级片| 亚洲码国产岛国毛片在线| 极品美女销魂一区二区三区免费| 欧美色老头old∨ideo| 国产精品久线观看视频| 激情久久久久久久久久久久久久久久| 色天天综合久久久久综合片| 欧美激情一区不卡| 美国欧美日韩国产在线播放| 欧美视频一二三区| 国产精品乱码一区二区三区软件 | 欧美午夜片在线看| 国产精品免费网站在线观看| 六月丁香婷婷久久| 欧美综合亚洲图片综合区| 国产精品女主播av| 国产剧情在线观看一区二区| 日韩午夜精品电影| 日日夜夜精品视频免费| 日本道免费精品一区二区三区| 中文字幕精品在线不卡| 精品在线播放免费| 欧美高清你懂得| 亚洲已满18点击进入久久| 99这里只有久久精品视频| 国产日韩欧美精品一区| 国产一区二区三区免费观看| 日韩亚洲电影在线| 免费在线观看一区| 91麻豆精品国产| 午夜精品爽啪视频| 欧美视频一区二区三区| 亚洲一区在线视频| 色婷婷久久久亚洲一区二区三区| 日本成人在线看| 67194成人在线观看| 亚洲国产综合在线| 欧美日韩免费一区二区三区视频 | 欧美在线一二三| 亚洲欧美色综合| 色悠久久久久综合欧美99| 亚洲免费视频成人| 欧美伊人精品成人久久综合97| 亚洲女同女同女同女同女同69| jizzjizzjizz欧美| 国产精品久久久久久久蜜臀| eeuss鲁一区二区三区| 中文字幕在线视频一区| 99久久777色| 亚洲激情图片小说视频| 在线视频一区二区免费| 亚洲成人动漫在线观看| 在线不卡免费av| 美女www一区二区| 日韩午夜av一区| 国内一区二区视频| 欧美激情一区二区三区| 91啪九色porn原创视频在线观看| 亚洲精品成人天堂一二三| 色婷婷综合在线| 三级一区在线视频先锋 | 国产一区二区在线视频| 久久精品一区二区三区四区| 成人污视频在线观看| 日韩毛片在线免费观看| 欧美午夜片在线看| 久久se这里有精品| 国产日产亚洲精品系列| 一本大道av一区二区在线播放| 亚洲国产精品一区二区www在线| 欧美精品一卡二卡| 国产一区二区伦理片| 中文字幕人成不卡一区| 欧美日韩三级视频| 国产一区二区在线电影| 中文字幕一区二区不卡| 欧美另类高清zo欧美| 国产在线精品免费| 亚洲精品网站在线观看| 欧美精品日韩一本| 国产福利视频一区二区三区| 亚洲激情一二三区| 精品剧情在线观看| 91在线视频官网| 蜜桃av一区二区| 国产精品水嫩水嫩| 91精品国产综合久久精品麻豆| 国产精品一卡二卡| 亚洲综合在线观看视频| 精品国产乱码久久久久久老虎| 99久久夜色精品国产网站| 首页国产丝袜综合| 欧美激情中文不卡| 91精品中文字幕一区二区三区 | 一色屋精品亚洲香蕉网站| 欧美男男青年gay1069videost | 欧美激情一区二区三区蜜桃视频| 在线观看一区不卡| 狠狠狠色丁香婷婷综合激情| 一区二区在线观看不卡| 欧美变态tickle挠乳网站| 91亚洲大成网污www| 精品一区二区三区在线播放视频| 亚洲男同性视频| 久久精品亚洲精品国产欧美kt∨| 国产欧美综合色| 欧美午夜不卡视频| 丁香婷婷综合激情五月色| 天堂精品中文字幕在线| 国产精品你懂的| 欧美mv日韩mv| 欧美视频一区二区在线观看| 成人黄色小视频| 久久国产免费看| 依依成人综合视频| 国产女人18毛片水真多成人如厕| 欧美男人的天堂一二区| 91网址在线看| 国产精品一区在线观看乱码| 图片区小说区区亚洲影院| 亚洲欧美区自拍先锋| 国产欧美一区二区三区网站| 日韩欧美卡一卡二| 欧美日本在线看| 91成人免费网站| 成人综合婷婷国产精品久久| 另类小说欧美激情| 日韩精品电影在线| 亚洲一卡二卡三卡四卡无卡久久| 欧美激情一区二区三区全黄| 欧美成人bangbros| 这里只有精品免费| 欧美午夜不卡在线观看免费| 99re在线精品| eeuss影院一区二区三区| 国产成人综合视频| 国产麻豆欧美日韩一区| 加勒比av一区二区| 麻豆国产精品视频| 美女一区二区视频| 蜜桃视频第一区免费观看| 婷婷久久综合九色综合绿巨人| 一区二区在线免费观看| 亚洲精品欧美二区三区中文字幕| 亚洲欧美在线观看| 国产精品每日更新| 中文字幕欧美区| 中文字幕av一区二区三区免费看| 久久精品无码一区二区三区| 国产视频一区二区三区在线观看| 久久女同性恋中文字幕| 欧美精品一区二区三区四区| 日韩欧美国产一区二区在线播放| 这里是久久伊人| 日韩精品一区二区三区视频播放 | 婷婷中文字幕综合| 亚洲成人黄色影院| 视频一区二区三区中文字幕| 图片区小说区区亚洲影院| 亚洲一二三区在线观看| 亚洲成人免费视| 免费在线看一区| 韩国女主播成人在线| 国产成人高清在线| www.性欧美| 色婷婷亚洲婷婷| 欧美日本精品一区二区三区| 91精品国产一区二区三区蜜臀| 日韩欧美中文字幕一区| 亚洲精品一区二区三区影院| 久久久一区二区三区捆绑**| 中文一区二区完整视频在线观看|