UWSCを使ったソフト自動立ち上げ【SoftEther VPN Server】

公開日: : VPN, ソフト, 画像処理, 自動化

スポンサーリンク

やりたいこと

最近SoftEtherという筑波大学発のベンチャー企業が立ち上げたVPNサービスというものを知りました。外出先でも自宅ネットワークにつなげることができるものです。

これを使うには自宅のPCでVPNサーバーアプリ(SoftEther VPN Server)を立ち上げる必要があるのですが、それをPCの起動に合わせて自動で立ち上げるよう設定しました。本記事はそのときのメモです。(※SoftEtherの詳細については今回省略します)
ちなみに今回対象のOSはWindows10です。

VPNサーバーの自動起動

VPNサーバーソフトをスタートアップに登録すると下の管理画面が立ち上がります。

この画面の状態ではまだサーバーは立ち上がっておらず、画面右下の「接続」を押して立ち上げる必要があります。このボタンを押すと下のようなウィンドウがでて、接続状態が確認できるようになります。

恐らく、自動で接続まではできないようなので?(もしかしたらできるかもしれない)、この「接続」ボタンをPC起動およびVPNサーバーソフト起動に合わせて自動で押してくれるようにしました。

UWSCを使った指定個所自動クリック

UWSCとは

今回の課題解決のためにUWSCというソフトをインストールしました。これはWindowsを自動操作するソフトです。あらかじめスクリプトを仕込んでおけばその通りにPCを動かすことができるようです。簡単な画像処理を用いた操作にも対応しており、今回はボタンの画像を用意してそこをクリックさせるように指示しました

ボタンをクリックさせる

