| RSS



Меню

Bookmark and Share


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





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

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

Облако тэгов
ОС видио сторона Обратная Tor антенна Направляющяя ноута php libc rand() эксплоит Windows Server 2008 QIP Virtual openvz Tune kernel sysctl proc freeBSD mrtg Bluetooth GEO game emulator Shell Python червь Conficker вирус троян лаборатория касперского пиратство Apple iPhone Финансовый кризис Microsoft twitter социальная сеть анонимность лицензия Open Source уязвимость MySQL база данных Закон Франция Пират Skype мобильный хакер trend micro кибератака Германия робот Персональные данные Ноутбук Интернет китай цензура windows vista acer Linux патент TomTom браузер Firefox Internet Explorer Opera Safari Intel Oracle патч Банкомат IBM Интерпол США Dell контроль кибербезопасность приговор Mozilla Chrome безопасность Госдума СМИ Windows 8 взлом Пентагон Украина Facebook Cisco Windows XP нетбук торрент музыка Биометрический Nokia ФБР IP-адрес sms RSA java флешки Google Captcha Symantec Спам Антивирус тест Anti-Malware Windows 7 операционная система windows провайдер авторское право rapidshare UNIX свиной грипп шантаж Дети ipod копирайт McAfee HTTPS icann студент WebMoney Норвегия New York Times YouTube Warner Music КНДР БД Ubuntu касперский Россия РФ сервер хостинг Wi-Fi суд пароль логин блог ПОЛЬША фишинг одноклассники Медведев контрафакт мошенник sony warner Gps по JavaScript Хакеры Yahoo фас компьютер софт Минкомсвязи Сбой мошенничество Доктор ВЕб Вконтакте исходный код Прослушка судья МВД фильтр порнография свобода слова казахстан Sony Music сисадмин Autodesk Gmail кредитная карта LiveJournal шифрование банк кодек Нанотехнологии wikipedia выборы DNS Android атака Mac OS X Security Essentials домен ФСБ прокуратура уголовное дело ICQ Visual Basic Sophos ошибка военные DARPA сайт текст турция конференция спамер Полиция Koobface Великобритания белоруссия Грузия Европа биржа Билл Гейтс Стив Джобс спецслужбы Royal Bank of Scotland смартфон F-Secure Symbian трафик фильм Ватикан SP1 Новая Зеландия Adobe Австралия IDC Internet Explorer 9 iPad должник Рунет Ирландия поиск шифр МТС Реклама слежка компьютерные игры Office 2010 Zeus личные данные eset защита виртуализация LibreOffice Черный список BlackBerry индия Москва социальные сети flash player paypal BitDefender сертификат Anonymous технологии IPv6 Ассанж Оптоволокно передача данных ГОСТ арест Samsung Иск акция конкуренция учетная запись Корея оборудование Британия Телевидение исследование Рентген Санкт-Петербург мошенники Таиланд Обновление климат SOPA PIPA Регистрация взятка Азербайджан МЕТРО Megaupload отчет приложение технология мобильная связь Инвестиции платформа версия отключение Valve DRM роскомнадзор оон кабель КНР

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

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)
Просмотров: 1953 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
    Главная      
...
На службе : дней

05:49
Обновить


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

Поиск


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