有没有办法获得任务栏的电池和手机信号指示器图标,然后画到一个图片盒或其他东西?
为什么我需要这个?
我需要所有可用的屏幕空间,因此所有表单都被最大化并且它们掩盖了windowsmobile任务栏。但是,我必须以几种形式显示有关电池电话信号强度的信息。
我知道如何获取他们的值(如systeminformation.phonesignalstrength),但我想要的是“当前图标”,所以我不需要担心他们的价值观。它只是用户的视觉信息。
在最后一种情况下,如果这是不可能的,如何从windowsmobile shell获取这些图标,所以我将自己绘制它们,处理它们假设的每个不同状态/值。 (这是我不想做的!)
提前致谢并抱歉我的英语不好。
答案 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中,图像有时会有所不同。