诺基亚7710/9300屏幕截图软件

塞班程序员何在?
老矣!

    自己手里有几个诺基亚的7710和9300,想截几个屏幕图片出来,找了一下没找到截图软件,于是我找到了screenshot,但是只有s60v2/s60v3/uiq2版本的sis包,而是7710是诺基亚s90的,9300是诺基亚s80的,以前的sdk开发环境都还在,所以我把源码拉下来,针对塞班s80/s90进行适配。

    因为s80的设备也只有9210(c)/9300(i)/9500这几款,而s90只有两款设备,除了7710外还有一款未上市的7700,这两种系统设备的UI是基于Eik的,s60和uiq分布基于Akn和Qik,对应移植相应的地方即可,7710和9300都可以用组合按键来操作,找到BencoolenAppUiSetCaptureKey,增加s80/s90的热键处理就行了,用shift辅助。

#ifdef __S80__
    switch (iScreenShotData->Shortcut())
            {
            case CScreenShotData::EShortcutConfirm:
                DoSetCaptureKey(KOkKey, KOkKeyCode);
                break;
            case CScreenShotData::EShortcutBackspace:
                DoSetCaptureKey(EStdKeyBackspace, EKeyBackspace);
                break;
            default:
                User::Invariant();
            }
#else
    //s90
    switch (iScreenShotData->Shortcut())
        {
        case CScreenShotData::EShortcutSwitch:
            DoSetCaptureKey(KeyTabKeyCode);
            break;
        case CScreenShotData::EShortcutZoom:
            DoSetCaptureKey(KeyZoomKeyCode);
            break;
        default:
            User::Invariant();
        }
#endif // __S80__

DoSetCapture修改:

#if ((defined __UIQ__) || (defined __S_V70__) && !(defined __S80__))

    iHandleCaptureKey = CCoeEnv::Static()-> RootWin().CaptureKey(
        iCaptureKey, 0, 0, 2);

#else
    iHandleCaptureKey = CCoeEnv::Static()-> RootWin().CaptureKeyUpAndDowns(
        iCaptureKey, EModifierShift, EModifierShift PRIORITYCAPTUREKEY);
    iHandleCaptureKey2 = CCoeEnv::Static()-> RootWin().CaptureKey(
        iCaptureKey2, EModifierShift, EModifierShift PRIORITYCAPTUREKEY);

#endif

编译好后,安装到设备上

7710截图

9300的截图

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

 桂ICP备15001694号-3