上個星期把客廳里大屏幕電視接到電腦上了,方便看優酷和聽音樂了,但感覺總少了點什么,想了想,應該有一個遙控器,這樣躺在沙發上就可控制播放行為了。昨天洗澡的時候想了一會,用咱前段時間整的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的體系建立起來以后,整點小東東還真是又快又爽,嘿嘿。
|