Flashlogを監視してPrintScreenを実行する

pleaseprintscreen_thumbAS3でtrace(“PrintScreen!”)が実行されると、画面キャプチャをしてpngファイルを保存するアプリを作った。

ファイル一式

https://github.com/umhr/PleasePrintScreen

実行例

printscreen20131118_080545638

使い方

1:PleasePrintScreen.exeを実行して、startボタンを押下。
2:Flashのデバッグプレイヤーで「PrintScreen!」をtraceする。
3:デスクトップ上に画面キャプチャが保存される。

flashlog.txtを監視している。
デフォルトでは、PrintScreen!がキーワードとなっているが、変更可能。
保存場所も変更可能。
FlashPlayerのflashlog.txt向けに作ったが、テキストファイルを読み込んでキーワードを探しているだけなので、もしかしたら他のアプリでも連携できるかも。

デバッグプレイヤーで実行すると、PrintScreen!を出力するサンプル

trace – wonderfl build flash online

グローバルエラーハンドラーを使う

(2013/11/22追記)
グローバルエラーハンドラーを使って、キーワードを使うとデバッグプレイヤーであれば、エラー発生時にキャプチャを行えます。
次のコードは、エラー時にerrorメッセージとPrintScreen!を出力する例です。
全く同じエラーが連続出力する場合は、二回目以降を無視するようにしています。

		public function setGlobalErrorHandler():void 
		{
			loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorEvents_uncaughtError);
		}
		
		private var _prevMessage:String = "";
		private function uncaughtErrorEvents_uncaughtError(e:UncaughtErrorEvent):void 
		{
			var teemp:String = e.errorID +"," + e.type + "," + e.error;
			if (_prevMessage != teemp) {
				trace(e.errorID, e.type, e.error);
				trace("PrintScreen!");
				_prevMessage = teemp;
			}
			//e.preventDefault();
		}

参考

@IT:.NET TIPS マシン名/ユーザー名を取得するには? – C#
http://www.atmarkit.co.jp/fdotnet/dotnettips/055machinename/machinename.html

テキスト・ファイルの内容を読み込むには?[C#、VB] - @IT
http://www.atmarkit.co.jp/fdotnet/dotnettips/036fileread/fileread.html

「ファイルを開く」ダイアログボックスを表示する: .NET Tips: C#, VB.NET
http://dobon.net/vb/dotnet/form/openfiledialog.html

画面をキャプチャする: .NET Tips: C#, VB.NET
http://dobon.net/vb/dotnet/graphics/screencapture.html

@IT:.NET TIPS 画像をファイルに保存するには? – C#
http://www.atmarkit.co.jp/fdotnet/dotnettips/020savebmp/savebmp.html

フォルダの選択ダイアログを表示する: .NET Tips: C#, VB.NET
http://dobon.net/vb/dotnet/form/folderdialog.html

エラー処理(例外処理)の基本: .NET Tips: C#, VB.NET
http://dobon.net/vb/dotnet/beginner/exceptionhandling.html