Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flash Приложения: AIR, Zinc и тд. (http://www.flasher.ru/forum/forumdisplay.php?f=94)
-   -   Как узнать частоту обновления экрана в Zinc? (http://www.flasher.ru/forum/showthread.php?t=135661)

lexa2000lexa 28.01.2010 17:12

Как узнать частоту обновления экрана в Zinc?
 
Ни кто не знает, а то чтото ни как не могу найти , как это узнать.

alexcon314 29.01.2010 08:56

В каком смысле? Системные настройки имеются в виду?
Под виндами смотрите функцию АПИ GetDeviceCaps(), с паpаметpом VREFRESH.
Чтобы изменить EnumDisplayDevices(), ChangeDisplaySettingsEx().
Что-то я не припомню в mdm Script встроенных функций на эту тему. Но через длл расширение без проблем можно этот функционал подтянуть.
Еще можно попробовать скриптом через wmi узнать, до третьего цинка был класс mdm.System.VBScript.
Код:

' file getdisplaysettings.vbs
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_VideoController",,48)
For Each objItem in colItems
    Wscript.Echo "CurrentRefreshRate: " & objItem.CurrentRefreshRate
Next

Но тут не факт, что сработает как надо.

lexa2000lexa 29.01.2010 11:44

Огромное спасибо за наводку, но немоглибо подробней рассказать или написать пару строк примера работы GetDeviceCaps(). А то я не совсем понял этого механизьма.

alexcon314 29.01.2010 16:48

В смысле? Парой строк тут не отделаешься, елси длл писать.
Хотя суть и вправду в двух строках:
Код:

HDC hdc = GetDC(GetDesktopWindow());
int refreshRate = GetDeviceCaps(hdc,VREFRESH);

...
Можно и без самописной длл:
Код:

var VREFRESH:Number = 116;
go.onRelease = function() {
        var user32 = new mdm.DLL("user32.dll");
        user32.addParameter("integer", "0");
        var dc = user32.call("integer", "GetDC");
        user32.clear();
        out.text += "Device " + dc + " has rate ";
        var gdi32 = new mdm.DLL("gdi32.dll");
        gdi32.addParameter("integer", dc);
        gdi32.addParameter("integer", VREFRESH);
        var rate = gdi32.call("integer", "GetDeviceCaps");
        out.text += rate + " Mhz";
};


lexa2000lexa 29.01.2010 17:35

Огромнейшие спасибо. Точто бабушка прописала :)


Часовой пояс GMT +4, время: 20:49.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.