获取任务栏电池和电话信号指示器图标并绘制到图片框中

时间:2010-04-14 19:40:21

标签: c# windows-mobile compact-framework taskbar

有没有办法获得任务栏的电池和手机信号指示器图标,然后画到一个图片盒或其他东西?


为什么我需要这个?

我需要所有可用的屏幕空间,因此所有表单都被最大化并且它们掩盖了windowsmobile任务栏。但是,我必须以几种形式显示有关电池电话信号强度的信息。

我知道如何获取他们的值(如systeminformation.phonesignalstrength),但我想要的是“当前图标”,所以我不需要担心他们的价值观。它只是用户的视觉信息。


在最后一种情况下,如果这是不可能的,如何从windowsmobile shell获取这些图标,所以我将自己绘制它们,处理它们假设的每个不同状态/值。 (这是我不想做的!)

提前致谢并抱歉我的英语不好。

2 个答案:

答案 0 :(得分:0)

已有类似的例子可供使用。 Have a look.
我会为它粘贴代码,但它是在C ++中,将它全部粘贴在这里将是巨大的:) 您需要将C ++代码转换为C#。

你需要 -
1.找到系统托盘的手柄 2.获取托盘中的按钮数量(右侧) 3.对于每个按钮......
a)读取按钮数据缓冲区 b)从缓冲区中获取TRAYDATA c)获取与此TRAYDATA对象实例相关的图标

ImageList Image16List = new ImageList();
...
ICONINFO  iinfo;
if(GetIconInfo(tray.hIcon,&iinfo) != 0) {
    int iconindex = Image16List.Add(tray.hIcon);
    //do stuff
}

另一篇非常好的文章链接here.

答案 1 :(得分:0)

大多数任务栏图像都以.BMP文件的形式存储在\ Windows目录中。例如,在Windows Mobile 6中,电池映像位于\ Windows \ battery.bmp中。您可以使用Windows Mobile Device Emulator和远程文件查看器将文件复制到PC。在不同版本的Windows Mobile中,图像有时会有所不同。