Windowsスケジューラを介してスケジュールされたジョブを実行するために使用しているコンソールアプリケーションがあります。アプリケーションとの間のすべての通信は、電子メール、イベントログ、データベースログで行われます。コンソールウィンドウが表示されないようにする方法はありますか?
質問する
12193 次
6 に答える
45
もちろん。WinFormsアプリとしてビルドし、フォームを表示しないでください。
ただ注意してください。それはもはや実際にはコンソールアプリではなく、使用できない環境もあるからです。
于 2009-06-01T13:51:18.253 に答える
10
MSDNから借用(リンクテキスト):
using System.Runtime.InteropServices;
...
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string lpClassName,string lpWindowName);
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
...
//Sometimes System.Windows.Forms.Application.ExecutablePath works for the caption depending on the system you are running under.
IntPtr hWnd = FindWindow(null, "Your console windows caption"); //put your console window caption here
if(hWnd != IntPtr.Zero)
{
//Hide the window
ShowWindow(hWnd, 0); // 0 = SW_HIDE
}
if(hWnd != IntPtr.Zero)
{
//Show window again
ShowWindow(hWnd, 1); //1 = SW_SHOWNORMA
}
于 2009-06-01T13:58:17.960 に答える
2
これはハックですが、次のブログ投稿では、コンソールウィンドウを非表示にする方法について説明しています。
http://expsharing.blogspot.com/2008/03/hideshow-console-window-in-net-black.html
于 2009-06-01T13:55:45.343 に答える
2
アカウントとは別のユーザーとして実行するようにタスクをスケジュールすると、ウィンドウがポップアップ表示されなくなります。。。
于 2009-06-01T14:06:01.907 に答える
2
スケジュールされたタスクを「ユーザーがログオンしているかどうかに関係なく実行する」として構成するだけです。
于 2012-10-04T20:09:15.570 に答える
1
アプリケーションをWindowsサービスにしてみませんか?
于 2009-06-01T13:52:28.127 に答える