Germany | Finland | Saint Petersburg | Drive

Разрешение экрана (AFL+VBScript)

Опубликовано в AmiBroker

Потребовалось узнать разрешение экрана в скрипте AFL. К моему удивлению, функция Status разрешение экрана не выдает. Пришлось написать самому.

Включим в текст скрипта вставку на VBScript. Чтобы не создавать объект htmlfile на каждой итерации, закешируем результаты работы.

EnableScript("vbscript");

// Получение размера рабочего стола
function Get_Screen_Resolution()
{ local Width,Height;   <%
  set document = CreateObject("htmlfile")
  With document.parentWindow.screen
      AFL("Width") = .availWidth
      AFL("Height") = .availHeight
  End With
  %>
  StaticVarSet("Screen_Width",Width);
  StaticVarSet("Screen_Height",Height);
} function Screen_Width()
{ local Width;   Width = Nz(StaticVarGet("Screen_Width"));
  if (Width == 0)
  { Get_Screen_Resolution();
     Width = StaticVarGet("Screen_Height");
  }
  return Width;
} function Screen_Height()
{ local Height;   Height = Nz(StaticVarGet("Screen_Height"));
  if (Height == 0)
  { Get_Screen_Resolution();
     Height = StaticVarGet("Screen_Height");
  }
  return Height;
}

Что мы имеем с гуся?

_TRACE("" + Screen_Width() + "*" + Screen_Height());

на моем рабочем ноутбуке выдает совершенно ожидаемый результат:

1600*900

 

 

Комментарии   
# admin 14.07.2013 16:43
После перехода на версию 5.60.2 оказалось, что новая версия оптимизатора этот код не прожевывает, на старой версии при этом всё ок.

Не мучаясь более, добавил в AmiSharp новый метод GetScreenInfo() для определения разрешения экрана
Ответить | Ответить с цитатой | Цитировать
Добавить комментарий