2012-03-14 11 views
2

私自身の反スクリプトスクリプトスキャナ(SharpDefender)で作業していますが、もちろん管理者が必要です。私はUACがユーザーを邪魔することなく管理者としてどのように起動できるのか、インターネット上で検索しています。その結果、Windowsサービスが登場しました。それ以降、私は自分のアプリケーション用のWindowsサービスを作成したかったのですが、自分のプログラムの.exeを起動できないようです。サービスがデスクトップとやりとりするというオプションを確認しました。Windowsサービスからプロセスを開始する方法

も、このようなコードからプロセスを開始する可能性がある:

Process sdef = new Process(); 
sdef.StartInfo.Filename = locApp + "\\sdefender.exe"; 
sdef.StartInfo.Arguments = "-hidden"; 
sdef.Start(); 

私が何か間違ったことや、高い権限で実行ファイルを起動するための他の方法はありかな?

+0

どのようにあなたのコードは失敗したのか?エラーメッセージはありましたか? – CoreTech

答えて

-1

サービスのログイン先を選択できます。管理者アカウントでサービスを実行できるようにする必要があります。そのアカウントで実行されたアクションは、すでにそのアクセス権を持っているはずです。

Hereは、コード内でこれを行うことについて話すリンクです。または、私のようにServices.exeを開き、プロセスを見つけて右クリックしてプロパティを選択し、[ログオン]タブに移動して情報を入力するだけです。

+0

これは妥当な答えでしたが、別の質問になりました。あなたの質問は、Windows XPを安全にするのに苦労している人を助けるかもしれないが、これはMicrosoftがVistaのセキュリティホールを半分閉鎖した後、Vistas以上のUACに苦労している人によって尋ねられた。 –

1

私は、(スケジュールされたタスクとよく似ていますが、ログに記録されたセッションを必要とせずにサーバーで実行される)事前定義された時間にアプリケーションを実行するサービスを提供しています。

私が持っているのは、OnStartメソッドでは、新しいスレッド(WorkerFunction)を開始するプライベートメソッド(StartService)の呼び出しです。そのスレッドでは、私はアプリケーションを起動するために次のコードを持っています:

Process _proc = Process.Start (_Program, _Arguments); 

これは役に立ちます。敬具

ホセ・ミラ

関連する問題