| RSS



Меню

Bookmark and Share


Статистика
Ваш IP: 216.73.216.185
Вы используете: v





Сейчас на сайте:

Тех поддержка ->

Облако тэгов
Брутер ОС видио сайта казахстана Tor Обратная сторона бочками антенна Направляющяя php эксплоит эксплоиту рознь Windows Server 2008 PPTP FreeBSD Jail VoIP-телефония QIP Virtual vps proc sysctl Tune kernel freeBSD bridge LiveCD GEO Bluetooth game Wine Video emulator Shell Python армия червь Conficker вирус троян лаборатория касперского пиратство Apple iPhone Microsoft twitter социальная сеть анонимность лицензия Open Source уязвимость MySQL база данных PostgreSQL Закон Франция Пират Skype мобильный хакер trend micro кибератака Германия робот искусственный интеллект Персональные данные Ноутбук Интернет китай цензура windows vista Linux патент TomTom браузер Firefox Internet Explorer Opera Safari Intel Oracle патч Банкомат IBM США Dell контроль кибербезопасность приговор Mozilla Chrome безопасность Госдума СМИ Windows 8 Пираты взлом Пентагон Украина Facebook Cisco Windows XP нетбук торрент музыка Биометрический Nokia Manager Password ФБР IP-адрес sms RSA java Google Captcha Symantec Спам Антивирус тест Windows 7 операционная система windows провайдер tele2 авторское право rapidshare UNIX свиной грипп шантаж Дети копирайт McAfee HTTPS icann студент Норвегия New York Times YouTube Warner Music КНДР Ubuntu касперский Россия РФ сервер хостинг Wi-Fi маршрутизатор суд пароль блог фишинг одноклассники Медведев контрафакт мошенник sony Universal Gps по JavaScript Хакеры Yahoo фас компьютер софт Минкомсвязи Сбой Toshiba мошенничество Доктор ВЕб Вконтакте исходный код Прослушка МВД фильтр порнография свобода слова казахстан Sony Music Universal Music Autodesk сисадмин Gmail кредитная карта LiveJournal шифрование банк Нанотехнологии военная техника wikipedia выборы DNS bind Android Simple атака Mac OS X домен ФСБ прокуратура уголовное дело ICQ Sophos Google Voice ошибка военные DARPA сайт турция конференция спамер Полиция фоторобот Koobface Перевод Великобритания белоруссия Грузия Европа биржа Dr.WEB Билл Гейтс спецслужбы Royal Bank of Scotland смартфон F-Secure Symbian трафик фильм Microsoft Office Новая Зеландия Adobe PDF Австралия IDC Internet Explorer 9 iPad Ирландия поиск МТС Реклама слежка патриотизм Zeus личные данные eset avast защита виртуализация информатика Черный список BlackBerry льготы индия траффик латвия Москва социальные сети flash player paypal BitDefender сертификат honda налог Anonymous технологии облачный сервис Ассанж передача данных Оптоволокно арест Siemens Samsung Иск акция учетная запись Сирия Британия исследование угрозы Санкт-Петербург форум Обновление SOPA PIPA Megaupload разработчики Мобильный телефон отчет приложение соглашение Инвестиции видеонаблюдение релиз олимпийские игры платформа роскомнадзор

Главная » Статьи » Общие Статьи

Bluetooth Remote Control: управление компьютером с мобильника

Когда то очень давно мне в руки попал Хакер за апрель 2003 года. В нем была статья про то, как через IrDA и при помощи пульта дистанционного управления управлять Виндой. Я тогда помню накупил деталей, спаял ИК-приемник, но ничего у меня не вышло :). Недавно захотел довести начатое до конца, но уже на основе Bluetooth. Для этого нам понадобится тело с "синим зубом" и BT-адаптер для компа.

Так как самому реализовывать в дельфи работу с bluetooth было долго и муторно, я решил взять уже готовую библиотеку: Bluetooth Framework Library, которую написал наш соотечественник (правда она без исходников). С библиотекой идет несколько демок, показывающих основные возможности. Нам же сегодня потребуется KeypadControl. Отрываем \source и устанавливаем библиотеку, потом копируем все содержимое этой папки, открываем \demo_doc\demo\KeypadControl, вставляем и запускаем KeypadControl.dpr. Перед нами открылась главная форма этой демки. Она может обрабатывать нажатия кнопок на теле и по нажатию кнопок на форме эмулировать их нажатие на теле. Я предлагаю создать для тела простой мидлет, в котором будет крутиться цикл до тех пор, пока не нажата клавиша "0". Его можно скачать тут http://www.mobileservicesoft.narod.ru/blank.rar. Теперь необходимо придумать, за что будет отвечать каждая кнопка на теле. У меня siemens cx75 и для него я реализовал так: 

джойстик - перемещает курсор (причем перемещаем, пока кнопка нажата, в таймере) 
нажать его - левая кнопка мыши 
левая софт кнопка - двойное нажатие левой кнопки мыши 
правая софт кнопка - правая клавиша мыши 
зеленая трубка - reboot 
красная трубка - shutdown 
1 - enter 
2 - стрелка вверх 
3 - закрыть активное окно 
4 - стрелка влево 
5 - стрелка вниз 
6 - стрелка вправо 
7 - отрыть лоток CD 
8 - закрыть лоток CD 
9 - свернуть активное окно 

