7

私はまだC#にかなり慣れていないので、我慢する必要があります。

クライアントの 1 日のプロセスの終了として、いくつかの SQL レコードを更新する Windows フォーム プログラムを開発しました。

次のステップでは、プログラムをサーバーにインストールし、プログラムのボタン クリックをシミュレートして、スケジュールされたタスクにする必要があります。

プログラムを起動して引数を入力するサーバー側でタスクをセットアップする方法を知っています。しかし、これを実現するためにプログラムにどのコードを含める必要があるかはわかりません。

4

10 に答える 10

8

Windows タスク スケジューラの使用を検討してください。

ビジネス ロジックを別の DLL に抽出し、コマンド ラインからパラメーターを受け取った後にタスクを実行する単純なコンソール アプリを作成できます。

于 2013-01-28T13:12:56.653 に答える
7

私の推奨は、スケジュールされたタスクからGUIベース/ウィンドウアプリケーションを実行することから離れることです.これは実際には一般的に狂気です. 理想的には、(おそらくパラメーター引数を使用して) 実行する必要があり、ユーザー (または準ユーザー) の操作を必要としないコンソールベースのバージョンのアプリケーションをデプロイします。

アプリケーションの「システム バージョン」を作成できない場合は、2 つの選択肢があると思いますが、どちらも非常に醜いです: 1) プログラムの代わりに実行されるマクロ スクリプトを作成します。このスクリプトはプログラムを実行できます。 2) アプリケーションの起動時に、ボタン クリック ハンドラーを呼び出すことにより、「クリック」を実行します (実行モードの二重性を与えるパラメーターに基づく場合があります)。

于 2013-01-28T13:13:50.273 に答える
2

コマンドライン引数の受け渡しについても質問していると思います。この質問への回答を参照してください。

特に、受け入れられた答えNDesk.Optionsを強くお勧めします

于 2013-01-28T13:16:35.570 に答える
1

非常に人気のあるソリューションは、Quartz.NET http://quartznet.sourceforge.net/です。

于 2013-01-28T13:14:46.463 に答える
1

Windowsタスクとしてwinformを作成するのと同様のタスクがあります。私がしたことは

windows task scheduler、exeを入れてから/ Autoにすると、スケジュールどおりに実行されますtask tabRun

例:winform.exe /Auto

于 2013-01-28T13:19:48.137 に答える
1

あなたの質問を正しく理解していれば、次のように進めることができます。

于 2013-01-28T13:19:48.180 に答える
0

データベース更新ロジックをWindows サービスとして抽出してみませんか

SQL 処理部分を別の部分に分離し、フォーム アプリケーションと Windows サービスの両方DLLに共通のものを使用できます。DLL

ウィンドウ サービスはバックグラウンドで実行され、コンピューターの起動時に自動的に開始され、一時停止および再起動でき、ユーザー インターフェイスは表示されません。

さらに、サードパーティのソフトウェアをインストールする必要はなく、ウィンドウ サービスのコード ベースは、必要なバージョンの Windows マシンに移植できます.Net Framework

于 2013-01-28T13:26:18.057 に答える
0

Timer クラスを見てみましょう
http://msdn.microsoft.com/en-us/library/system.timers.timer(v=vs.110).aspx

于 2013-01-28T13:13:01.753 に答える