まずはボタン画像の用意をしました。キャプチャから該当箇所を切り取って24色bmpで保存します。(Cの下にアンダーバーがついたりつかなかったりするので「接続(」までで良いと思います)


↑この画像はPNGですので使わないでください。念のため。

画像は全く同じでないとマッチングしないようであり(典型的なテンプレートマッチングと思われる)、画面の表示は直前まで接続していたディスプレイに依存する?ようなのでサイズの違う複数ディスプレイやリモートデスクトップでつないだ時の画像も用意した方がいいかもしれません。自分はリモートでつないだ時フォントが変更されていたので一応その画像も用意しました

そしてできあがったスクリプトがこれです
test.uws

IFB CHKIMG("vpnbtn1.bmp")
 MMV(G_IMG_X+5, G_IMG_Y+5)
 BTN(LEFT,CLICK)
ELSEIF CHKIMG("vpnbtn2.bmp")
 MMV(G_IMG_X+5, G_IMG_Y+5)
 BTN(LEFT,CLICK)
ELSEIF CHKIMG("vpnbtn3.bmp")
 MMV(G_IMG_X+5, G_IMG_Y+5)
 BTN(LEFT,CLICK)
ELSE
 MSGBOX("失敗")
ENDIF

これは指定の画像の画面上の位置を探してきてその座標(より少し内側)をクリックさせるというもので、3種類のボタン画像を用意してそれぞれ一通り試して見つかり次第指定個所にクリックさせています。

(それぞれの画像は基本的に同じ「接続(」の画像で、フォントがちょっと違うだけです。別に1枚だけでも構いません)。

一応クリック個所は画像より5px内側を指定しています。
そしてもし失敗したら最後「失敗」というダイアログがでるようになっています。

これを実行するにはファイルの拡張子を「uws」で保存して、それを「UWSC.exe」で開けるように規定のプログラムを設定してからファイルをダブルクリックするとスクリプトが動くようになります。

この段階で、VPNの管理画面を開いた状態で今作ったスクリプトを動かせば「接続」できるはずです。

PC起動時の自動起動

スタートアップ設定

PCが立ち上がった時VPNサーバーの自動起動および今回作成したボタンクリックスクリプトを自動で動くようにスタートアップに指定しておきました。ただ単に、スタートアップフォルダにVPNサーバーの実行ファイルのショートカットと今回作成したUWSファイルのショートカットを入れるだけです。

だが、これで本当にいいのでしょうか?

バッチファイルを使った遅延起動

今回作成したスクリプトはVPNの管理画面がちゃんと出た後に起動させないと意味がなく、管理画面が開く前にスクリプトが動いてしまった場合思惑通りに動いてくれません。そこでバッチファイルを使ってUWSファイルだけ遅れて起動させるようにしました。

バッチファイル作成

timeoutで指定秒ストップさせた後にUWSスクリプトを起動させるようにできました。これをどこでもよいので保存してダブルクリックすれば動作確認できます。さすがにアプリ実行後に5秒くらい待てばちゃんと管理画面くらい立ち上がるだろうという思惑です。もちろん10秒や20秒にしても構いません。これで万事OK?

timeout 5
SET file=C:\Users\gagambo\Documents\uwsc523\src\test.uws
SET exe=C:\Users\gagambo\Documents\uwsc523\UWSC.exe
START "" "%exe%" "%file%"

↑対象ファイルとアプリを指定して起動させています。パスは自分の環境に合わせてください。

一応これでも動いてはいると思いますが、バッチ起動時に出てくるコマンドプロンプトがいつか邪魔してしまうのではないかと不安が残ります。

コマンドプロンプトを消す

上記の理由からバッチファイル実行時にコマンドプロンプトを消すようにします。消すにはVBスクリプトを書けば消せます。

CreateObject("WScript.Shell").Run "test.bat",0

このスクリプトを先ほど作成したバッチファイルと同層に保存して、ダブルクリックで実行すれば動作確認できます。

最終的にはこのVBSファイルのショートカットを作成してスタートアップフォルダに設置すればOK。このファイル自体もダブルクリックで実行できます。

PC自動ログイン

PCの電源を入れればあとは何もしなくても自動でログインしてサーバープログラムが立ち上がるようにしたいと思ったので、ユーザアカウントの設定 ログイン自体も勝手に実施してくれるようにしました。

スポンサーリンク
Amazon
  • このエントリーをはてなブックマークに追加

関連記事

【Three.js/jThree.js】カメラ内部パラメータを変更して視野などを変える

jThree.jsでカメラの内部パラメータを変更するのに手間取ったのでメモ。参考にしているjThre

記事を読む

【MMD】BlenderでCyclesを利用してレンダリングしてみる

Cyclesを使ってみる BlenderのCyclesを用いてレンダリングを試してみました。Cyc

記事を読む

【TortoiseGit】複数のリポジトリを統合する

やりたいこと 最近WindowsにTortoiseGitを導入してリポジトリを作ったり、履歴をプッ

記事を読む

【C++/OpenCV】cv::Matの画像にインパルスノイズを付加する

OpenCVで画像にノイズを付け足したいと思って調べたところ、Python版のサンプルは見つかるので

記事を読む

みんなで創る!! 魔法少女まどか☆マギカ ピクセルアート Dot de madoka☆magicaイベントについて

劇場版魔法少女まどか☆マギカ展が2014年5月より東京と大阪で開催されます。そこで行われるピクセルア

記事を読む

OpenCV3.1をopencv_contrib付きでVisual Studio2013でビルドしてインストールする

はじめに OpenCV3.1でトラッキングがしたいと思いインストーラでインストールしたのですが、ど

記事を読む

【Python】フォルダ内のカッコ付き数字ファイルを一括でリネームするスクリプト

はじめに タイトルどおりなのですが、指定フォルダ内のファイルのファイル名にあるカッコつき数字、例え

記事を読む

Firefoxのブックマークやパスワードを別のPCへエクスポート&インポートする

最近新しいPCを買いました。その際にFirefoxのブックマークやパスワードを含めすべてそのままエク

記事を読む

RLoginでポート番号の指定

RLoginを使ってさくらVPSに接続していましたが、最近PCを新しくしたので新しく接続の設定をしな

記事を読む

YahooメールがThunderbirdで登録できず「ユーザー名やパスワードが間違ってませんか」と出る

タイトル通りなのですが、しばらく悩んだので書き留めておきます。原因はいくつかあると思うのですがおそら

記事を読む

【Unity】他のスクリプトを一括で取得して有効化・無効化を制御する

Unityを使っていて他のスクリプトを一時的に停止させたいと思ったので

テレビの録画をPCやNASで共有する

今までテレビはテレビ用のモニターで見ればいいやと思っていたのですが、さ

【DeepLearning】物体検出手法のSSD(Keras版)を試す (Ubuntu14.04)

はやりのディープラーニングの物体検出手法の一つであるSSDのサンプルを

【Laravel5】既存のDBからデータを取得して表示する

はじめに 今まで作ったWebサイトをLaravel5で見れるようにし

【C++/OpenCV】cv::Matの画像にインパルスノイズを付加する

OpenCVで画像にノイズを付け足したいと思って調べたところ、Pyth

Intel Corei7-7700TでHTC Viveの動作確認

はじめに HTC ViveというVRヘッドセットで遊んでみたのでその

【Python】フォルダ内のカッコ付き数字ファイルを一括でリネームするスクリプト

はじめに タイトルどおりなのですが、指定フォルダ内のファイルのファイ

→もっと見る

  • Author : ががんぼ
    プログラミングやWeb関係で気付いたことについてメモしていく予定。だいたいが備忘録ですが、自分でサンプルを作って動かしてみたりしています。
PAGE TOP ↑