AS3でtrace(“PrintScreen!”)が実行されると、画面キャプチャをしてpngファイルを保存するアプリを作った。
ファイル一式
https://github.com/umhr/PleasePrintScreen
実行例
使い方
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!を出力する例です。
全く同じエラーが連続出力する場合は、二回目以降を無視するようにしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
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