Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 01.07.2013
Сообщений: 5

Перехват нажатия кнопки на Windows Mobile

14.08.2013, 05:57. Показов 2367. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые форумчане!
Пишу приложения для Windows Mobile 6.1. Задача следующая. Есть несколько приложений работающих в полноэкранном режиме. Между ними нужно переключаться. Пробавал программку AltTab, но она не подходит поскольку у меня не простой смартфон, а производственный терминал Моторолла. На нём просто нет HardwareButton, а потому навестить АльТаб не получается...
Думаю есть какая-то хитрость чтобы по нажатию определённой клавиши переключаться между приложениями. Выход вижу в следующем: посадить в фоновом режиме что-то типа клавиатурного шпиона и при нажатии допустим Сtrl делать Process.Start(AltTab) - это переключит между программами. Но вот вопрос... Как на ВинМобайл ловить это всё...
Может кто сталкивался?
При помощи MSDN и такой-то матери написал хук для событий. Написал код, на WinForm работает 500%. а вот на мобайле пишет ошибку..
Может кто подскажет от чего?

привожу код класса на глобальный хук клавиатуры ругается на :

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Ставим хук
public static void InstallHook()
{
if (IsHookInstalled) return;
 
hModule = Marshal.GetHINSTANCE(AppDomain.CurrentDomain.GetAssemblies()[0].GetModules()[0]);
hookDel = new API.HookProc(HookProcFunction);
if (localHook)
hHook = API.SetWindowsHookEx(API.HookType.WH_KEYBOARD,
hookDel, IntPtr.Zero, AppDomain.GetCurrentThreadId());
else
hHook = API.SetWindowsHookEx(API.HookType.WH_KEYBOARD_LL,
hookDel, hModule, 0);
if (hHook != IntPtr.Zero)
hookInstall = true;
else
throw new SystemException("Не возможно сделать ХУК");
}
говорит мол нет метода для AppDomain который GetAssemblies. Хотя на МСДН уверяют что есть.
Кто знает может как ещё получить тек.процесс их Thread'а?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.08.2013, 05:57
Ответы с готовыми решениями:

Перехват нажатия кнопки в сторонней программе
Ребят, подскажите, как можно реализовать небольшую утилиту для перехвата нажатия одной кнопки в сторонней программе. Утилита должна...

Перехват нажатия кнопки с клавиатуры
Подскажите как сделать что бы программа перехватывала нажатие кнопки F3 даже если форма не активна и программа свернута? Так у меня...

Перехват нажатия кнопки в определённой программе
Всем доброго времени суток. Хотел бы узнать, возможно ли каким-нибуть образом перехватить нажатие кнопки в определённой программе. ...

4
39 / 37 / 8
Регистрация: 01.08.2013
Сообщений: 106
14.08.2013, 08:51
Если клавиша хардварная софтварная (всегда путал эти понятия ), её не отловить, хук не поможет.
По поводу процесса, можно так:
C#
1
Process.GetCurrentProcess().Id
Или главное окно:
C#
1
Process.GetCurrentProcess().MainWindowHandle
0
0 / 0 / 0
Регистрация: 01.07.2013
Сообщений: 5
14.08.2013, 10:00  [ТС]
Проблему решил. Написал глобальные горячие клавиши. По их нажатию вызываю процессы.
Кому интересно могу выложить код
0
8 / 8 / 6
Регистрация: 25.12.2013
Сообщений: 192
02.07.2014, 20:57
Цитата Сообщение от Vitell Посмотреть сообщение
Проблему решил. Написал глобальные горячие клавиши. По их нажатию вызываю процессы.
Кому интересно могу выложить код
Если можно код пожалуйста. Если есть код функции кнопки положить трубку
0
7 / 7 / 3
Регистрация: 16.04.2015
Сообщений: 175
05.08.2015, 15:29
Цитата Сообщение от Vitell Посмотреть сообщение
hModule = Marshal.GetHINSTANCE(AppDomain.CurrentDo main.GetAssemblies()[0].GetModules()[0]);
Странно. У меня WinCE 6.5 выдал:
Code
1
"System.Runtime.InteropServices.Marshal" не содержит определение для "GetHINSTANCE"
Добавлено через 6 минут
П.С.: Впрочем, ничего странного, на MSDN тоже этого метода нет... https://msdn.microsoft.com/ru-... 90%29.aspx

Добавлено через 8 минут
Так всё же, как отловить нажатия кнопок? Проблема в следующем, у меня есть форма, где надо по нажатию клавиши что-либо делать, это реализовано через свойство формы KeyPreview, а операционная система по прежнему продолжает обрабатывать нажатия. Например, если фокус ввода на кнопке и мы нажимаем "Enter", то прога сперва сделает что ей положено, затем ОС вызовет событие нажатия кнопки что находится в фокусе. Может подскажет кто, как эту функцию ОС временно отключить или какой иной способ обхода? Может кто уже сталкивался? Есть же здесь умные люди?
Заранее благодарю за любую подсказку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.08.2015, 15:29
Помогаю со студенческими работами здесь

Перехват нажатия кнопки в сторонней программе
Ребят, подскажите, как можно реализовать небольшую утилиту для перехвата нажатия одной кнопки в сторонней программе. Утилита должна...

Перехват нажатия кнопки в окне другого приложения
Всем доброго времени суток! Задача стоит следующая: выполнить свой код по нажатию кнопки в окне чужого приложения, назовем его...

Перехват нажатия кнопки Back в QtWebView на Android
День добрый! Создал в QT простое тестовое приложение с QtWebView. Как перехватить нажатие на хардварную кнопку Back? Пробовал...

Как сделать глобальный перехват нажатия какой либо кнопки?
пробовал сделать хук, но он ловит нажатия только когда моя программа в фокусе вот код: SetWindowsHookEx(WH_KEYBOARD, KeyboardProc,...

Отлов нажатия кнопки перезагрузки Windows
Здравствуйте, подскажите кто знает, как отловить событие перезагрузки или выключения компьютера? ну и к примеру отправки уведомления на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru