Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как собрать максимум информации о компьютере пользователя? (http://www.flasher.ru/forum/showthread.php?t=155411)

mikhailk 04.05.2011 12:56

Как собрать максимум информации о компьютере пользователя?
 
Прикрутил к клиенту кнопку отправки пользователем информации об ошибке, к его сообщению цепляю информацию о его системе. Сейчас пользуюсь Capabilities, но информации откровенно мало.

Код AS3:

public static function  getSystemInfo() : String 
{
        var systemInfo:String = "SystemInfo:\n"
                                + "manufacturer: " + Capabilities.manufacturer + "\n"
                                + "os: " + Capabilities.os + "\n"
                                + "playerType: " + Capabilities.playerType + "\n"
                                + "screenResolutionX: " + Capabilities.screenResolutionX + "\n"
                                + "screenResolutionY: " + Capabilities.screenResolutionY + "\n"
                                + "version: " + Capabilities.version;
 
        return systemInfo;
}

Что еще хотелось бы:
- браузер/версия
- тактовая частота процессора
- объем оперативной памяти компьютера

это можно как-то получить?

etc 04.05.2011 13:01

Версию браузера у JS можно спросить. Остальное нет.

t4arty 04.05.2011 13:07

с помощью апплета на яве можно все что угоднно узнать, правда надо что пользователь согласился его запустить :)

mikhailk 04.05.2011 13:21

нет, пользователя напрягать нельзя :)
ок, да, браузер запрошу у JS

Добавлено через 3 часа 15 минут
Ксати, в лоб передача JS-иньекции через ExternalInterface у меня что-то не проходит.
Делаю так:

Код AS3:

if (ExternalInterface.available) 
{
        var browsers:String = ExternalInterface.call('function d(){return navigator.userAgent;}');
}

Выполнение на этом затыкается
Приложение загружено в ВК, может в этом дело?

rs7 06.05.2011 07:28

Цитата:

Сообщение от mikhailk (Сообщение 993793)
Приложение загружено в ВК, может в этом дело?

Конечно. Кто вам даст в ихнем javascript-е ковыряться .)

mikhailk 06.05.2011 12:09

ок, получается информацию о компе пользователя автоматически не получить никак...

etc 06.05.2011 12:23

Никто не мешает в своём фрейме ковыряться.

dimarik 06.05.2011 13:13

ExternalInterface.available определяет только физическую возможность взаимодействия. Запрет взаимодействия политиками безопасности этим свойством не определяется.

mikhailk 06.05.2011 14:17

В своем фрейме - да.
Но приложение сейчас подключено внутри вконтактовского контейнера...

Ладно, не суть.
Все равно будем менять подключение на фрейм.

fish_r 06.05.2011 14:40

Посмотрел на приложения вконтакте - интерфейс не запрещает обращение к контейнеру. Должно получится.

dimarik 06.05.2011 15:17

И что, можно в контексте контейнера дернуть ExternalInterface?

mikhailk 06.05.2011 15:39

у меня не получилось, идет ошибка

fish_r 06.05.2011 15:46

Цитата:

Сообщение от dimarik (Сообщение 994347)
И что, можно в контексте контейнера дернуть ExternalInterface?

А его можно дернуть не в контексте контейнера?

Цитата:

Выдает
Error — Контейнер не поддерживает исходящие вызовы. Поддержка исходящих вызовов присутствует только в обозревателе Internet Explorer для Windows и обозревателях, использующих NPRuntime API, например Mozilla версии 1.7.5 или новее и Firefox версии 1.0 или новее.
Может из за конкретно вашего обозревателя?

У меня на вконтакте нет приложений, но по тегам object, там, стоит allowScriptAccess = someDomain, значит вызов должен быть успешным.

mikhailk 06.05.2011 16:21

Вот код (Debugger - это вывод в консоль):

Код AS3:

if (ExternalInterface.available) 
{
        Debugger.dTrace("ExternalInterface.calling...");
        try
        {
                var browsers:String = ExternalInterface.call('function d(){return navigator.userAgent;}');
        }
        catch (e:Error)
        {
                Debugger.dTrace("ExternalInterface.call: Error " + e.message);
        }
}

Вот вывод:

Код:

ExternalInterface.calling...
ExternalInterface.call: Error Error #2060

Описание ошибки:
2060 Нарушение безопасности изолированной среды: Вызывающий ExternalInterface %1 не может получить доступ к %2.

Bgg 06.05.2011 16:30

А это есть?
Код:

allowScriptAccess: 'always'
И вам никто не даст создать функцию d()

fish_r 06.05.2011 16:43

А! Флешка загружается с другого домена да? Тогда, действительно, должно быть "always".

mikhailk 06.05.2011 16:48

Флешка загружается с другого вконтактовского домена.

dimarik 06.05.2011 16:48

Еще один все понял.

kseniya 06.05.2011 17:50

http://www.flasher.ru/forum/blog.php?b=209 однако
Код AS3:

var domain:String = new LocalConnection().domain;
if (domain == "vkontakte.ru" || domain == "vk.com") {
        ExternalInterface.call("function (){alert('ok'):}");
} else {
        addEventListener(Event.ADDED_TO_STAGE, reload);
}
function reload(event:Event) {
        var loader:Loader = super.parent as Loader;
        loader.load(new URLRequest(super.loaderInfo.url), new LoaderContext(true,new ApplicationDomain(super.stage.loaderInfo.applicationDomain),SecurityDomain.currentDomain));
}

Код AS3:

trace(Capabilities.version);//Показывает сведения о платформе и версии Flash Player или Adobe® AIR®.
trace(Capabilities.os);//Указывает текущую операционную систему
trace(Capabilities.cpuArchitecture);//Определяет текущую архитектуру центрального процессора.


fish_r 06.05.2011 18:36

Цитата:

Сообщение от dimarik (Сообщение 994375)
Еще один все понял.

Не отчаивайтесь... за то вы модератор на форуме.

dimarik 06.05.2011 18:38

К чему мне отчаиваться? Наоборот, мне радостно, что именно Вы все поняли.

mikhailk 06.05.2011 22:40

Цитата:

trace(Capabilities.cpuArchitecture);//Определяет текущую архитектуру центрального процессора.
Свойство бессмысленное, хотя и работает.
Интересно другое.
Тут его нет:
http://help.adobe.com/ru_RU/AS3LCR/F...abilities.html

dimarik 06.05.2011 23:06

Насколько бессмысленно оно работает?

mikhailk 06.05.2011 23:14

x86
ни о чем


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

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