我想知道是否可以通过向我的电脑发送短信来实现电脑的自动化。
计划如下:
- 将 USB gsm 调制解调器连接到电脑
- 使用我的移动设备将文本“启动资源管理器”发送到 USB 调制解调器
- 计算机上的应用程序接收文本,并启动“explorer”程序
当然,这是一个简单的例子,但我希望它足以展示我想要完成的任务:使用 sms 命令启动计算机上的某些程序。
不一定非得是 Windows,我也可以使用 Linux PC。
答案1
答案2
我自己还没有尝试过,但也许可以使用类似pygooglevoice接收发送到 Google Voice 号码的短信(假设您有一个或可以获得一个)。然后您的脚本将实现一个命令处理器来解释短信的内容。
答案3
我还没有尝试过这个,但根据用户的反馈,我认为这对你来说是值得的。在文章中如何通过电子邮件或短信远程控制您的 Windows PC我发现一个软件推特我的电脑据称它可以为你的 PC 创造一些神奇的效果。
如何向远程计算机发送命令
通过电子邮件:将您的 Twitter 帐户关联至海报(自动发布),[email protected]
因此发送到的所有电子邮件都将成为远程计算机的命令。
(另请参阅:通过电子邮件发布到 Twitter)
通过短信:如果您居住在美国、英国、加拿大、印度、德国、瑞典或新西兰,您可以使用手机发送相关 Twitter 消息(参见数字列表),然后通过 SMS 文本消息控制您的远程计算机。
通过即时通讯:将 Twitter 机器人添加[email protected]
到您的列表中Google Talk 好友然后您可以通过即时消息发送命令。
通过网络:如果您正在度假但可以使用连接互联网的笔记本电脑,只需登录 Twitter 网站并发出命令(例如关机或注销)即可,就像另一条推文一样。
下载文件、捕获远程屏幕截图等等。
TweetMyPC 不仅能很好地关闭远程计算机,还能让您做一些更棒的事情。例如,您需要从办公室计算机下载未完成的演示文稿,以便在家中继续处理。
以下是可用于远程控制 PC 的部分命令列表 - 它们不区分大小写,并且如上所述,您可以通过电子邮件、短信、即时通讯或网络将它们发送到 Twitter。
截屏:这是我遇到的除关机命令之外最有用的命令之一。想知道您不在身边时 PC 内发生了什么吗?只需发送屏幕截图推文,TweetMyPC 就会截取您的桌面屏幕截图并将其发布到网络上(参见示例)。
关机、注销、重启、锁定:这些有用的命令的功能从它们的名称上就非常明显。
待机、休眠:不想关闭远程 PC?使用此命令进入待机模式以节省电量。或者通过推文让 PC 休眠,从而节省更多电量。
下载 :您可以使用 download 命令从 Internet 下载任何文件到远程计算机。例如,像 download 这样的命令http://bit.ly/tCJ9Y将下载 CIA 手册,以便您第二天恢复工作时可以准备好该文档。
获取文件:Download 命令用于将文件从 Internet 下载到远程计算机。但是,如果您想将文件从远程计算机传输到当前计算机,请使用 GetFile 命令。它会获取您要下载的文件的完整页面,并将其作为电子邮件附件发送给您。如果您不知道文件页面,请使用该命令GetFileList <drivename>
获取该驱动器上的文件夹列表。
获取进程列表:这就像一个远程任务管理器。您将获得远程计算机上当前正在运行的程序列表及其进程 ID。发送另一个命令kill <process id>
来终止您认为可疑或不需要的任何程序。
所有信息复制自如何通过电子邮件或短信远程控制您的 Windows PC。
答案4
#!/bin/bash
gammu="/usr/bin/gammu"
$gammu getallsms | /bin/grep -B 1 -A 2 "UnRead" > /home/gammu.txt
checkWord=$(/usr/bin/awk 'c&&!--c;/UnRead/{c=2}' /home/gammu.txt)
servX=$(/usr/bin/awk 'c&&!--c;/UnRead/{c=2}' /home/gammu.txt | sed 's/^\(.\{1\}\).*/\1/')
commX=$(/usr/bin/awk 'c&&!--c;/UnRead/{c=2}' /home/gammu.txt | sed 's/^..//')
number=$(grep "+" /home/gammu.txt | sed 's/[^+0-9]*//g' | sed 's/^..//')
numberPlus=$(grep "+" /home/gammu.txt | sed 's/[^+0-9]*//g')
if [ "$number" = "0123456789" ] || [ "$number" = "0111111111" ] && [[ "$checkWord" =~ [0-9]* ]]
then
if [ $servX -eq 0 ]
then
ssh -p 20022 [email protected] $commX > /home/stdout.txt
cat /home/stdout.txt | $gammu --sendsms TEXT $numberPlus
exit 0
fi
if [ $servX -eq 1 ]
then
ssh [email protected] $commX > /home/stdout.txt
cat /home/stdout.txt | $gammu --sendsms TEXT $numberPlus
exit 0
fi
fi
类似这样的事?您需要为此设置 gammu。并且每分钟或 30 秒执行一次 crontab 脚本。此外,出于安全原因,请在防火墙后面使用它(如果您在多个服务器上执行此操作,则需要设置公钥)。
如果您发送“0 uname -a”,您将收到一条短信,其中包含该命令针对特定服务器的输出。确保您没有丢失手机:)