Для реализации задуманного нужно удалить все кнопки с форы кроме Connect и соответственно все обработчики нажатий на эти кнопки. Добавить таймер и все. ShowMessage('DOWN: ' + Key) - тоже надо везде удалить.

Давайте посмотрим, как все это работает. Запускаем приложение, появляется окно, на нем одна кнопка Connect, после ее нажатия вылезет несколько окон - там все просто. Теперь соединение установлено. Нажатие кнопки на теле генерирует событие BFKeypadControlClientKeyDown(Sender: TObject; Key: String), где key - это код нажатой кнопки. Теперь нужно поместить простой case и все, хотя все лучше видно на исходнике:

key1:=key[1]; //это нужно, чтобы в обработке таймера знать какая кнопка была нажата 
a1:=0; 
a2:=0; 
case key[1] of 
'<' : a1:=-10; //
курсор влево 
'>' : a1:=10; //
курсор вправо 
'^' : a2:=-10; //
курсор вверх 
'V' : a2:=10; //
курсор вниз 
'F' : begin //
нажимаем левую кнопку мыши 
GetCursorPos(p); 
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, P.x, P.y, 0, 0); 
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, P.x, P.y, 0, 0); 
end; 
'[' : begin //
нажимаем левую кнопку мыши дважды 
GetCursorPos(p); 
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, P.x, P.y, 0, 0); 
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, P.x, P.y, 0, 0); 
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, P.x, P.y, 0, 0); 
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, P.x, P.y, 0, 0); 
end; 
']' : begin //
нажимаем правую кнопку мыши 
GetCursorPos(p); 
mouse_event(MOUSEEVENTF_RIGHTDOWN, P.x, P.y, 0, 0); 
mouse_event(MOUSEEVENTF_RIGHTUP, P.x, P.y, 0, 0); 
end; 
'S' : WinExec(PChar('shutdown -t 0 -r'),SW_SHOWNORMAL); //
reboot 
'C' : WinExec(PChar('shutdown -t 0 -s'),SW_SHOWNORMAL); //
shutdown 
'1' : begin //
эмулируем нажатие кнопки enter 
keybd_event(VK_RETURN,0,0,0); 
keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0); 
end; 
'2' : begin //
эмулируем нажатие стрелки вверх 
keybd_event(vk_up,0,0,0); 
keybd_event(vk_up,0,KEYEVENTF_KEYUP,0); 
end; 
'3' : SendMessage(GetForegroundWindow, WM_CLOSE,0,0); //
закрываем активное окно 
'4' : begin //
эмулируем нажатие стрелки влево 
keybd_event(VK_LEFT,0,0,0); 
keybd_event(VK_LEFT,0,KEYEVENTF_KEYUP,0); 
end; 
'5' : begin //
эмулируем нажатие стрелки вниз 
keybd_event(VK_DOWN,0,0,0); 
keybd_event(VK_DOWN,0,KEYEVENTF_KEYUP,0); 
end; 
'6' : begin //
эмулируем нажатие стрелки вправо 
keybd_event(VK_RIGHT,0,0,0); 
keybd_event(VK_RIGHT,0,KEYEVENTF_KEYUP,0); 
end; 
'7' : mciSendString('Set cdaudio door open wait', 0, 0, 0); //
отрываем лоток CD 
'8' : mciSendString('Set cdaudio door closed wait', 0, 0, 0);//
закрываем лоток CD 
'9' : ShowWindow(GetWindowLong(GetForegroundWindow,GWL_HWNDPARENT),SW_MINIMIZE); 
//
сворачиваем активное окно 
end; 
if (GetCursorPos(p)=true)and 
((key1='<')or(key1='>')or(key1='^')or(key1='V')) then 
begin 
Timer1.Enabled:=true; //
запускаем таймер 
SetCursorPos(p.X+a1,p.Y+a2); //
перемещаем курсор 
end; 

В обработке таймера прописываем перемещение курсора. Как только кнопку джойстика отпустили происходит BFKeypadControlClientKeyUp, где и нужно прописать Timer1.Enabled:=false. 

Прога может работать при соединении тела с ПК через IrDA, Bluetooth и COM порт. Скачать исходник проги можно тут http://mobileservicesoft.narod.ru/rem.rar, а саму библиотеку на www.btframefork.com.

Категория: Общие Статьи | Добавил: aka_kludge (27.10.2008)
Просмотров: 1945 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
    Главная      
...
На службе : дней

04:27
Обновить


Пользователи
aka_kludge
qwerty
LeadyTOR
aka_Atlantis
AdHErENt
mAss
Sissutr
hiss
DrBio
tHick

Поиск


Copyright tHR - TeAM 2026 г. admin: aka_kludge (ICQ:334449009) Moderator's: LeadyTOR, ... Яндекс.Метрика