找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2848|回复: 1
收起左侧

DIY手机遥控器

[复制链接]
ID:127229 发表于 2016-6-19 21:15 | 显示全部楼层 |阅读模式
上个星期把客厅里大屏幕电视接到电脑上了,方便看优酷和听音乐了,但感觉总少了点什么,想了想,应该有一个遥控器,这样躺在沙发上就可控制播放行为了。昨天洗澡的时候想了一会,用咱前段时间整的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的体系建立起来以后,整点小东东还真是又快又爽,嘿嘿。


回复

使用道具 举报

ID:110225 发表于 2016-12-15 20:53 | 显示全部楼层
完全不懂,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表