Получите значки индикаторов Battery and PhoneSignal на панели задач и нарисуйте в окне рисунка - PullRequest
1 голос
/ 14 апреля 2010

Можно ли как-нибудь получить значки индикаторов заряда батареи и телефона на панели задач, а затем нарисовать их в окне для картинок или еще как-нибудь?


Зачем мне это нужно?

Мне нужно все доступное пространство экрана, чтобы все формы были развернуты и закрывали панель задач windowsmobile. Но мне нужно отобразить информацию о силе сигнала аккумулятора и телефона всего за пару форм.

Я знаю, как получить их значения (например, systeminformation.phonesignalstrength), но мне нужен «текущий значок», поэтому мне не нужно беспокоиться об их значениях. Это просто визуальная информация для пользователя.


В последнем случае, если это невозможно, как получить эти значки из оболочки WindowsMobile, поэтому я буду рисовать их самостоятельно, обрабатывая каждый другой статус / значения, которые они принимают. (Это то, что я не хочу делать!)

Заранее спасибо и извините за мой плохой английский.

Ответы [ 2 ]

0 голосов
/ 16 апреля 2010

Большинство изображений панели задач хранятся в виде файлов .BMP в каталоге \ Windows. Например, в Windows Mobile 6 образ батареи находится в \ Windows \ battery.bmp. Вы можете использовать Windows Mobile Device Emulator и Remote File Viewer для копирования файлов на ваш компьютер. Изображения иногда отличаются в разных версиях Windows Mobile.

0 голосов
/ 15 апреля 2010

Уже есть похожий пример. Посмотрите.
Я бы вставил код для него, но он находится на C ++, и было бы здорово вставить все это здесь :) Вам нужно будет преобразовать этот код C ++ в C #.

Вам нужно будет -
1. Найдите ручку системного лотка.
2. Получить количество кнопок (это правильно) в трее.
3. Для каждой кнопки ...
а) Кнопка чтения буфера данных.
б) Получить TRAYDATA из этого буфера.
c) Получить значок, связанный с этим экземпляром объекта TRAYDATA.

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

Еще одна очень хорошая ссылка на статью здесь.

...