用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
laily的公告
<ul> <li>Home:<a href="http://www.9499.net" targer="_blank">www.9499.net</a></li> <li>Email:A at Lai.Com.Cn</li> <li>QQ:3959809</li> </ul> <h3>Google ADS</h3> <div> <script type="text/javascript"><!-- google_ad_client = "pub-7149664582144625"; google_ad_width = 200; google_ad_height = 90; google_ad_format = "200x90_0ads_al"; google_ad_channel =""; google_color_border = "336699"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> </div> <div style="width:100%;text-align:center;"> <h3>摄影展台</h3> <img src="" id="photoShow" style="width:100%;height:;cursor:hand;" onerror="//"> <script> try{ //摄影展台 var a=[['r_4legsnake','4444'],['r_P1080481','4446'],['r__P1080694','4442'],['r_laicom_1088086488','4443'],['r_P1050503','4445'],['r_P1050437','4450'],['r_P1050131','4451'],['r_P1030162','5392'],['r_P1000809','5396'],['r_P1030320','5397'],['r_P1020942','5398'],['r_P1080766','4455'],['r_P1100419','10798']]; var i=Math.floor(a.length*Math.random()); document.all.photoShow.src='http://blog.csdn.net/images/blog_csdn_net/laily/25040/'+a[i][0]+'.jpg'; document.all.photoShow.onclick=function(){self.location='http://blog.csdn.net/laily/gallery/image/'+a[i][1]+'.aspx';} } catch(e){;} </script> <h3>Utilities</h3> <div style="background-image:url('http://blog.csdn.net/images/blog_csdn_net/laily/17459/o_bline.gif');"> <div style="height:132;overflow:hidden;"> <embed src="http://www.clocklink.com/Clocks/0001-green.swf?TimeZone=CCT" width="150" height="150" _style="position:absolute;z-index:2;top:85;left:133;" wmode="transparent" type="application/x-shockwave-flash"> </div> 总计数:<img src=http://nmc2.jy.js.cn/cgi-bin/counter.pl?id=laicomblog&md=a48&ln=8&from=0&bd=$0;$0;$255> <br> 当前页:<img src="" id="PageView"><br> <img src="" id="TotalView" style="display:none"> <INPUT TYPE=text id=txtQ size=12><IMG SRC="http://www.google.com/logos/Logo_25wht.gif" border="0" ALT="Google搜索" align="absmiddle" onclick="self.open('http://www.google.com/search?&hl=zh-CN&q='+txtQ.value,'goog');"><br> <!-- <INPUT TYPE=text id=txtBaidu size=12><IMG SRC="http://img.baidu.com/search/img/baidulogo_clarity_80_29.gif" border="0" ALT="百度搜索" align="bottom" onclick="self.open('http://www.baidu.com/baidu?ie=utf-8&word='+txtBaidu.value,'baidu');"> --> <br> <embed id="olplayer" AutoStart="false" loop="false" style="width:100%;height:45" src="http://guoxin.lai.googlepages.com/mp3.asx" /> </div> </div> <script> //设置两个计数计的外观样式,取值1-60 var PageCountStyle=48 var TotalCountStyle=48 try{ var sUrl=self.location.href var re=new RegExp("(.+\.net\/)([^\/]+)([^\.]*)","ig") if(re.test(sUrl)) { var blog_id=RegExp.$2; var page_id=blog_id+"__"+RegExp.$3.replace(/\//g,""); blog_id+="__CSDNBLOG" var cUrl="http://nmc2.jy.js.cn/cgi-bin/counter.pl?ln=8&bd=$0;$0;$255&from=0" document.all.PageView.src=cUrl+"&id="+page_id+"&md=a"+PageCountStyle document.all.TotalView.src=cUrl+"&id="+blog_id+"&md=a"+TotalCountStyle } }catch(e){;} </script> <span style="display:none"> <a href="http://guoxin.lai.googlepages.com/">9499.net</a> </span> <!-- <div align="center" id="adFrame" style="position:absolute;"> <h3 id="adButton">Google ADS [点击隐藏/显示]</h3> <div id="adBody"> <script type="text/javascript"> google_ad_client = "pub-7149664582144625"; google_ad_width = 468; google_ad_height = 60; google_ad_format = "468x60_as"; google_ad_channel =""; google_ad_type = "text_image"; google_page_url = document.location; google_ad_channel ="6155434076"; </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> </div> </div> <script language="javascript"> var adWidth=468 var adHeight=85 adFrame.style.pixelLeft=document.body.clientWidth-adWidth adFrame.style.pixelTop=document.body.clientHeight-adHeight; adFrame.style.pixelWidth=adWidth adBody.style.display="block" adBody.style.display="block" adButton.onmouseup=function() { setTimeout('adHeight=(adBody.style.display=="none") ? 25 : 85;window.onresize();',500) } document.body.onscroll=window.onresize=function() { adFrame.style.pixelLeft=document.body.clientWidth-adWidth; adFrame.style.pixelTop=document.body.clientHeight-adHeight+document.body.scrollTop; } </script> --> <SCRIPT language=javascript> document.body.onload=function() { try{ var imgUp=new Image() var imgDown=new Image() imgUp.src="http://blog.csdn.net/images/blog_csdn_net/laily/17459/o_minus.gif" imgDown.src="http://blog.csdn.net/images/blog_csdn_net/laily/17459/o_plus.gif" var h3=document.getElementsByTagName("h3") for(var i=0;i<h3.length;i++) { if(h3[i].sourceIndex>rightmenu.nextSibling.sourceIndex)break var img=new Image() img.src=imgUp.src h3[i].insertAdjacentElement("afterBegin",img) h3[i].onclick=function() { var ul=this.nextSibling var img=document.all[this.sourceIndex+1] ul.style.display=(ul.style.display=="none")?"block":"none" img.src=(ul.style.display=="none")?imgDown.src:imgUp.src } if(h3[i].nextSibling.tagName.toLowerCase()!="ul")continue //添加控制导航栏收缩/展开的按钮 var btn=document.createElement('span'); document.body.insertAdjacentElement('beforeEnd',btn); btn.style.cssText='position:absolute;display:block;top:22;left:2;width:110;height:20;color:blue;background:yellow;border:2 outset;cursor:hand;'; btn.innerText='<<收回导航栏'; btn.onclick=function() { var isHide=(rightmenu.style.display=='none'); rightmenu.style.display=isHide?'block':'none'; btn.innerText=isHide?'<<收回导航栏':'展开导航栏>>'; } var mc=new alai_menu_bar1(document.all.tagline) //建立导航菜单 var mnu=new alai_menu_xp(260) var items=h3[i].nextSibling.children if(items==null)continue for(var j=0;j<items.length;j++) { var item=items[j].childNodes[0] if(item==null)continue if(typeof(item.innerText)=="undefined" || typeof(item.href)=="undefined")continue if(item.target=="")item.target="_self" mnu.addLink(item.href,item.innerText,item.target,"http://guoxin.lai.googlepages.com/html.gif") } if(mnu.item.length>0)mc.add(h3[i].innerText,mnu) } h3[0].click(); h3[1].click(); } catch(e){} } </SCRIPT> <SCRIPT language=javascript src="http://guoxin.lai.googlepages.com/alai_menu_xp.js"></script>
文章分类
BLOG专栏推荐
_★ 申请加入★
Afei的专栏
coollzh(RSS)
Dream .Net Blog(RSS)
driftingice的专栏(RSS)
griefforyou的程序人生(RSS)
Min.Dom(RSS)
mmkk's weblog
孟子E章的专栏(RSS)
拼搏之路(RSS)
晒太阳的草
最爱白菜(RSS)
活靶子.Net(RSS)
灵感之源(RSS)
精彩秋季 精彩.net(RSS)
翱翔.Net Blog(RSS)
键者天行(RSS)
阿好空间(RSS)
国欣网络
Mypoco主页
国欣网络社区
国欣网络首页
广发证券云浮营业部网站
我的数码相册
我的留言簿
阿赖Jscript控件程序及教程
开发论坛的发贴
[CSDN]做过WEB控件的朋友帮我看看问题出在哪里
[CSDN]问题讨论:如何让javascript边运行边输出到浏览器,而不是运行完才输出?
热门文章
1.轻轻松松创建目录树菜单
2.ASP.NET动态生成网页图片
3.经典正则表达式
N-Gage使用技巧及问题解决之道
S60手机PC无线遥控器!
VBScript与正则表达式
在N-Gage上折腾一个Hello World程序
小程序大作为,JS工具脚本
搞笑,安全套广告语大全
新欢乐时光病毒源码分析
跟我玩转CSDN BLOG界面
酷!用VB/VB.NET开发各种智能手机应用
面向对象的jscript目录树程序
网址收藏
ASPCOOL Blog
Code Project
CSDN社区
DotNet博客
MSDN
博客园
博客堂
微软高校信息交流中心
无忧脚本
百度搜索
我的摄影贴
FZ1随机软件做的全景图
二千多年的深思
我的FZ1生态摄影
暴风雨后的生态园
存档

原创  手机无线遥控器,让手机变成无线鼠标+无线键盘! 收藏

很久在blog上写东西了,自从在手机上折腾一个Hello World程序之后,我紧接着就开始折腾这个手机通过蓝牙遥控电脑的玩艺。其实在购买N-Gage之前我就已经有这样的想法,因为我电脑上装的电视卡遥控器没用多久坏了,我就想能不能用手机蓝牙作遥控器,这样我以后就可以躺在床上看电视,看累了在手机按两下就可以关机睡觉……呵呵,经过几番折腾,我还真把它给实现了。其实我的电视遥控器功能在9月底已经实现了,但这两个月来进展缓慢,因为我C++的水平太烂了。今天终于拿出来与大伙见面的是一个功能评估版(Envaluation)的程序,所谓评估版的意思就是程序还有很多问题,还有很多功能需要完善,发布出来是想了解一下用户的需求,征集改进的意见等。在程序发布的同时,我也开通过了自己的BBS论坛(地址:http://www.9499.net?go=BBS),开辟相关讨论区用于发布更新程序,与大家共同探讨,集思广益,希望把程序做得更好。

昨天晚上写了一个使用教程,写得很乱,大家将就着看吧。

摘要:Wireless Remote手机无线遥控器程序通过手机与PC间的蓝牙无线连接使您的手机变成一个无线鼠标和键盘,通过手机操作PC的鼠标,进行模拟键盘输入字母数字,操作程序和窗口,遥控关机等。

适用范围及配置要求:本软件适用于Symbian series60系列具备有蓝牙功能的智能手机,以及一台运行windows操作系统并安装了蓝牙适配器及驱动程序的电脑。
软件安装:软件的安装包括手机和PC两个部分,PC端的就不用多说了。手机的程序安装是SIS安装包可通过蓝牙,电缆或红外等各种连接方式下载到手机上然后运行SIS安装包进行安装就可以了。
(注意:目前仅在我自己的Nokia N-Gage上测试,理论上应该可以在其它具备蓝牙功能的S60手机,如诺基亚 3650,7610,7700等,这需要有这些类型手机的朋友帮忙测试并将结果反馈给我。)

PC上的兰牙串口配置:(暂时没有)

程序运行和使用:确认PC上蓝牙已配置好,将蓝牙适配器到电脑上,此时任务栏上的蓝牙图标中间的剪刀变为白色。在PC上运行无线遥控服务程序Wireless Remote Tray,根据蓝牙配置输入相应的串口号,点Start按扭运行服务。在手机上运行遥控程序,程序开始搜寻可用的蓝牙服务,找到PC上的蓝牙服务后进行连接。成功连接后,PC上将出现提示成功连接,任务栏上的蓝牙图标变成兰色......呵呵,激动人心的时刻开始了这--试一下按手机上的方向键,你应该看电脑上的鼠标是不是跟着在动了,同时服务程序上的指示灯随着你的按键在不断地改变颜色,恭喜恭喜,您的手机已经变成一个无线鼠标和无线键盘了!如果没有反应的话,请重新检查一下你的蓝牙配置和串口号配置是否正确了。

好,接下来该花点时间熟悉一下这个无线鼠标&无线键盘的操作方法:

操作指南:
程序将手机键盘分成游戏杆(四方向键及OK按钮)和数字板两部分:
游戏杆有两种操作状态:鼠标操作和方向键操作,状态转换按钮是拔号键。即刚开始时按四方向键控制鼠标的移动,接OK按钮相当于单击鼠标左键,按拔号键切换到方向键操作状态,这时按四方向键相当于按实际键盘上的方向键,按OK按钮相当于按回车键,再按一次拔号键切换回鼠标操作。
数字板有四种操作状态,状态切换按钮为“#”键,四个状态依次为:大写字母输入->小写字母输入->数字输入->鼠标操作。字母输入与手机上的操作基本一致如:按一次2按输入A,快速按两次2,输入B,快速按三次2输入C,快速按四次2为输入2,按一次3键输入D,两次输入E......依此类推。1按输入常见标点符号,0键输入空格,快速按两次0则输入0,按C(Cancel,取消)键删除前面一个字符。数字输入状态下1是1,2是2,不用多说了吧。数字板的鼠标操作状态下,可控制鼠标八个方向上的移动,支持鼠标左键和右键及键盘回车键,定义如下:1-左上移动,2-向上移动,3右上移动,4-向左移动,5-回车键,6-向右移动,7-左下移动,8-向下移动,9-右下移动,*-鼠标左键,0-鼠标右键,C-ESC键。

菜单结构及操作(不好意思,界面都是E文的,因为在Symbian C++ 手机程序里显示中文有点麻烦,以后肯定会出中文的,正在考虑支持多语言版本):

Connect (连接蓝牙设备)
Send Keys
   |-Keys
       |-Esc
       |-Enter
       |-Tab
       |-Insert
       |-Delete
       |-Home
       |-End
       |-PageUp
       |-PageDown
   |-General Hot Key (常用热键)
       |-Ctrl+O   Open File
       |-Ctrl+N   New
       |-Ctrl+S   Save
       |-Ctrl+A   Select All
       |-Ctrl+C   Copy
       |-Ctrl+V   Paste
       |-Ctrl+F   Find
   |-Function Keys
       |-F1~F12功能键
General Manipulation
   |-Active Windows
       |-Minimize Window (最小化)
       |-Maximize Window (最大化)
       |-Restore Window (还原)
       |-Close Window (关闭窗口)
       |-Switch Task (切换窗口)
   |-Desktop
       |-Start Menu (开始菜单)
       |-Explorer  (资源管理器)
       |-Show Desktop (显示桌面)
       |-Minimize All Task (最小化所有窗口)
       |-Run (运行...)
       |-Find (搜索)
  |-Shut Down
       |-Shut Down Dialog (显示关机对话框)
       |-Shut Down (关机)
       |-Reboot (重启)
       |-UnRegister (注销)
About (关于)
Exit (退出)

程序下载请到这里:http://www.9499.net?go=bbs  国欣网络社区 → S60手机应用及开发 → Symbian S60开发讨论区 → S60手机无线遥控器程序发布/更新/教程
BBS就在我写这篇文章的今天起开放,欢迎各位志同道合的朋友多多捧场,顺便放个LOGO链接啦:


发表于 @ 2004年11月08日 16:39:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:今天获得1GB的Google Gmail邮箱一个 | 新一篇:关于javascript程序内存占用的一个有趣的实验

  • 发表评论
  • 评论内容:
  •  
Copyright © laily
Powered by CSDN Blog