SMSによるコンピューター制御に関する最初のトピックの後、多くのフィードバックと提案を受け取りました。 アイデアは一見したところほどクレイジーではないことが判明しました。
アイデアが定着したら、
新しいバージョンを投稿します。
プログラムの完全な説明を繰り返して再投稿することはありません。
最初のトピックで見つけることができますが、一部の変更とコメントのリストのみを提供します。
新規:
- スクリプトを呼び出すときにコマンドライン引数を渡す機能を追加しました
- デフォルトアクションを追加
- プログラムはすべての着信コールを打ち負かす
変更点:
エラー:
- 新しいメッセージを確認するときに、メッセージがない場合、わずかなメモリリークが発生しました。
コマンドライン引数を渡す
着信メッセージでは、最初のスペースが検索され、見つかった場合、メッセージ行は2つの部分に分割されます。最初の部分はコマンド、2番目の部分はコマンドラインの引数として解釈されます。
たとえば、構成ファイルで指定されたアクションがあります。
[123]
script = scripts\cmd.vbs
reply = 1
replyTo = 7917XXXXXX
allowedTo = 7917XXXXXX,7902YYYYYY
123 net stop dnscacheという形式のメッセージを送信します。 受信したメッセージは破損し、
123はアクション識別子として解釈され、
net stop dnscacheはコマンドラインの引数としてスクリプトに渡されます。
デフォルトのアクション
指定された識別子を持つ他のアクションが見つからない場合に実行されます。 着信SMSメッセージのテキスト全体が引数としてコマンドラインに渡されます。
[Default]
script = scripts\cmd.vbs
reply = 1
replyTo = 7917XXXXXX
allowedTo = 7917XXXXXX,7902YYYYYY
メッセージ
net stop dnscacheを送信します。識別子
netを持つアクションがない場合、
Defaultアクションが実行され、
net stop dnscacheが引数としてスクリプトに渡されます。
cmd.vbsスクリプトを使用する場合、アクションに
reply = 1フラグが設定されていると、スクリプトの実行後に、呼び出されたコマンドのコンソール出力を含むSMSメッセージが送信されます。 たとえば、
net stop dnscacheを実行すると、テキスト付きのSMSが送信されます
DNSクライアントサービスが正常に停止されました。したがって、送信したコマンドの成功を制御できます。