winformプログラムをログオンユーザーではなく別のユーザーとして実行する必要があります(タスクスケジューラで実行されます)。私は問題が私のアプリはGUIベースであり、コマンドラインベースではない(これは違いがある)と思うので、GUIを読み込んでそのことをしてから閉じる必要があります。これはおそらくXPまたはVistaの下ですか?C#winformプログラムをログオンユーザー以外のユーザーとして実行する
おかげ
winformプログラムをログオンユーザーではなく別のユーザーとして実行する必要があります(タスクスケジューラで実行されます)。私は問題が私のアプリはGUIベースであり、コマンドラインベースではない(これは違いがある)と思うので、GUIを読み込んでそのことをしてから閉じる必要があります。これはおそらくXPまたはVistaの下ですか?C#winformプログラムをログオンユーザー以外のユーザーとして実行する
おかげ
は、スケジュールされたタスクは、ログイン中のユーザーに異なることができ、指定されたユーザー、「として実行」することができます。
このユーザーは、タスクを作成するとき、または既存のタスクのプロパティを編集するときに指定できます。
あなたのアプリをスケジュールされたタスクとして実行する必要がある場合、実際にUIを持つことはできません。最小限のため、コマンドライン経由で実際に実行できるはずです。
最良の方法は、必要に応じてインタラクティブに実行できるように、実際の処理とUIを分離することです。これはまた、あなたのアプリのテストをずっと簡単にするでしょう。
EDIT:タイピングのために編集して
を感じる私は、最初のオプションに投票したい、または追加の可能性を提供するために:あなたのコード内で使用偽装を。それは余計かもしれない/ここにあなたのニーズに合っていない可能性があります。
プログラムを実行する別の方法は、設定ファイルまたはDB接続に基づいてユーザーをプログラマチックに変更することです。一つのサンプルプロジェクトは、コードプロジェクトである:
http://www.codeproject.com/KB/cs/runas.aspx
は、この情報がお役に立てば幸いです。
あなたはProcess.Startメソッドを探しています。過負荷の1つは、ユーザー名とパスワードのペアを受け入れます。これらのユーザー資格情報を使用してプロセスが作成されます。
var app = Process.Start(@"c:\path\to\some\app.exe", userName, password, domainOrEmptyString);