Как переназначить зеленую и красную кнопки на PocketPC?
Ответ: никак!
Оказывается, аппаратные кнопки «зеленая кнопка» (позвонить) и «красная кнопка» (повесить трубку) на уровне ОС целиком и полностью принадлежат процессу cprog.exe (системная звонилка, которая обрабатывает как входящие звонки, так и является наборщиком номера для исходящих), который, даже если его «убить», автоматически запускается каждую минуту процессом shell32.exe.
Эти кнопки можно переопределить для активного приложения (через Hook или через RegisterHotKey). Но на совсем, увы, их переопределить нельзя. Зато можно переопределить другие аппаратные кнопки карманного ПК. Для этого достаточно изменить значения в реестре по адресу
HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\Keys
А я тем временем пытаюсь решить задачу переопределения стандартного приложения набора телефонного номера (cprog.exe) моим собственным. Как сделаю – отпишу как это получилось.


«А я тем временем пытаюсь решить задачу переопределения стандартного приложения набора телефонного номера (cprog.exe) моим собственным. Как сделаю – отпишу как это получилось.»
Здравствуйте, Григорий. По поводу подмены аппликейшна. Меня тоже интересует этот вопрос. Не могли бы вы рассказать ход выших изыскании? Буду очень благодарен.
Во-первых, заменить cprog.exe можно, если у вас есть Flat Release Directory и Platform Builder. Строите новый ROM, заменив в нем приложение.
Во-вторых, можно попробовать заменить cprog.exe, если «грохнуть» его из списка задач и переписать в папке \Windows (должно сработать).
В-третьих (это самый правильный путь) – расширить cprog.exe за счет встроенного механизма Phone Extension API (он подробно описан в OEM Documentation, которую можно скачать с сервера Microsoft через JetStream клиент).
В Win Mobile есть огромные возможности расширения стандартного dialer/диалогов call history/движка cprog.exe и пр. по технологии Com Server. Пишете DLL, регистрируете ее в реестре и все. Не надо переписывать cprog.exe.
Спасибо, Григорий, за ответ. Првые 2 способа можно также реализовать через создание cab, который будет ставить в \Windows приложение с именем cprog.exe. но этот вариант нам не подходит. Как вы правильно заметили, лучше менять поведение cprog.exe. Не могли бы вы пояснить подробнее об Phone Extension API, у нас не получается найти подобную документацию… Также не получается найти Microsoft OEM Documentation. Это документация к Platform Builder? Подскажите, пожалуйста ресурс. Спасибо.
OEM Documentation – это chm файл размером 54 мегабайта, в котором описаны все детали разработки и кастомизации Windows Mobile для OEM разработчиков (тех, кто выпускает мобильные устройства на рынок). Например, Sony-Ericsson. Из собственного опыта знаю, что данная документация доступна только под NDA при заключенном соглашении с Microsoft (хотя на самом деле секретного там вроде и нет ничего). Но все-таки. Просто так ее не скачать, только через JetStream client имея эккаунт Microsoft partner.
Да, в ней написано много и того, что относится к AKU и Platform Builder. Но также и много того, что может пригодиться для application developerа