Как перехватить нажатие на кнопку Power на кпк?
От: DmitryM12  
Дата: 01.10.04 09:54
Оценка:
Как перехватить нажатие на кнопку Power на кпк? Надо чтобы вместо выключения питания PDA'ки, выполнялась моя функция. Как это сделать?

PPC 2003, WinCE .NET 4.0
EVC++ 4.0

Спасибо!
Re: Как перехватить нажатие на кнопку Power на кпк?
От: Albedo_0.39 Россия  
Дата: 01.10.04 11:21
Оценка:
Здравствуйте, DmitryM12, Вы писали:

DM>Как перехватить нажатие на кнопку Power на кпк? Надо чтобы вместо выключения питания PDA'ки, выполнялась моя функция. Как это сделать?


DM>PPC 2003, WinCE .NET 4.0

DM>EVC++ 4.0

DM>Спасибо!


IMHO выключение по кнопке Power ты не отменишь, даже если перехватишь,
а вот suspend по Idle таймеру отменить можно (SystemIdleTimerReset).

Гм... те системные события которые MS позволяет отслеживать простым разработчикам, перечислены ниже:

NOTIFICATION_EVENT_DEVICE_CHANGE A PC Card device changed.
NOTIFICATION_EVENT_IR_DISCOVERED The device discovered a server by using infrared communications.
NOTIFICATION_EVENT_NET_CONNECT The device connected to a network.
NOTIFICATION_EVENT_NET_DISCONNECT The device disconnected from a network.
NOTIFICATION_EVENT_NONE No events occurred. Remove all event registrations for this application.
NOTIFICATION_EVENT_OFF_AC_POWER The user turned the alternating current (AC) power off. (это не то , это отсоединение от БП)
NOTIFICATION_EVENT_ON_AC_POWER The user turned the AC power on.
NOTIFICATION_EVENT_RESTORE_END A full device data restore completed.
NOTIFICATION_EVENT_RS232_DETECTED An RS232 connection was made.
NOTIFICATION_EVENT_SYNC_END Data synchronization finished.
NOTIFICATION_EVENT_TIME_CHANGE The system time changed.
NOTIFICATION_EVENT_TZ_CHANGE The time zone changed.
NOTIFICATION_EVENT_WAKEUP

Остальное только полухакерскими методами, предварительно изучив документацию по Platform Builder и Driver Development, при условии что это не будет нарушать законы физики.
Re: Как перехватить нажатие на кнопку Power на кпк?
От: Gandalf_The_Grey  
Дата: 01.10.04 12:18
Оценка:
Здравствуйте, DmitryM12, Вы писали:

DM>Как перехватить нажатие на кнопку Power на кпк? Надо чтобы вместо выключения питания PDA'ки, выполнялась моя функция. Как это сделать?


DM>PPC 2003, WinCE .NET 4.0

DM>EVC++ 4.0

DM>Спасибо!


вместо не получится никак. можно попытаться сделать перед выключением. и то при условии что твоя функция практически ничего делать не будет. Иначе получишь гарантированное подвисание
Re[2]: Как перехватить нажатие на кнопку Power на кпк?
От: DmitryM12  
Дата: 01.10.04 12:27
Оценка:
Здравствуйте, Gandalf_The_Grey, Вы писали:

G_T>Здравствуйте, DmitryM12, Вы писали:


DM>>Как перехватить нажатие на кнопку Power на кпк? Надо чтобы вместо выключения питания PDA'ки, выполнялась моя функция. Как это сделать?


DM>>PPC 2003, WinCE .NET 4.0

DM>>EVC++ 4.0

DM>>Спасибо!


G_T>вместо не получится никак. можно попытаться сделать перед выключением. и то при условии что твоя функция практически ничего делать не будет. Иначе получишь гарантированное подвисание


Можно же получить доступ к другим кнопкам через RegisterHotKey и не давать им отрабатываться. Может эту тоже как-нить хитро перехватывать можно...
Re[3]: Как перехватить нажатие на кнопку Power на кпк?
От: Gandalf_The_Grey  
Дата: 01.10.04 14:35
Оценка:
Здравствуйте, DmitryM12, Вы писали:

G_T>>вместо не получится никак. можно попытаться сделать перед выключением. и то при условии что твоя функция практически ничего делать не будет. Иначе получишь гарантированное подвисание


DM>Можно же получить доступ к другим кнопкам через RegisterHotKey и не давать им отрабатываться. Может эту тоже как-нить хитро перехватывать можно...


Не путай желаемое и действительное
Одно дело кнопка — от которой все равно — запустится что-то или нет, а другое дело кнопка, которая отвечает за выключение.

Просто когда ты ловишь это событие, система уже начала процедуру выключения. И все последовательно это событие обрабатывают. Ты один из многих, а не единственный...

Тут два пути — собрать свою систему из PB или перепаять кнопку, обрабатывать ее и посылать дальше

а если ни один из этих не подходит, то надо мириться, что твое приложение одно среди множества таких же умных
Re[4]: Как перехватить нажатие на кнопку Power на кпк?
От: Albedo_0.39 Россия  
Дата: 01.10.04 17:12
Оценка:
Гы если успеть поймать это событие, можна правда быстренко зарегистрировать CeRunAppAtTime или как там ее (по памяти написал), и тогда она быстренько включит девайс обратно , но нехорошо это, девайс успеет мигнуть, и юзер завидев такое, с высокой степенью вероятности потащит его по гаранитии куда-нить.
А при некоторой регулярности подобной "фичи", потащит сто пудово.
Re[5]: Как перехватить нажатие на кнопку Power на кпк?
От: Gandalf_The_Grey  
Дата: 02.10.04 07:36
Оценка:
Здравствуйте, Albedo_0.39, Вы писали:

A3>Гы если успеть поймать это событие, можна правда быстренко зарегистрировать CeRunAppAtTime или как там ее (по памяти написал), и тогда она быстренько включит девайс обратно , но нехорошо это, девайс успеет мигнуть, и юзер завидев такое, с высокой степенью вероятности потащит его по гаранитии куда-нить.

A3>А при некоторой регулярности подобной "фичи", потащит сто пудово.

Нельзя. При вызове CeRunAppAtTime при выключении устройство виснет с очень большой степенью вероятности.
Re[5]: Как перехватить нажатие на кнопку Power на кпк?
От: DmitryM12  
Дата: 04.10.04 07:20
Оценка:
Здравствуйте, Albedo_0.39, Вы писали:

A3>Гы если успеть поймать это событие, можна правда быстренко зарегистрировать CeRunAppAtTime или как там ее (по памяти написал), и тогда она быстренько включит девайс обратно , но нехорошо это, девайс успеет мигнуть, и юзер завидев такое, с высокой степенью вероятности потащит его по гаранитии куда-нить.

A3>А при некоторой регулярности подобной "фичи", потащит сто пудово.

А как его успеть поймать???
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.