Symbian 学习比较之何设置桌面快捷方式
2010-04-14 05:22:00 来源:WEB开发网table.InsertL();
}
// we don't really understand the format of ScData, so we simply copy a ready made bytes array to it
const TUint32 KRTType = 0x1020722a;
const TUint8 KScData[]={0x2a,0x72,0x20,0x10,0x7c,0x50,0x27,0x10,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb9,0xcd,0x00,0x20};
table.SetColL(1, KShortcut1);
table.SetColL(2, KRTType);
RDbColWriteStream ws;
ws.OpenLC(table, 3);
TInt len = sizeof(KScData)/sizeof(TUint8);
TPtr8 ptr((TUint8*)KScData, len, len);
ws.WriteL(ptr, len);
ws.CommitL();
CleanupStack::PopAndDestroy(); // ws
table.PutL();
CleanupStack::PopAndDestroy(&table);
err = db.Compact();
User::LeaveIfError(err);
CleanupStack::PopAndDestroy(&db);
CleanupStack::PopAndDestroy(&dbs);
const TUid KUid = {0x101f877c};
const TUint32 KKey = 0x06;
CRepository* cenrep = CRepository::NewLC(KUid);
TInt value = 0;
err = cenrep->Get(KKey, value);
User::LeaveIfError(err);
if(value==1)
{
value = (value==0)?1:0;
err = cenrep->Set(KKey, value);
User::LeaveIfError(err);
User::After(100000); // wait till Standby finish the update
value = (value==0)?1:0;
err = cenrep->Set(KKey, value);
User::LeaveIfError(err);
}
CleanupStack::PopAndDestroy(cenrep);
在这里我们最需要关注的就是在哪个位置和设置哪个因公到此位置上。在哪个位置设置快捷方式我们应该关注的是KShortcut1的值,在这个例子中是0x1027507c,这是快捷方式栏中的第五个位置,第一个位置是0x10275078,第二个位置是0x10275079,以此类推,大家明白了吧。找到了要设置的位置,我们接下来就要关系将哪个应用设置到这个位置上了。看变量KScData,这是一个数组。里面的格式我们可能看不懂,不要紧,我们只要按照这个格式去改就可以了。
更多精彩
赞助商链接