2012-02-08 7 views
0

を処理し、我々はいくつかの非常に高価なシミュレーションソフトウェアを使用しています。私は、これらのアプリケーション/プロセスの使用状況を(バックグラウンドで、C#を使用して)監視する手段が必要です。アイデアは、誰かが特定のアプリケーションを実行すると、ジョブ名を入力するよう促されます。次に、プログラムを終了すると、プログラムを使用した時間がネットワーク上のデータベースに送信されます。このようにして、クライアントに$ /分単位で課金することにより、ソフトウェアのコストを回収することができます。プロンプトとは別に、プログラムはユーザーにはほとんど見えないようにする必要があります。ベストの方法は、私のコンサルティング会社で

私はこれを行うためのいくつかの方法を考えていたが、私は最善だかわからないんだけど:

  1. はトレイアイコンで、起動時に実行されるプログラムを持っています。私は、その後、プロセスを継続的に監視し、スレッドをスリープ状態にし、プロセスを5分ごとにチェックするバックグラウンド作業者を持っていなければならないと思います。

  2. は、起動時に、トレイアイコンで、Quartz.netのようなものを使用してください。これが分単位で適用される場合でも。私はQuartz.netにあまり精通していませんが、私の研究からはおそらく可能です。

  3. は、Windowsサービスのいくつかの種類を使用してください。これは私がよく知らない人です。

どの方法が最も効果的でしょうか?おかげ

+0

どんなプログラマでも、トラッカーはハートビートで無効になります。 – LarsTech

+0

なぜ名前を入力するのですか?私はあなたがユーザーの介入なしで自分の統計情報を記録したり電話にかけることができると思うでしょう。 –

+0

@LarsTech:なぜプログラマはそれを無効にしたいのですか? –

答えて

0

あなたは、実行時に必要な情報を収集し、簡単なC#のプログラムを書いて、時間を開始することができます。あなたはシミュレーションソフトウェアを実行Processクラスを使用して、その後

。 最後までアプリケーションを待機し、メインアプリケーションを起動し、だから、基本的にあなたは、単に必要な情報を収集するアプリケーションで終わるなど

WaitForExit()を使用して終了するプロセスを待って実行時間を必要とするものは何でもやります実行時間全体に必要なことはすべて実行します。あなたの目に見えない限り、アプリケーションが終了するのを待っている間に、メインウィンドウ(必要な情報を収集するためのフォームとしても機能する)を最小限に抑えることができます。ここ

は、C#内の実行可能ファイルを起動する小さな一例です。

private void LaunchApp() 
    { 
     Process proc = new Process(); 
     /* we are going to assume wordpad is installed on workstation */ 

     /* collect needed info and time */ 


     proc.StartInfo.FileName = "Wordpad.exe"; 
     proc.StartInfo.Arguments = "SomeFile.txt"; 
     proc.Start(); 
     proc.WaitForExit(); 


     /* App has ended. Now process execution time etc. */ 
    } 
+0

これは興味深いようです - 基本的には "プログラムランチャー"タイプのプログラムを作る必要があります。これは、簡単に回避することができますが、ランチャーからプログラムを起動しないことによって、1つのアイデアです。それは隠されていないので、経営陣が100%満足しているかどうかは分かりません。プログラムを開始する人々の習慣を変えなければなりません。アイデアありがとう! – SnackAttack

+0

ようこそ。ユーザーは、単にダイアログと対話しないでジョブ名を記録する必要性を回避することができます。その間、シミュレーションソフトウェアはまだ実行されています。ランチャータイプのソリューションでは、アプリを起動する唯一の方法は、必要な情報を入力することです(ランチャーアプリを使用していることが前提です)。しかし、アプリケーションのデスクトップやタスクバー、メニューバーのリンクを削除し、ランチャーアプリへのリンクで置き換えることで、習慣を変える手助けをすることができます。 – Chimera

関連する問題