Выполнение действия CSharp OwnCode. Неверный дескриптор

smarchenko

Client
Регистрация
18.01.2014
Сообщения
141
Благодарностей
8
Баллы
18
Всем доброго времени суток.
Выполняю следующий код
C#:
string file = project.Variables["file"].Value;
Bitmap bitmap = new Bitmap(375,600); // ширина и высота скриншота
Graphics graphics = Graphics.FromImage(bitmap);
graphics.CopyFromScreen(0,0,0,0, bitmap.Size);
bitmap.Save(file, System.Drawing.Imaging.ImageFormat.Jpeg);
bitmap.Dispose();
graphics.Dispose();
Все хорошо работает. Но бывает, что выдает ошибку
"Выполнение действия CSharp OwnCode. Неверный дескриптор"
В чем может быть дело и как ее избежать?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
оборачивай в try/catch, между строками добавь изменение переменной 1,2,3 и так далее и в разделе catch выводи эту переменную в лог.
так узнаешь на какой строке вылетает. а дальше можно и подумать, чем это вызвано.
 

smarchenko

Client
Регистрация
18.01.2014
Сообщения
141
Благодарностей
8
Баллы
18
оборачивай в try/catch, между строками добавь изменение переменной 1,2,3 и так далее и в разделе catch выводи эту переменную в лог.
так узнаешь на какой строке вылетает. а дальше можно и подумать, чем это вызвано.
а можешь пример привести? а то я сильно далек от этого
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
а можешь пример привести? а то я сильно далек от этого
так попробуй, при ошибке в лог будет выводить код присвоенный перед выполнением проблемной команды
C#:
var debag="0";
try
{
    string file = project.Variables["file"].Value;
    debag="1";
    Bitmap bitmap = new Bitmap(375, 600); // ширина и высота скриншота
    debag="2";
    Graphics graphics = Graphics.FromImage(bitmap);
    debag="3";
    graphics.CopyFromScreen(0, 0, 0, 0, bitmap.Size);
    debag="4";
    bitmap.Save(file, System.Drawing.Imaging.ImageFormat.Jpeg);
    debag="5";
    bitmap.Dispose();
    debag="6";
    graphics.Dispose();
    debag="7";
}
catch
{
    project.SendInfoToLog($"ошибка : {debag}", true);
}
 
  • Спасибо
Реакции: Rimen и smarchenko

smarchenko

Client
Регистрация
18.01.2014
Сообщения
141
Благодарностей
8
Баллы
18
так попробуй, при ошибке в лог будет выводить код присвоенный перед выполнением проблемной команды
C#:
var debag="0";
try
{
    string file = project.Variables["file"].Value;
    debag="1";
    Bitmap bitmap = new Bitmap(375, 600); // ширина и высота скриншота
    debag="2";
    Graphics graphics = Graphics.FromImage(bitmap);
    debag="3";
    graphics.CopyFromScreen(0, 0, 0, 0, bitmap.Size);
    debag="4";
    bitmap.Save(file, System.Drawing.Imaging.ImageFormat.Jpeg);
    debag="5";
    bitmap.Dispose();
    debag="6";
    graphics.Dispose();
    debag="7";
}
catch
{
    project.SendInfoToLog($"ошибка : {debag}", true);
}
Спасибо большое
 

smarchenko

Client
Регистрация
18.01.2014
Сообщения
141
Благодарностей
8
Баллы
18
так попробуй, при ошибке в лог будет выводить код присвоенный перед выполнением проблемной команды
C#:
var debag="0";
try
{
    string file = project.Variables["file"].Value;
    debag="1";
    Bitmap bitmap = new Bitmap(375, 600); // ширина и высота скриншота
    debag="2";
    Graphics graphics = Graphics.FromImage(bitmap);
    debag="3";
    graphics.CopyFromScreen(0, 0, 0, 0, bitmap.Size);
    debag="4";
    bitmap.Save(file, System.Drawing.Imaging.ImageFormat.Jpeg);
    debag="5";
    bitmap.Dispose();
    debag="6";
    graphics.Dispose();
    debag="7";
}
catch
{
    project.SendInfoToLog($"ошибка : {debag}", true);
}
Выяснилось, что ошибка 3. Что то можно с ней сделать?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113

smarchenko

Client
Регистрация
18.01.2014
Сообщения
141
Благодарностей
8
Баллы
18

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
В плане он большой или наоборот?
а... не... чот я думал с файла изображение забирается.... а тут прямо с экрана.
тогда возникает что происходит в системе, когда эта ошибка возникает ?
локальный комп ? сколько потоков работает с этим кодом ?
 

smarchenko

Client
Регистрация
18.01.2014
Сообщения
141
Благодарностей
8
Баллы
18
а... не... чот я думал с файла изображение забирается.... а тут прямо с экрана.
тогда возникает что происходит в системе, когда эта ошибка возникает ?
локальный комп ? сколько потоков работает с этим кодом ?
Этот шаблон работает на дедике. Шаблон работает в 1 поток. По появлению ошибки закономерность найти не могу. Могу только сказать, что когда она появляется то не исчезает, и каждый новый повтор она есть. Помогает перезапуск зенки
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
Этот шаблон работает на дедике. Шаблон работает в 1 поток. По появлению ошибки закономерность найти не могу. Могу только сказать, что когда она появляется то не исчезает, и каждый новый повтор она есть. Помогает перезапуск зенки
возникает не во время отключения RDP ?
 

smarchenko

Client
Регистрация
18.01.2014
Сообщения
141
Благодарностей
8
Баллы
18
Да, кстати может быть такое. Сейчас когда к удаленке подключен все работает
 

smarchenko

Client
Регистрация
18.01.2014
Сообщения
141
Благодарностей
8
Баллы
18
Это получается никак не решить эту проблему. Потому что насколько я понял он не может сделать скрин экрана, так как экрана вроде как и нет?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
Это получается никак не решить эту проблему. Потому что насколько я понял он не может сделать скрин экрана, так как экрана вроде как и нет?
на форуме обсуждали проблему RDP, зенки и отсутствия экрана. надо поискать по форуму или погуглить в гугле.
 

smarchenko

Client
Регистрация
18.01.2014
Сообщения
141
Благодарностей
8
Баллы
18

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)