- 积分
- 995
- 实力分
- 点
- 金钱数
- 两
- 技术分
- 分
- 贡献分
- 分
|

楼主 |
发表于 2006-7-15 11:58:21
|
显示全部楼层
转贴一下BWO的hdcyly写的PuppetMaster(蓝牙控制电脑软件)脚本制作指南!
软件的用途:
手机通过蓝牙连接到电脑,通过事先编辑好的脚本,来实现对电脑的控制。
我们一定都有过躺在床上用MPC看片的经历,每集播放完了的“片尾”和“片头”实在是麻烦,可是又懒的下床去弄,这时,本软件就能通过编辑好的脚本帮你实现遥控MPC的功能。
当然,任何软件,只要你编辑好了脚本,都可以实现“遥控”!
先来看一段我编辑好的控制MPC的脚本吧:
//***************************************************************************
// Media Player Classic //
//***************************************************************************
etIgnore = 0;
etActivate = 1;
etBegin = 2;
etEnd = 3;
etKeyPress = 4;
etKeyRelease = 5;
etIntegerInput = 6;
etBack = 7;
etTimer = 8;
etNext = 9;
stNormal = 0;
stHelp = 1;
showDialog = false;
mpcPath = "C:\Program Files\Ringz Studio\Storm Codec\mplayerc.exe"; //程序在硬盘的路径
windowClassName = "MediaPlayerClassicW"; //图片"消息选项-窗口"中的"类:"后面跟的
window = Windows.findWindow(windowClassName);
if(ExecuteData.type == etActivate)
{
showDialog = true;
RemoteController.setStore(stNormal);
}
else if(ExecuteData.type == etBegin)
{
RemoteController.startTimer(500);
}
else if(ExecuteData.type == etEnd)
{
RemoteController.stopTimer();
}
else if(ExecuteData.type == etTimer)
{
showDialog = true;
}
if(!window)
{
if(ExecuteData.type == etBack) return;
if(ExecuteData.type == etNext)
{
RemoteController.showProgress("正在启动MPC..."); //可以换成别的字样
if(!Windows.open(mpcPath))
{
RemoteController.showDialog("Media Player Classic" # crlf # "没有安装!"); //同上
RemoteController.stopTimer();
return;
}
for(i = 0; i ") //方向键 左
{
//加速播放
window.postMessage(0x111, 895, 0);
}
else if(ExecuteData.keyID == "") //方向键 右
{
window.postMessage(0x111, 894, 0);
}
}
}
else if(RemoteController.store == stHelp)
{
if(ExecuteData.type == etTimer) return;
if(ExecuteData.type == etBack || ExecuteData.type == etNext)
{
showDialog = true;
RemoteController.setStore(stNormal);
}
}
if(showDialog)
{
if(!window)
{
//程序没启动时,屏幕显示的内容 #:字符串连接符 crlf:换行
RemoteController.showDialog("按下 启动" # crlf # "" # crlf # "Media Player Classic");
}
else if(RemoteController.store == stNormal)
{
//程序启动后,屏幕显示的内容
RemoteController.showDialog("Media Player Classic" # crlf # "" # crlf # "(帮助:*键)");
}
else if(RemoteController.store == stHelp)
{
//帮助内容,Media Player Classic是标题,后面跟的是帮助的内容
RemoteController.showText("Media Player Classic",
"左软键: 播放" # crlf #
"5,方向中键: 暂停" # crlf #
"Clear: 停止" # crlf #
"1,3: 前进/后退 1秒" # crlf #
"4,6: 前进/后退 5秒" # crlf #
"7,9: 前进/后退 20秒" # crlf #
"2,8: 音量 增/减" # crlf #
"方向 左/右(按住不放): 减速/加速 播放" # crlf #
"方向 上/下: 下一个/前一个" # crlf #
"0: 全屏幕" # crlf #
"铅笔: 退出" # crlf #
"#: 静音 开/关");
}
else
{
RemoteController.showDialog("Unknown state");
}
}
//***************************************************************************//
其实这个脚本不是很难理解(如果你学过C或C++或JAVA),甚至你根本不需要理解它,你只要知道哪些内容我需要去替换,至于其他的,根本不用管。
先说替换的内容:
[quote]mpcPath = "C:\Program Files\Ringz Studio\Storm Codec\mplayerc.exe"; //程序在硬盘的路径
这个肯定要修改成你所要设置的程序在硬盘里的路径
windowClassName = "MediaPlayerClassicW";
这个是需要用软件获得的,具体看下面的图片“消息选项-窗口”中的"类:"后面跟的,如何使用那个软件,下面也会介绍”[quote]
[quote]RemoteController.showProgress("正在启动MPC...");
RemoteController.showDialog("Media Player Classic" # crlf # "没有安装!");
这个里面的内容,当然要换成你要设置的软件名字;
if(ExecuteData.type == etNext) //etNext 对应 左软键
{
// 播放
window.postMessage(0x111, 887, 0);
showDialog = true;
}
这里是当程序打开后“左软键”实现的“播放”功能,你可以换成你的程序要实现的功能,如何换,就是通过下面的window.postMessage(0x111, 887, 0);这里的0x111和887是要修改的,0x111一般不用改,而887需要通过上面说的软件来获得,这个语句的意思就是发送了个消息给MPC窗口,887对应的就是“播放”的ID。以下语句都可以根据这里来理解
if(ExecuteData.keyID == "e" || ExecuteData.keyID == "5") //e 对应方向键的确认键 5 就是数字键5
{
//暂停
window.postMessage(0x111, 888, 0); // 888:还记得“捕获的消息”里的蓝色字吗?以下类推
}
这里的keyID就是手机的键在这个程序里对应的设定好的值,e对应方向键的确认键 下面的f对应铅笔,5嘛就是数字拉! “||”是一个“或”的意思,这里就是说方向中键和数字5任意一个都可以实现“暂停”的功能;只要将相应的keyID修改成你所要设定的手机的键就可以了;
if(!window)
{
//程序没启动时,屏幕显示的内容 #:字符串连接符 crlf:换行
RemoteController.showDialog("按下 启动" # crlf # "" # crlf # "Media Player Classic");
}
(!widow)是一个布尔值(只有是和否2个选择)程序的窗口打开了,window = 是 没打开 window = 否,在这里,就是当程序还没启动,屏幕显示的内容 #:字符串连接符 crlf:换行
下面两行你也可以根据我的注释对他们进行修改;
好了,到了该讲上面说的“软件”怎么用了,这个软件就叫SPY++,搜索下可以下到的;
先来看下SPY++的界面:
界面
[B]监视--》日志消息[/B]打开“消息选项”:
-消息选项-窗口
之后点开“消息”:
消息选项-消息
确定后看如何捕获消息:
捕获的消息
OK,还记得上面的windowClassName和那个“888”吗?就是这么获得的,希望大家能够享受这个软件带来的方便,也感谢这个软件的作者,绝对是个完美的作品!
也希望大家多多分享自己制作好的脚本!
注:该脚本添加时请选择“PupperMaster Script”,不要选VB和JAVA SCRIPT。手机端在PC端安装好的目录C:\Program Files\PuppetMaster里
segalgx:
如果是对于基于media play classic的播放软件(暴风等),可以在软件的“查看”-“选项”-“按键”里看到命令的ID
[ 本帖最后由 segalgx 于 2006-7-15 12:13 编辑 ] |
|