上个星期把客厅里大屏幕电视接到电脑上了,方便看优酷和听音乐了,但感觉总少了点什么,想了想,应该有一个遥控器,这样躺在沙发上就可控制播放行为了。昨天洗澡的时候想了一会,用咱前段时间整的weblight来整这事好像非常简单,封装一个webserivce给手机页面去调就OK了,今天晚上回来稍稍弄了一下把这功能调通了,用android手机接入家里的wifi网,试了一下,感觉很爽,躺在沙发上看《爱情公寓》,没事就快进,后退,增加声音,减小声音,暂停玩玩,功能不多,玩的挺爽。
实现过程:用soapservice实现了一个简单的webservice: http://192.168.10.102:9880/soap? ... =keydb&vk=right 可以向电脑上远程的发任何按键。
WebSerice代码:
//-----------------------------------------------------------------------------
extern "C" SS_API int ExecCommand(char *pszMethod, char * pszURL, char *OutputXML, int OutputSize)
{//处理需要向js返回的指令
static CHighPerformanceCounter counter;
char szAction[1024] = {0};
MyTools::GetFieldFromURL(pszURL, "action", szAction, sizeof(szAction)-1);
if (_stricmp(szAction,"keydb")==0)
{//按下键盘
char szVK[1024] = {0};
MyTools::GetFieldFromURL(pszURL, "vk", szVK, sizeof(szVK)-1);
int nVK = atoi(szVK);
if (nVK==0)
{
if (_stricmp(szVK,"left")==0)
nVK = 37;
else if (_stricmp(szVK,"up")==0)
nVK = 38;
else if (_stricmp(szVK,"right")==0)
nVK = 39;
else if (_stricmp(szVK,"down")==0)
nVK = 40;
else if (_stricmp(szVK,"enter")==0)
nVK = 13;
else if (_stricmp(szVK,"home")==0)
nVK = 36;
else if (_stricmp(szVK,"end")==0)
nVK = 35;
else if (_stricmp(szVK,"pageup")==0)
nVK = 33;
else if (_stricmp(szVK,"pagedown")==0)
nVK = 34;
else if (_stricmp(szVK,"space")==0)
nVK = 32;
}
keybd_event(nVK,0,0,0);
keybd_event(nVK,0,KEYEVENTF_KEYUP,0);
}
客户端就几个按钮:

客户端js:
$(document).ready(function()
{//文档加载完成事件,相当于main()
$("#button_key_up").mousedown(
function()
{
CallService(MonitorUrlRoot+"system.execcmd&action=keydb&vk=up", OnPollResponse_ShowResult);
}
);
$("#button_key_down").mousedown(
function()
{
CallService(MonitorUrlRoot+"system.execcmd&action=keydb&vk=down", OnPollResponse_ShowResult);
}
);
$("#button_key_left").mousedown(
function()
{
CallService(MonitorUrlRoot+"system.execcmd&action=keydb&vk=left", OnPollResponse_ShowResult);
}
);
$("#button_key_right").mousedown(
function()
{
CallService(MonitorUrlRoot+"system.execcmd&action=keydb&vk=right", OnPollResponse_ShowResult);
}
);
$("#button_key_space").mousedown(
function()
{
CallService(MonitorUrlRoot+"system.execcmd&action=keydb&vk=space", OnPollResponse_ShowResult);
}
);
});
webService的应用容器服务由WebServer.dll和SoapServer.dll提供。
自从俺的WebLight的体系建立起来以后,整点小东东还真是又快又爽,嘿嘿。
|