Когда я запускаю эту программу локально, она работает нормально. Обработка данных завершена успешно, снимок экрана сделан, и изображение сохраняется в той же папке, что и этот EXE-файл.
То же самое происходит, когда я запускаю это приложение вручную на удаленном сервере Windows. . Работает отлично.
Однако проблема возникает, когда эта программа запускается как запланированное задание на сервере. Я настраиваю расписание задач Windows для ежедневного выполнения этой программы в определенное время. Но в целях отладки я отключил весь код обработки данных, оставив только код, делающий снимок экрана. Другими словами, программа открывает окно консоли, печатает текст с помощью Console.WriteLine("Hello World"), делает снимок экрана и переходит в Console.ReadLine(), ожидая ввода пользователя, а затем полностью завершает работу. Я запланировал запуск этой программы через минуту после закрытия удаленного сервера.
Именно здесь и возникает проблема. Например, сейчас 10:00 утра. Я запланировал запуск этой программы в 10:01 и закрыл сервер, нажав кнопку «x». Когда я возвращаюсь через пару минут, я вижу открытое окно консоли с текстом «Hello World», и оно ждет моего ввода. Нажимаю клавишу и программа закрывается. Но скриншот не создан.
Смотрите мой код ниже:
Код: Выделить всё
static void Main(string[] args)
{
Console.WriteLine("Hello World");
string filename = Path.Combine(Application.StartupPath, "Screenshot.png");
ScreenCapture(filename);
Console.WriteLine("Press key to exit");
Console.ReadLine();
}
private static void ScreenCapture(string filename)
{
Rectangle res = Screen.PrimaryScreen.Bounds;
int screenLeft = res.Left;
int screenTop = res.Top;
int screenWidth = res.Width + 384;
int screenHeight = res.Height + 216;
try
{
using (Bitmap bitmap = new Bitmap(screenWidth, screenHeight))
{
using (Graphics g = Graphics.FromImage(bitmap))
{
g.CopyFromScreen(screenLeft, screenTop, 0, 0, bitmap.Size);
}
bitmap.Save(filename, ImageFormat.Png);
}
}
catch (Exception ex)
{
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... copyfromsc