做过HOME SCREEN请进

时间:2021-12-13 21:02:22
我目前做了个HOME SCREEN的插件,但是安装之后必须要在SETTING-》HOME当中手动选择我的插件才行才能使该插件生效,请问有没有办法能直接通过代码使我的插件安装之后即可以生效的?

14 个解决方案

#1


试试这个
http://msdn.microsoft.com/en-us/library/ms847161.aspx

Enabled DWORD  0 or 1; 
indicates whether the item is displayed on the Today screen. If Enabled=0, the user can cause the Today item to appear by selecting the box in the list of items on the Items tab of the Today application in Settings. 
把这个值设为1看看

#2


PPC上的TODAY PLUGIN,和SP上的HOME SCREEN PLUGIN,完全不是一个机制。郁闷了。

#3


晕,还没写过SP的HOME SCREEN PLUGIN~~~
楼主要实现Sp的?

#4


是啊,已经实现了,但是如何让他安装之后就能被LAUNCH起来是个问题。

#5


哦~~SP的发消息不行么?

#6


发什么消息?

#7


SP的话重起home.exe看看, 以前见人用过这种方法
直接ShellExecuteEx

#8


::SendMessage(HWND_BROADCAST, WM_WININICHANGE, (WPARAM)0xF2, 0);
不知道对Smart Phone能不能起作用~~~

#9


楼主是要实现自动切换主题吗(SP)?
还是插件的DLL直接呈现在现有的home(SP)上?

#10


还是插件的DLL直接呈现在现有的home(SP)上? 是这个:)

#11


比较复杂点。
首先SP的home桌面(包括Plugin)是home.exe通过HOME XML配置文件(就是主题方案)管理的。
这个跟PPC是不同的(PPC只是配下颜色罢了)。
因此如果想让SP在现有的HOME XML配置下加上新的Plugin,
那么就必须让Home.exe重新加载一个带有新的Plugin的xml配置文件。
呵呵,不知道有无听懂?楼主应该对SP的桌面XML很熟悉吧(必须很熟悉)。
切换主题是根本,是无法回避动作。

#12


谢谢durone,呵呵,我对那个XML比较了解,目前实现的功能也没有问题了,但是我的问题就是如果用代码实现切换主题.这个有办法吗?呵呵.

#13


写相关的注册表后, http://msdn.microsoft.com/en-us/library/ms844846.aspx
你这个应该改HKCU\ControlPanel\Home\Scheme对应的文件?


SendMessage(GetDesktopWindow(), WM_SETTINGCHANGE, NULL, NULL);
//或者
SendMessage(GetDesktopWindow(), WM_WININICHANGE, NULL, NULL);

可以吗?

#14


引用 13 楼 xdkui 的回复:
写相关的注册表后, http://msdn.microsoft.com/en-us/library/ms844846.aspx 
你这个应该改HKCU\ControlPanel\Home\Scheme对应的文件? 


C/C++ code
SendMessage(GetDesktopWindow(), WM_SETTINGCHANGE, NULL, NULL);
//或者
SendMessage(GetDesktopWindow(), WM_WININICHANGE, NULL, NULL);



可以吗?


刚测试了下, 这样做是可以的
1. 设置HKCU\ControlPanel\Home\Scheme为你的scheme文件,  比如\Application Data\Home\Test.home.xml (这个是SDK里自带的home screen的插件sample)
2. SendMessage(GetDesktopWindow(), WM_SETTINGCHANGE, NULL, NULL);
然后home.exe会重新加载配置文件.
我只是做了测试, 所以第一步用注册表编辑器直接改的. 用程序做很简单了,相信你会做

#1


试试这个
http://msdn.microsoft.com/en-us/library/ms847161.aspx

Enabled DWORD  0 or 1; 
indicates whether the item is displayed on the Today screen. If Enabled=0, the user can cause the Today item to appear by selecting the box in the list of items on the Items tab of the Today application in Settings. 
把这个值设为1看看

#2


PPC上的TODAY PLUGIN,和SP上的HOME SCREEN PLUGIN,完全不是一个机制。郁闷了。

#3


晕,还没写过SP的HOME SCREEN PLUGIN~~~
楼主要实现Sp的?

#4


是啊,已经实现了,但是如何让他安装之后就能被LAUNCH起来是个问题。

#5


哦~~SP的发消息不行么?

#6


发什么消息?

#7


SP的话重起home.exe看看, 以前见人用过这种方法
直接ShellExecuteEx

#8


::SendMessage(HWND_BROADCAST, WM_WININICHANGE, (WPARAM)0xF2, 0);
不知道对Smart Phone能不能起作用~~~

#9


楼主是要实现自动切换主题吗(SP)?
还是插件的DLL直接呈现在现有的home(SP)上?

#10


还是插件的DLL直接呈现在现有的home(SP)上? 是这个:)

#11


比较复杂点。
首先SP的home桌面(包括Plugin)是home.exe通过HOME XML配置文件(就是主题方案)管理的。
这个跟PPC是不同的(PPC只是配下颜色罢了)。
因此如果想让SP在现有的HOME XML配置下加上新的Plugin,
那么就必须让Home.exe重新加载一个带有新的Plugin的xml配置文件。
呵呵,不知道有无听懂?楼主应该对SP的桌面XML很熟悉吧(必须很熟悉)。
切换主题是根本,是无法回避动作。

#12


谢谢durone,呵呵,我对那个XML比较了解,目前实现的功能也没有问题了,但是我的问题就是如果用代码实现切换主题.这个有办法吗?呵呵.

#13


写相关的注册表后, http://msdn.microsoft.com/en-us/library/ms844846.aspx
你这个应该改HKCU\ControlPanel\Home\Scheme对应的文件?


SendMessage(GetDesktopWindow(), WM_SETTINGCHANGE, NULL, NULL);
//或者
SendMessage(GetDesktopWindow(), WM_WININICHANGE, NULL, NULL);

可以吗?

#14


引用 13 楼 xdkui 的回复:
写相关的注册表后, http://msdn.microsoft.com/en-us/library/ms844846.aspx 
你这个应该改HKCU\ControlPanel\Home\Scheme对应的文件? 


C/C++ code
SendMessage(GetDesktopWindow(), WM_SETTINGCHANGE, NULL, NULL);
//或者
SendMessage(GetDesktopWindow(), WM_WININICHANGE, NULL, NULL);



可以吗?


刚测试了下, 这样做是可以的
1. 设置HKCU\ControlPanel\Home\Scheme为你的scheme文件,  比如\Application Data\Home\Test.home.xml (这个是SDK里自带的home screen的插件sample)
2. SendMessage(GetDesktopWindow(), WM_SETTINGCHANGE, NULL, NULL);
然后home.exe会重新加载配置文件.
我只是做了测试, 所以第一步用注册表编辑器直接改的. 用程序做很简单了,相信你会做