0

私は2010年に尋ねられたこの質問に似たものに取り組んでいます

C#でWindowsサービスを使用してWindowsアプリケーションを呼び出す方法は?

この答えは私の問題の解決策かもしれません

https://stackoverflow.com/a/2309089/1270384

どうすればいいのかわかりませんが。

誰かが私に言及されていることまたは類似したものの例、すなわち言及されているプロセスクラスまたは与えられた指示を実行する方法の簡単な例を教えてもらえないかと思っていました。

アップデート

特定のテーブルへの変更についてデータベースをチェックするWebアプリケーションがあります。作成しようとしているこのWindowsサービス内でアプリケーションを呼び出し、20秒ごとに実行するようにスケジュールします。

私はWindowsサービスを初めて使用するので、説明されている内容を完全には理解できませんでした。

どんな説明でも大歓迎です。

4

2 に答える 2

1

サービスコントロールパネルの[ログオン]タブで、[サービスにデスクトップとの対話を許可する]チェックボックスをオンにします。その後、あなたはこのようなことをすることができます。

public class WinService : ServiceBase
{
Process p = new Process();

public WinService()
{
InitializeComponent();
}

protected override void OnStart(string[] args)
{
RunApp();
}

private void RunApp()
{
p.StartInfo.FileName = @"<path to your app>";
p.StartInfo.Arguments = "<your params>";
p.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
p.Start();
}

protected override void OnStop()
{
p.Kill();
}
}

編集:渡すパラメータ:

startInfo.Argumentsにすべてのパラメーターをリストし、それらをブランクで区切ります。数値パラメーターはそのままリストされ、文字列パラメーターは引用符で囲まれています。

例:

アプリケーションのコマンドラインが次の場合:

YourApp.exe param1 "param two" param3

次に、startInfo.Argumentsを次のように設定する必要があります。

startInfo.Arguments = "param1 \"param two\" param3";
于 2012-04-25T04:57:48.677 に答える
0

Webアプリケーションのロジックは、サービスで簡単に呼び出すことができる別のクラスにいつでもカプセル化できます。

WebClientそれ以外の場合は、クラスを使用してWebサイトを呼び出すことができます。

于 2012-04-26T05:09:32.467 に答える