SMSメッセージを使用したコンピューター制御

実験のために書いたプログラムをあなたの注意を喚起したいと思います。 このプログラムは、GSMモデムで動作し、SMSメッセージを送受信できるシステムサービスです。 着信メッセージのテキストに応じて、指定されたスクリプトを呼び出して応答を送信します。
たとえば、アクセスが制限されているサーバー(会社の内部ネットワーク上にある)を管理する場合に役立ちます。 厳密に判断しないでください、なぜなら それはむしろプロトタイプ、最初のバージョンです。


ここからプログラムをダウンロードしてください

プログラムアーカイブには、プログラム自体(SMSRC.exe)、設定ファイル(options.ini)、既製のスクリプトの例(scriptsフォルダー)などのファイルが含まれています。


GSMモデム、またはGSMモデムモードで接続できる携帯電話で動作するはずです。 モデムがハングしているポート番号を確認するには、コントロールパネルに移動し、[ 接続済み ]列の[モデム]タブで[ 電話とモデム ]パネルを開いてポート番号確認します。

セットアップと起動
開始する前に、設定ファイルを変更し(ポートを指定し、少なくとも番号を登録する)、GSMモデムで動作する他のプログラムがコンピューターで実行されていないことを確認する必要があります。

プログラムをサービスとしてインストールするには、 -installスイッチを使用して実行する必要があります。 サービスからアンインストールするには-uninstall 。 システムサービスに-debugを追加せずに起動するには(起動時にウィンドウが作成されないため、停止するプロセスのリストを "kill"する必要があります)。

設定ファイルは、デバイスに接続するためのパラメーターとメッセージ処理スクリプトが設定されているiniファイルです。

[設定]
; モデムがハングするポート番号
ポート= com8
レート= 115200
; ミリ秒のスキャン間隔
タイムアウト= 5000

以下はスクリプトです。 それらの1つを例として考えてみましょう。

; 角かっこで受信したメッセージのテキスト
[123]
; スクリプトパス
script = scripts \ cpuLoad.vbs
; 応答を送信します。 キーが欠落している場合、
; またはその値が1に等しくない;応答は送信されません
返信= 1
; 返信の送信先の番号
replyTo = 7917XXXXXXX
; 指定された番号のいずれかからリクエストが来た場合、アクションが許可されます
allowedTo = 7917XXXXXXX、7902YYYYYYYY

メッセージが番号7917XXXXXXXまたは7902YYYYYYYからテキスト123で到着した場合、cpuLoad.vbsスクリプトが実行され、応答が番号7917XXXXXXXに送信されます

cpuLoad.vbsスクリプトには以下が含まれます。

On Error Resume Next

Dim strComputer : strComputer = "."
Dim strResponse

Set objWMIService = GetObject( "winmgmts:\\" & strComputer & "\root\CIMV2" )

Set colItems = objWMIService.ExecQuery( "SELECT * FROM Win32_Processor" ,,48)

For Each objItem in colItems
strResponse = strResponse & "CPU load: " & objItem.LoadPercentage & "%" & vbCrLf
Next

Wscript.Echo strResponse


* This source code was highlighted with Source Code Highlighter .


スクリプトは、WMIを介して、インストールされているプロセッサに関する情報を受け取り、それぞれが現在の負荷を判断し、Wscript.Echoを介して結果を表示します。 このテキストはSMSによって送信されます。

注意! スクリプトでMsgBoxを使用しないでください。このようなスクリプトを実行すると、プログラムはスクリプトの実行が完了するまで待機し、スクリプトはメッセージウィンドウを閉じます。

例として、アーカイブには、LAN接続のIPアドレスを決定し、mp3ファイルを開くためのスクリプトも含まれています。

起動後、debug.logファイルがプログラムディレクトリに作成されます。このディレクトリは、操作不能の場合に、理由を調べる場所を知ることができます。

私にとっては、このプログラムの実用的なアプリケーションを見つけることができませんでした。 私は管理していません。
開発プロセスでは、楽しみのためだけに使用しました(そのときコンピューターに座っていた配偶者を困惑させながら、音楽をオンにするメッセージを送信します)。

誰かがこのプログラムが有用だと思ったら嬉しいです。

UPD

SMSメッセージを受信、送信するための一連のクラスとC ++ソースでの使用例がここにあります。理論的には、どのバージョンのWindowsでも動作するはずです。

UPD2は、コマンドラインからSMSを送信する-sendスイッチを追加しました。 例:

SMSRC.exe-「cmd行から」XXXXXXXXXXXを送信!

XXXXXXXXXXXはSMSの送信先の番号です。

現時点では、プログラムは「パイプまたはピッチャー」モードで動作します。 プログラムをサービスとして実行することはできませんが、同時にそれを使用してコマンドラインからSMSを送信することはできません。 最初のインスタンスは、モデムが接続されているCOMポートを開き、それ以外に誰もモデムにアクセスできません。 現在、複数のインスタンスが同じポートを使用できるようにする方法を決定しています。 私が決めるように-私は更新を投稿します。

Source: https://habr.com/ru/post/J68989/


All Articles