Windows Live Sync を粘り強くする(終了阻止編)

2009年12月23日(水)22時33分

黙って落ちる

前回の終わりに書いたのですが、現在我が家では、かなり古いノート PC を Windows Live Sync のファイル中継用サーバとして稼動させています。
そしてこのノート PC、処理能力的に無理があるのか、あるいは何か他に理由があるのかはわかりませんが、時々 Windows Live Sync が黙って落ちてました。
タスクトレイ上には Windows Live Sync のアイコンが存在し、一見動いているように見えるんですが、アイコンをクリックしようとすると消えてしまい、Windows Live Sync が終了してしまっていることを知ることになります。
もっとも、落ちているとメイン PC の Windows Live Sync アイコンがアニメーションしなくなりますし(つまり通信してない)、「Sync の Web サイト」で「デバイス」を確認すればオフラインになっているので、わざわざノート PC のフタを開けて確認しなくてもわかりますが。

Process Controller

それで対策のために「あるプログラムの終了を阻止する」ソフトウェアはないかと探してみたところ「Process Controller」というフリーウェアを見つけました。
このソフトウェアは Windows のプロセスを監視して、特定のプロセスが存在しなければ起動させたり(終了阻止)、あるいは逆に存在すれば直ちに終了させたり(起動阻止)、他にも Windows 自体の終了を阻止できたりと、何かいろいろと使い出がありそうな便利なソフトウェアです。

終了阻止スクリプト

ただ今回は「Windows Live Sync が終了したら再起動する」というだけの目的なので、この多機能なソフトウェアをインストールするまでもないかと、以下のようなスクリプトを書いて対応することにしてみました。

//アプリケーション名。
var AppTitle="Windows Live Sync";
//実行ファイルの場所。「\」は「\\」としてください(例:C:\\Windows\\explorer.exe)。
var AppPath="C:\\Program Files\\Windows Live\\Sync\\WindowsLiveSync.exe";
//中止メッセージ表示秒数。0で非表示、-1でタイムアウトなし。
var MsgWait=3;

var Shell=WScript.CreateObject('WScript.Shell');
var MbYesNo=4;
var MbQuestion=32;
var MbNo=7;

while(true)
{
	Shell.Run('"'+AppPath+'"',1,true);

	var WndText=MsgWait+"秒後に「"+AppTitle+"」を再起動します。";
	var WndWait=MsgWait;
	var WndTitle="「"+AppTitle+"」を再起動しますか?";

	if(MsgWait<0)
	{
		WndText="「はい」で「"+AppTitle+"」を再起動、「いいえ」でスクリプトを終了します。";
		WndWait=0;
	}

	if(MsgWait!=0)if(Shell.Popup(WndText,WndWait,WndTitle,MbYesNo+MbQuestion)==MbNo)break;
}

使い方

上記スクリプトをクリップボードにコピー(ソースコード右上に表示されるアイコンの左から二番目をクリック)して「メモ帳」にでも貼り付けて「WlsRebooter.js」とでも名付けて保存します。
必要があれば7行目の「var AppPath=」以降の部分を「WindowsLiveSync.exe」が存在する場所に書き換えます。
Windows Live Sync がすでに起動している場合には終了させてから「WlsRebooter.js」を実行し、Windows Live Sync が起動すれば成功です。
起動した Windows Live Sync を終了させてみて、「3秒後に「Windows Live Sync」を再起動します。」というメッセージボックスが出るかどうかと、そのメッセージボックスを3秒間放置した後、Windows Live Sync が再起動するかどうかを確認してみてください。

結果

このスクリプトで対応できたのかどうか、実はまだ確認できてなかったりします。
もちろん、スクリプトが期待通りに動作していると、落ちても再起動されていて気付けないため、確認できるよう再起動時にはログファイルに書き出すように変更してテスト運用しているのですが、このスクリプト書き始めたあたりから、なぜか「黙って落ちる」という現象が発生しなくなりました。
ひょっとしたら最初のころは「せっかく常時起動しているのだから」と WEB カメラを繋いで監視カメラ化してみたり、音楽再生用にも兼用してみたりと、有効利用の道を探っていろいろ試していたので、それが「黙って落ちる」原因だったのかもしれません。
というわけで「タスクトレイには残ったまま内部で落ちている」という状況でもスクリプトに処理が返されるのかどうか、つまりこのスクリプトが「黙って落ちる」という現象に対しても有効なのかどうかは今のところ不明です。

関連記事

【同じタグを付けた記事の一覧】
自作ソフト バックアップ ポータブル WindowsLiveMesh

スポンサーサイト

コメントの投稿

非公開コメント

最新記事
最新コメント
Amazonおまかせリンク
カテゴリ
タグクラウド
Amazonお買い得ウィジェット
カレンダー
04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
月別アーカイブ
プロフィール

電脳太助

Author:電脳太助
Website:電脳スピーチ web

RSSリンクの表示
メールフォーム

名前:
メール:
件名:
本文:

サイト内検索
Ads by Google
FC2アクセスランキング
Ads by Google
FC2拍手ランキング
ユーザータグ

音楽管理(66)
ポータブル(57)
ソフト紹介(44)
プログラミング(42)
音声技術(41)
自作ソフト(35)
サイト運営(32)
FC2(31)
ブログ(30)
iTunes(27)
Windows(25)
LISMO(24)
音声合成(23)
音声認識(22)
x-アプリ(22)
電子ブック(22)
eラーニング(20)
バックアップ(19)
語学学習(19)
foobar2000(18)
ソースコード(18)
WindowsLiveWriter(15)
画像管理(15)
C++(14)
アフィリエイト(10)
DnspTools(10)
fi-6130(9)
FLAC(9)
JavaScript(9)
ウォークマン(9)
英語音読学習計画(8)
Gracenote(8)
Prolog(8)
ベクター(8)
雑記(8)
CodeBlocks(7)
SyntaxHighlighter(7)
TraConv(7)
spcbght(7)
wxWidgets(7)
VirtualBox(6)
W63CA(6)
DCP-J552N(6)
WinRT(6)
WindowsLiveMesh(6)
iGoinLM(6)
英語発音矯正実験(6)
ExactAudioCopy(6)
MP3Gain(6)
LAME(5)
音楽技術(5)
Mery(5)
楽器演奏(5)
GalateaTalk(4)
nLite(4)
WindowsLiveSkyDrive(4)
ホームページ(4)
GalateaProject(4)
MIDI(4)
LLVM(4)
PC-98(3)
カウンター(3)
AACGain(3)
iTCDini(3)
OverCutChecker(3)
拍手(3)
PK-513L(3)
UniversalExtractor(3)
アクセスランキング(3)
ImageCompositeEditor(2)
アクセス解析(2)
OCR(2)
qtaacenc(2)
資格試験(1)
AquesTalk(1)
AquesCmdDl(1)

FC2アクセスランキング
最新トラックバック
アクセスランキング
[ジャンルランキング]
コンピュータ
90位
アクセスランキングを見る>>

[サブジャンルランキング]
ソフトウェア
6位
アクセスランキングを見る>>
FC2カウンター