2010-11-18 4 views
0

基本的に1つのExcel.exeプロセスを読み書きする小さなアプリケーションを作成しました。基本的には、プロジェクトで使用した時間を記録し、それをExcelシートに保存するタイマーです。しかし、私はExcelを手動で開いていくつかのシートやその他のもので作業し、etcetcを保存して終了すると、ソフトウェアの使用が壊れたり、何かが壊れることに気付きました。 excel.exeプロセスを手動で終了し、ソフトウェアが「認識」しない場合も同じことが起こります。vb.netプログラム内から開始するプロセスをどのように保護できますか?

excel.exeプロセスを何らかの形で保護することが可能かどうか疑問に思っていましたか?その間に閉じたり改ざんできないようにするには?

答えて

1

は私が(結局、これも多くのシステムリソースを消費する)すべての時間を実行しているExcelのプロセスを持っているあなたを必要としない別のアプローチを提案してみましょう:

は、アプリケーションがあなたの情報を記録してみましょう。毎回、たとえば作業項目が完了した後、または特定の時間が経過した後に、Excelシートを開いてデータを書き込んだり、再度閉じる(自動化しているExcelプロセスを終了するなど)。この保存操作は数秒以上かかることはありませんし、発生している問題を(ほとんどの場合)防止します。

事実、Officeオートメーションは常に苦痛を伴うので、Excelプロセスを必要とせずにデータを出力することがさらに効果的です。これを行うには、third-party Excel libraries available for .net

+1

最後の提案は実際に私の使用に最適です。私はそれを考えなかった:) –

0

プロセスを保護することはできませんが、process.HasExitedプロパティを調べて、プロセスが終了したかどうかを調べ、それに基づいて処理を実行できます。

0

例外ハンドラを追加します。可能であれば、ノンスローメソッドを呼び出します。

関連する問題