关于windows mobile 今日插件开发的记录
2009-11-24 17:56
253 查看
今日插件,可以看成一个DLL 的应用程序(对,应用程序!可以有界面,可以干任何事)。
只是系统规定了两个接口(240和241),必须带240这个接口就OK了。
今日插件完全依靠注册表活动。如果你的今日插件写成死循环了(我真的写死过,不停的蹦框。。。 最后我恢复出厂设置了。),可以修改注册表键值(HKEY_LOCAL_MACHINE/Software/Microsoft/Today/Items// 你自己的插件DLL )来干掉它。
微软给了例子! 自己找一下MyToday。
微软的注册方法:
1.拷贝到系统目录: WINDOWS//... ::CopyFile(lpszTodayFilePath, ... , FALSE);
2.安装 “今日插件”: ::RegCreateKeyEx();
// 注册插件
iTemp = 0;
::RegSetValueEx(hOpenKey, _T("Flags"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
::RegSetValueEx(hOpenKey, _T("Options"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
iTemp = 1;
::RegSetValueEx(hOpenKey, _T("Enabled"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
::RegSetValueEx(hOpenKey, _T("Order"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
iTemp = 2;
::RegSetValueEx(hOpenKey, _T("Selectability"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
iTemp = 4;
::RegSetValueEx(hOpenKey, _T("Type"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
::RegSetValueEx(hOpenKey, _T("DLL"), 0, REG_SZ, (BYTE*)HANDMAP_TODAY_COPY, sizeof(TCHAR) * _tcslen(lpszTodayFilePath));
3.给今日发送系统消息注册运行: ::SendMessage(HWND_BROADCAST, WM_WININICHANGE, (WPARAM)0xF2, 0);
说一下今日插件的几个注册表键值:
1. Enabled : 负责显示,还是不显示,不显示的话可以去今日里添加项。
2. Order:在今日里的顺序。
3.Selectability:这个有意思分为:0,1,2。1是系统托管,但收不到外部手动点击的消息. 2是消息下放到控件。推荐使用2,因为自己清楚该干什么。
卸载很简单: 只要删除DLL,注册表删掉就可以了。
关于插件的消息驱动:
自己用远程SPY看一下消息的流程吧。
选中的时候: WM_USER + 244 -> WM_PAINT ->WM_ERASEBKGND
选别的的时候: WM_USER + 246 -> WM_USER + 245 -> WM_PAINT ->WM_ERASEBKGND
其中:
WM_TODAYCUSTOM_RECEIVEDSELECTION: // 选择进入 WM_USER + 244
WM_TODAYCUSTOM_LOSTSELECTION: // 退出 WM_USER + 245
WM_TODAYCUSTOM_QUERYREFRESHCACHE // 这个东西一直在跑,应该几秒钟一次 WM_USER + 243
WM_LBUTTONDOWN: // 鼠标按下 这里可以发送::PostMessage(::GetParent(hWnd), TODAYM_TOOKSELECTION, (WPARAM)hWnd, 0); 来控制绘制界面-这个很重要!
绘制靠自己,想怎么干就怎么干
g_bSelecte 可以控制选中和为选中的状态。
获得高亮色:
DWORD bkcr = SendMessage(g_hWndParent, TODAYM_GETCOLOR, (WPARAM)TODAYCOLOR_HIGHLIGHT, NULL);
就这样吧!忘东西太快自己做个记录。
.
.
.
.
PS:火爆大头菜的秘诀就是不洗菜
只是系统规定了两个接口(240和241),必须带240这个接口就OK了。
今日插件完全依靠注册表活动。如果你的今日插件写成死循环了(我真的写死过,不停的蹦框。。。 最后我恢复出厂设置了。),可以修改注册表键值(HKEY_LOCAL_MACHINE/Software/Microsoft/Today/Items// 你自己的插件DLL )来干掉它。
微软给了例子! 自己找一下MyToday。
微软的注册方法:
1.拷贝到系统目录: WINDOWS//... ::CopyFile(lpszTodayFilePath, ... , FALSE);
2.安装 “今日插件”: ::RegCreateKeyEx();
// 注册插件
iTemp = 0;
::RegSetValueEx(hOpenKey, _T("Flags"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
::RegSetValueEx(hOpenKey, _T("Options"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
iTemp = 1;
::RegSetValueEx(hOpenKey, _T("Enabled"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
::RegSetValueEx(hOpenKey, _T("Order"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
iTemp = 2;
::RegSetValueEx(hOpenKey, _T("Selectability"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
iTemp = 4;
::RegSetValueEx(hOpenKey, _T("Type"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
::RegSetValueEx(hOpenKey, _T("DLL"), 0, REG_SZ, (BYTE*)HANDMAP_TODAY_COPY, sizeof(TCHAR) * _tcslen(lpszTodayFilePath));
3.给今日发送系统消息注册运行: ::SendMessage(HWND_BROADCAST, WM_WININICHANGE, (WPARAM)0xF2, 0);
说一下今日插件的几个注册表键值:
1. Enabled : 负责显示,还是不显示,不显示的话可以去今日里添加项。
2. Order:在今日里的顺序。
3.Selectability:这个有意思分为:0,1,2。1是系统托管,但收不到外部手动点击的消息. 2是消息下放到控件。推荐使用2,因为自己清楚该干什么。
卸载很简单: 只要删除DLL,注册表删掉就可以了。
关于插件的消息驱动:
自己用远程SPY看一下消息的流程吧。
选中的时候: WM_USER + 244 -> WM_PAINT ->WM_ERASEBKGND
选别的的时候: WM_USER + 246 -> WM_USER + 245 -> WM_PAINT ->WM_ERASEBKGND
其中:
WM_TODAYCUSTOM_RECEIVEDSELECTION: // 选择进入 WM_USER + 244
WM_TODAYCUSTOM_LOSTSELECTION: // 退出 WM_USER + 245
WM_TODAYCUSTOM_QUERYREFRESHCACHE // 这个东西一直在跑,应该几秒钟一次 WM_USER + 243
WM_LBUTTONDOWN: // 鼠标按下 这里可以发送::PostMessage(::GetParent(hWnd), TODAYM_TOOKSELECTION, (WPARAM)hWnd, 0); 来控制绘制界面-这个很重要!
绘制靠自己,想怎么干就怎么干
g_bSelecte 可以控制选中和为选中的状态。
获得高亮色:
DWORD bkcr = SendMessage(g_hWndParent, TODAYM_GETCOLOR, (WPARAM)TODAYCOLOR_HIGHLIGHT, NULL);
就这样吧!忘东西太快自己做个记录。
.
.
.
.
PS:火爆大头菜的秘诀就是不洗菜
相关文章推荐
- 关于.net编译过后的程序增加功能的一种实现方式_也可以说是.net exe注入,插件机制_开发记录
- 开发Windows Mobile今日插件 -- 内存电量,桌面便笺,桌面记单词(转自hoodlum1980 ( 發發 ) 的技术博客)
- Windows Mobile智能手机今日插件编程开发初探(使用C++, vs2008, Pocket PC 5.0内核)
- Windows Mobile 今日插件开发
- 关于在Windows Mobile下今日插件使用WTL的问题
- Windows Mobile 今日插件开发
- Windows Mobile 今日插件开发
- Windows Mobile 今日插件开发
- 用C#开发Windows Mobile开发今日插件附源代码
- 开发Windows Mobile今日插件 -- 内存电量,桌面便笺,桌面记单词
- Windows Mobile 今日插件开发
- 记录一款Unity VR视频播放器插件的开发
- 开发自动化插件地址记录
- 关于微信开发记录
- 基于MVC+EasyUI的Web开发框架经验总结(1)-利用jQuery Tags Input 插件显示选择记录
- 关于chrome插件开发(二)
- NPAPI插件开发详细记录:实用功能——改变插件窗口大小
- 关于Eclipse插件开发(五)-----编辑器类方法的使用说明
- 19-关于Excel文件上传进度开发的记录
- Java开发工具插件配置记录