замена данных время

Bot_Sculptor

Client
Регистрация
11.06.2012
Сообщения
787
Благодарностей
239
Баллы
43
есть проверочные сервисы типа http://whoer.net/extended
так вот браузер передает время system , время windows
выходит прокси usa, а system время не совпадает.

как подменять на нужное время ?
 

Bot_Sculptor

Client
Регистрация
11.06.2012
Сообщения
787
Благодарностей
239
Баллы
43
какие уникальные идентификатора PC могут передаваться через браузер zenno? да и вообще.
данные hardware id могут получать ?
 

Bot_Sculptor

Client
Регистрация
11.06.2012
Сообщения
787
Благодарностей
239
Баллы
43
как так https://wiki.zennolab.com/doku.php?id=ru:start
20мин лажу ,ищу ссылку на wiki по c# так и не нашел, не уж то тяжело вверху сделать на видном месте эту ссылку, на полную wiki c#
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 117
Баллы
113
как так https://wiki.zennolab.com/doku.php?id=ru:start
20мин лажу ,ищу ссылку на wiki по c# так и не нашел, не уж то тяжело вверху сделать на видном месте эту ссылку, на полную wiki c#
rostonix обещал на днях, что в планах вытащить ссылки на многие внутр. статьи в вики на видное место..
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
какие уникальные идентификатора PC могут передаваться через браузер zenno? да и вообще.
данные hardware id могут получать ?
ну вот на whoer смотрите, все это в принципе можно получить из браузера)
как так https://wiki.zennolab.com/doku.php?id=ru:start
20мин лажу ,ищу ссылку на wiki по c# так и не нашел, не уж то тяжело вверху сделать на видном месте эту ссылку, на полную wiki c#
http://help.zennolab.com/en/v5/zennoposter/5.7/webframe.html#ZennoLab.CommandCenter.html

время эмулировать системное нельзя. сейчас если переключать время системы то сработает защита программы. требуется валидное время системы в соотвесттвии с часовым поясом.
 
  • Спасибо
Реакции: Bot_Sculptor

Bot_Sculptor

Client
Регистрация
11.06.2012
Сообщения
787
Благодарностей
239
Баллы
43
ну вот на whoer смотрите, все это в принципе можно получить из браузера)

http://help.zennolab.com/en/v5/zennoposter/5.7/webframe.html#ZennoLab.CommandCenter.html

время эмулировать системное нельзя. сейчас если переключать время системы то сработает защита программы. требуется валидное время системы в соотвесттвии с часовым поясом.
- думаю whoer далеко не все показывает, по этому спрашивал.

- значит на данный момент, это нельзя никак уладить? "несовпадение"

не уж то нет возможности на c# сделать подмену этого самого системного времени?
это печально... я бы сказал даже "пИчально"
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
есть таска насчет времени, но насколько я знаю там все сложнее чем кажется на первый взгляд. такие дела(
 

Dozer009

Client
Регистрация
26.11.2012
Сообщения
156
Благодарностей
6
Баллы
18
незнаю решили данный вопрос , просто искал эту же тему вот думаю можно решить через cmd просто создать виджет << Запуск программы >> и создать bat-ник и всё ..
http://winitpro.ru/index.php/2014/09/08/smena-chasovogo-poyasa-v-windows-iz-komandnoj-stroki/

http://moonlightsoft.blogspot.ru/2011/10/blog-post_17.html

http://www.megit.ru/index.php/allinfo/81-os/windows/79-set-timezone-in-windows-xp-from-command-line

для XP проверенно для win 7 и выше есть выше линки там другие утилиты тоже работают ... пилим мануал
Код:
start control.exe timedate.cpl,,/Z Russian Standard Time
Код:
(UTC-12:00) Линия перемены дат
Dateline Standard Time

(UTC-11:00) Время в формате UTC -11
UTC-11

(UTC-10:00) Гавайи
Hawaiian Standard Time

(UTC-09:00) Аляска
Alaskan Standard Time

(UTC-08:00) Нижняя Калифорния
Pacific Standard Time (Mexico)

(UTC-08:00) Тихоокеанское время (США и Канада)
Pacific Standard Time

(UTC-07:00) Аризона
US Mountain Standard Time

(UTC-07:00) Горное время (США и Канада)
Mountain Standard Time

(UTC-07:00) Ла-Пас, Мазатлан, Чихуахуа
Mountain Standard Time (Mexico)

(UTC-06:00) Гвадалахара, Мехико, Монтеррей
Central Standard Time (Mexico)

(UTC-06:00) Саскачеван
Canada Central Standard Time

(UTC-06:00) Центральная Америка
Central America Standard Time

(UTC-06:00) Центральное время (США и Канада)
Central Standard Time

(UTC-05:00) Богота, Кито, Лима, Рио-Бранко
SA Pacific Standard Time

(UTC-05:00) Восточное время (США и Канада)
Eastern Standard Time

(UTC-05:00) Индиана (восток)
US Eastern Standard Time

(UTC-04:30) Каракас
Venezuela Standard Time

(UTC-04:00) Асунсьон
Paraguay Standard Time

(UTC-04:00) Атлантическое время (Канада)
Atlantic Standard Time

(UTC-04:00) Джорджтаун, Ла-Пас, Манаус, Сан-Хуан
SA Western Standard Time

(UTC-04:00) Куяба
Central Brazilian Standard Time

(UTC-04:00) Сантьяго
Pacific SA Standard Time

(UTC-03:30) Ньюфаундленд
Newfoundland Standard Time

(UTC-03:00) Бразилия
E. South America Standard Time

(UTC-03:00) Буэнос-Айрес
Argentina Standard Time

(UTC-03:00) Гренландия
Greenland Standard Time

(UTC-03:00) Кайенна, Форталеза
SA Eastern Standard Time

(UTC-03:00) Монтевидео
Montevideo Standard Time

(UTC-03:00) Сальвадор
Bahia Standard Time

(UTC-02:00) Время в формате UTC -02
UTC-02

(UTC-01:00) Азорские о-ва
Azores Standard Time

(UTC-01:00) О-ва Зеленого Мыса
Cape Verde Standard Time

(UTC) Время в формате UTC
UTC

(UTC) Дублин, Лиссабон, Лондон, Эдинбург
GMT Standard Time

(UTC) Касабланка
Morocco Standard Time

(UTC) Монровия, Рейкьявик
Greenwich Standard Time

(UTC+01:00) Амстердам, Берлин, Берн, Вена, Рим, Стокгольм
W. Europe Standard Time

(UTC+01:00) Белград, Братислава, Будапешт, Любляна, Прага
Central Europe Standard Time

(UTC+01:00) Брюссель, Копенгаген, Мадрид, Париж
Romance Standard Time

(UTC+01:00) Варшава, Загреб, Сараево, Скопье
Central European Standard Time

(UTC+01:00) Виндхук
Namibia Standard Time

(UTC+01:00) Западная Центральная Африка
W. Central Africa Standard Time

(UTC+02:00) Амман
Jordan Standard Time

(UTC+02:00) Афины, Бухарест
GTB Standard Time

(UTC+02:00) Бейрут
Middle East Standard Time

(UTC+02:00) Вильнюс, Киев, Рига, София, Таллин, Хельсинки
FLE Standard Time

(UTC+02:00) Восточная Европа
E. Europe Standard Time

(UTC+02:00) Дамаск
Syria Standard Time

(UTC+02:00) Иерусалим
Israel Standard Time

(UTC+02:00) Каир
Egypt Standard Time

(UTC+02:00) Калининград (RTZ 1)
Kaliningrad Standard Time

(UTC+02:00) Стамбул
Turkey Standard Time

(UTC+02:00) Триполи
Libya Standard Time

(UTC+02:00) Хараре, Претория
South Africa Standard Time

(UTC+03:00) Багдад
Arabic Standard Time

(UTC+03:00) Волгоград, Москва, Санкт-Петербург (RTZ 2)
Russian Standard Time

(UTC+03:00) Кувейт, Эр-Рияд
Arab Standard Time

(UTC+03:00) Минск
Belarus Standard Time

(UTC+03:00) Найроби
E. Africa Standard Time

(UTC+03:30) Тегеран
Iran Standard Time

(UTC+04:00) Абу-Даби, Мускат
Arabian Standard Time

(UTC+04:00) Баку
Azerbaijan Standard Time

(UTC+04:00) Ереван
Caucasus Standard Time

(UTC+04:00) Ижевск, Самара (RTZ 3)
Russia Time Zone 3

(UTC+04:00) Порт-Луи
Mauritius Standard Time

(UTC+04:00) Тбилиси
Georgian Standard Time

(UTC+04:30) Кабул
Afghanistan Standard Time

(UTC+05:00) Ашхабад, Ташкент
West Asia Standard Time

(UTC+05:00) Екатеринбург (RTZ 4)
Ekaterinburg Standard Time

(UTC+05:00) Исламабад, Карачи
Pakistan Standard Time

(UTC+05:30) Колката, Мумбаи, Нью-Дели, Ченнай
India Standard Time

(UTC+05:30) Шри-Джаявардене-пура-Котте
Sri Lanka Standard Time

(UTC+05:45) Катманду
Nepal Standard Time

(UTC+06:00) Астана
Central Asia Standard Time

(UTC+06:00) Дакка
Bangladesh Standard Time

(UTC+06:00) Новосибирск (RTZ 5)
N. Central Asia Standard Time

(UTC+06:30) Янгон
Myanmar Standard Time

(UTC+07:00) Бангкок, Джакарта, Ханой
SE Asia Standard Time

(UTC+07:00) Красноярск (RTZ 6)
North Asia Standard Time

(UTC+08:00) Гонконг, Пекин, Урумчи, Чунцин
China Standard Time

(UTC+08:00) Иркутск (RTZ 7)
North Asia East Standard Time

(UTC+08:00) Куала-Лумпур, Сингапур
Singapore Standard Time

(UTC+08:00) Перт
W. Australia Standard Time

(UTC+08:00) Тайбэй
Taipei Standard Time

(UTC+08:00) Улан-Батор
Ulaanbaatar Standard Time

(UTC+09:00) Осака, Саппоро, Токио
Tokyo Standard Time

(UTC+09:00) Сеул
Korea Standard Time

(UTC+09:00) Якутск (RTZ 8)
Yakutsk Standard Time

(UTC+09:30) Аделаида
Cen. Australia Standard Time

(UTC+09:30) Дарвин
AUS Central Standard Time

(UTC+10:00) Брисбен
E. Australia Standard Time

(UTC+10:00) Владивосток, Магадан (RTZ 9)
Vladivostok Standard Time

(UTC+10:00) Гуам, Порт-Морсби
West Pacific Standard Time

(UTC+10:00) Канберра, Мельбурн, Сидней
AUS Eastern Standard Time

(UTC+10:00) Магадан
Magadan Standard Time

(UTC+10:00) Хобарт
Tasmania Standard Time

(UTC+11:00) Соломоновы о-ва, Нов. Каледония
Central Pacific Standard Time

(UTC+11:00) Чокурдах (RTZ 10)
Russia Time Zone 10

(UTC+12:00) Анадырь, Петропавловск-Камчатский (RTZ 11)
Russia Time Zone 11

(UTC+12:00) Веллингтон, Окленд
New Zealand Standard Time

(UTC+12:00) Время в формате UTC +12
UTC+12

(UTC+12:00) Фиджи
Fiji Standard Time

(UTC+13:00) Нукуалофа
Tonga Standard Time

(UTC+13:00) Самоа
Samoa Standard Time

(UTC+14:00) О-в Киритимати
Line Islands Standard Time
дальше парсим с whoer.net разницу из списка по циклу сверяем и устанавливаем..

заметил что PM вылетает после какого то время походу когда соедениться с сервером производителя.
 
Последнее редактирование:

Bot_Sculptor

Client
Регистрация
11.06.2012
Сообщения
787
Благодарностей
239
Баллы
43
да, я тоже решил пока через батник, время меняется в самой винде., но это работа в 1н поток. и то лучше , чем ничего
 

Master

Client
Регистрация
03.05.2010
Сообщения
17
Благодарностей
2
Баллы
3
Возможно появилось новое решение, кроме варианта с bat фаилом? Интересует для многопотока.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
В программе подобная функция не появилась
 

Wzor

Client
Регистрация
02.01.2016
Сообщения
158
Благодарностей
27
Баллы
28
Смена часового пояса очень нужная штука, было бы неплохо, если ZP умел это делать. Но сейчас можно менять с помощью батника.
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 415
Благодарностей
5 454
Баллы
113
Смена часового пояса очень нужная штука, было бы неплохо, если ZP умел это делать. Но сейчас можно менять с помощью батника.
какой минимально допустимый разрыв в поясах? или должны быть час в час?
 

Wzor

Client
Регистрация
02.01.2016
Сообщения
158
Благодарностей
27
Баллы
28

bpunk

Client
Регистрация
23.08.2015
Сообщения
182
Благодарностей
31
Баллы
28
Всем привет!
Решилась ли как-то более деликатно проблема? Может быть через Переназначение полей профиля, или C# ?
Всякие товарищи, типа Facebook, скорее всего обращают внимание на такие фокусы.
 

VerBin

Client
Регистрация
28.05.2016
Сообщения
555
Благодарностей
457
Баллы
63
Для того, чтобы решить данный вопрос нужно залезть в исходники ядра JS в браузере, т.к. JS показывает системное время.
Возможно понадобиться перекомпелировать ядро, либо организовать перехват функций API в Windows для получения системного времени.
Т.е. фактически нужно менять время не в системе, а лишь в одном инстансе.
Задача очень сложная, но решаемая.
У тех, кто интересуются данным вопросом, я предполагаю имеются деньги.
Скиньтесь кодерам зенки для реализации данной возможности.
 
Последнее редактирование:

VerBin

Client
Регистрация
28.05.2016
Сообщения
555
Благодарностей
457
Баллы
63
Хотя возможно есть вариант попроще.
Выполнить свой код на виртуальной машине JS, до того, как начнется выполнение кода JS на странице.
Переопределить функции связанные со временем в JS типа этого:
Код:
Date.prototype.getTime = function() { return 1 };
Но это обязательно нужно сделать до того, как начнется выполнятся любой код страницы либо JS файла.
Либо встроить что-то типа inject кода, на каждую страницу и JS скрипта в самом начале перед другим кодом.
 

bpunk

Client
Регистрация
23.08.2015
Сообщения
182
Благодарностей
31
Баллы
28
Буду эксперементировать. Хотя даже и с таким "очевидными" для FB вещами % успешных регистраций очень высокий.
 

VerBin

Client
Регистрация
28.05.2016
Сообщения
555
Благодарностей
457
Баллы
63
Мне удалось добиться результата с подменой времени на каждом инстансе. :by:
Правда без использования ZennoPoster.
Если будет стимул продолжить копать, я думаю можно будет встроить поддержку в ZP.
 
  • Спасибо
Реакции: masterLomaster

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
Мне удалось добиться результата с подменой времени на каждом инстансе. :by:
Правда без использования ZennoPoster.
Если будет стимул продолжить копать, я думаю можно будет встроить поддержку в ZP.
Каким образом получилось это реализовать?
 

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 994
Благодарностей
787
Баллы
113
Ни то ни другое.
Я использую зенно когда необходимо, но не использую BAS, поскольку нет такого количества функционала.
Вопрос лишь о технологии, каким образом можно реализовать данный функционал.
посмотри, пожалуйста тему http://zennolab.com/discussion/threads/predlozhenie-po-avtomatizacii-raboty-s-javascript-dlja-ne-progrmmistov.31837/
это похоже на то, что есть в бас? хотя бы приблизительно? отпишись в указанной теме, если есть представление по реализации подобного
 

VerBin

Client
Регистрация
28.05.2016
Сообщения
555
Благодарностей
457
Баллы
63
посмотри, пожалуйста тему http://zennolab.com/discussion/threads/predlozhenie-po-avtomatizacii-raboty-s-javascript-dlja-ne-progrmmistov.31837/
это похоже на то, что есть в бас? хотя бы приблизительно? отпишись в указанной теме, если есть представление по реализации подобного
В теме отписался. Это совершенно иное.
Мы обсуждаем лишь определенное решение для поставленной задачи, а не какой-то конкретный софт.
Прошу воздержатся от флуда в подобных темах.
Я против кубиков, я за чистый код.
 

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 994
Благодарностей
787
Баллы
113

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 994
Благодарностей
787
Баллы
113
В теме отписался. Это совершенно иное.
Мы обсуждаем лишь определенное решение для поставленной задачи, а не какой-то конкретный софт.
Прошу воздержатся от флуда в подобных темах.
Я против кубиков, я за чистый код.
но не ужели, ты был бы против кубика таблицы, в котором один из параметров было бы время?) и остальные параметры, которые использовались бы для подмены в js
 
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
При помощи переопределения стандартных обьектов в JS до момента исполнения основного кода страницы.
Данный функционал был недавно реализован в таком продукте как BAS (Browser Automation Studio)
это имелось ввиду?
JavaScript:
function BrowserAutomationStudio_TimezoneRestore()
{
    if(typeof(window.BrowserAutomationStudio_OriginalDate) != "undefined")
    {
        Date = window.BrowserAutomationStudio_OriginalDate
        delete window.BrowserAutomationStudio_OriginalDate
    }
}

function BrowserAutomationStudio_SetTimezone(TimezoneOffset)
{
    if(typeof(Intl.DateTimeFormatOriginal) == "undefined")
    {
        Intl.DateTimeFormatOriginal = Intl.DateTimeFormat()
        Intl.ResolvedOptionsOriginal = Intl.DateTimeFormatOriginal.resolvedOptions();
        delete Intl.ResolvedOptionsOriginal["timeZone"];

        Object.defineProperty(Intl, 'DateTimeFormat', {
            configurable: true, get: function() {
                 return function(){
                     var dtres = Intl.DateTimeFormatOriginal;
                     dtres.resolvedOptions = function()
                    {
                        return Intl.ResolvedOptionsOriginal;
                    }
                     return dtres;
                 };
             }
         });
    }else
    {
        delete Intl.ResolvedOptionsOriginal["timeZone"];     
    }
 
    if(typeof(window.BrowserAutomationStudio_OriginalDate) == "undefined")
        window.BrowserAutomationStudio_OriginalDate = Date;

    function realLocalToUtc(realLocal)
    {
        return new window.BrowserAutomationStudio_OriginalDate(realLocal.getTime() - realLocal.getTimezoneOffset()*60*1000 + TimezoneOffset*60*1000);
    }
    function utcToLocal(utc)
    {
        return new window.BrowserAutomationStudio_OriginalDate(utc.getTime() - TimezoneOffset*60*1000);
    }
    function localToUtc(local)
    {
        return new window.BrowserAutomationStudio_OriginalDate(local.getTime() + TimezoneOffset*60*1000);
    }
    function twoDigit(n)
    {
        if (n < 10)
        {
            return "0" + n;
        }else
        {
            return "" + n;
        }
    }
    function timezoneName()
    {
        var zone = "GMT";
        var offset = Math.abs(TimezoneOffset);
        if (TimezoneOffset < 0) {
            zone = zone + "+";
        } else if (TimezoneOffset > 0) {
            zone = zone + "-";
        } else {
            return zone;
        }
        return zone + twoDigit(Math.floor(offset/60)) + twoDigit(offset%60);
    }

    var ProxyHandler =
    {
        get: function(target, name)
        {
            if(name in target)
                return target[name]

            return Date.prototype[name]
        }
    };

    Date = function()
    {
        var res = new window.BrowserAutomationStudio_OriginalDate();

        switch(arguments.length)
        {
            case 0:
                res.utc = new window.BrowserAutomationStudio_OriginalDate();
                break;
            case 1:
                if(typeof(arguments[0]) == "string")
                {
                    res.utc = realLocalToUtc(new window.BrowserAutomationStudio_OriginalDate(arguments[0]))
                }
                else
                    res.utc = new window.BrowserAutomationStudio_OriginalDate(arguments[0]);
                break;
            case 2:
                res.utc = realLocalToUtc(new window.BrowserAutomationStudio_OriginalDate(arguments[0], arguments[1]));
                break;
            case 3:
                res.utc = realLocalToUtc(new window.BrowserAutomationStudio_OriginalDate(arguments[0], arguments[1], arguments[2]));
                break;
            case 4:
                res.utc = realLocalToUtc(new window.BrowserAutomationStudio_OriginalDate(arguments[0], arguments[1], arguments[2], arguments[3]));
                break;
            case 5:
                res.utc = realLocalToUtc(new window.BrowserAutomationStudio_OriginalDate(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]));
                break;
            case 6:
                res.utc = realLocalToUtc(new window.BrowserAutomationStudio_OriginalDate(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]));
                break;
            default:
                res.utc = realLocalToUtc(new window.BrowserAutomationStudio_OriginalDate(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6]));
                break;
        }

           res.getDate = function() { return utcToLocal(this.utc).getUTCDate(); }
           res.getDay = function() { return utcToLocal(this.utc).getUTCDay(); }
        res.getFullYear = function() { return utcToLocal(this.utc).getUTCFullYear(); }
        res.getHours = function() { return utcToLocal(this.utc).getUTCHours(); }
        res.getMilliseconds = function() { return utcToLocal(this.utc).getUTCMilliseconds(); }
        res.getMinutes = function() { return utcToLocal(this.utc).getUTCMinutes(); }
        res.getMonth = function() { return utcToLocal(this.utc).getUTCMonth(); }
        res.getSeconds = function() { return utcToLocal(this.utc).getUTCSeconds(); }

        res.getUTCDate = function() { return this.utc.getUTCDate(); }
        res.getUTCDay = function() { return this.utc.getUTCDay(); }
        res.getUTCFullYear = function() { return this.utc.getUTCFullYear(); }
        res.getUTCHours = function() { return this.utc.getUTCHours(); }
        res.getUTCMilliseconds = function() { return this.utc.getUTCMilliseconds(); }
        res.getUTCMinutes = function() { return this.utc.getUTCMinutes(); }
        res.getUTCMonth = function() { return this.utc.getUTCMonth(); }
        res.getUTCSeconds = function() { return this.utc.getUTCSeconds(); }

        res.setDate = function() { var d = utcToLocal(this.utc); d.setUTCDate.apply(d, Array.prototype.slice.call(arguments, 0)); this.utc = localToUtc(d); return this.utc.getTime();}
        res.setFullYear = function() { var d = utcToLocal(this.utc); d.setUTCFullYear.apply(d, Array.prototype.slice.call(arguments, 0)); this.utc = localToUtc(d);return this.utc.getTime(); }
        res.setHours = function() { var d = utcToLocal(this.utc); d.setUTCHours.apply(d, Array.prototype.slice.call(arguments, 0)); this.utc = localToUtc(d);return this.utc.getTime(); }
        res.setMilliseconds = function() { var d = utcToLocal(this.utc); d.setUTCMilliseconds.apply(d, Array.prototype.slice.call(arguments, 0)); this.utc = localToUtc(d);return this.utc.getTime(); }
        res.setMinutes = function() { var d = utcToLocal(this.utc); d.setUTCMinutes.apply(d, Array.prototype.slice.call(arguments, 0)); this.utc = localToUtc(d);return this.utc.getTime(); }
        res.setMonth = function() { var d = utcToLocal(this.utc); d.setUTCMonth.apply(d, Array.prototype.slice.call(arguments, 0)); this.utc = localToUtc(d);return this.utc.getTime(); }
        res.setSeconds = function() { var d = utcToLocal(this.utc); d.setUTCSeconds.apply(d, Array.prototype.slice.call(arguments, 0)); this.utc = localToUtc(d);return this.utc.getTime(); }

        res.setUTCDate = function() { this.utc.setUTCDate.apply(this.utc, Array.prototype.slice.call(arguments, 0));return this.utc.getTime(); }
        res.setUTCFullYear = function() { this.utc.setUTCFullYear.apply(this.utc, Array.prototype.slice.call(arguments, 0)); return this.utc.getTime();}
        res.setUTCHours = function() { this.utc.setUTCHours.apply(this.utc, Array.prototype.slice.call(arguments, 0));return this.utc.getTime(); }
        res.setUTCMilliseconds = function() { this.utc.setUTCMilliseconds.apply(this.utc, Array.prototype.slice.call(arguments, 0));return this.utc.getTime(); }
        res.setUTCMinutes = function() { this.utc.setUTCMinutes.apply(this.utc, Array.prototype.slice.call(arguments, 0));return this.utc.getTime(); }
        res.setUTCMonth = function() { this.utc.setUTCMonth.apply(this.utc, Array.prototype.slice.call(arguments, 0));return this.utc.getTime(); }
        res.setUTCSeconds = function() { this.utc.setUTCSeconds.apply(this.utc, Array.prototype.slice.call(arguments, 0));return this.utc.getTime(); }


        res.getYear = function() { return this.getFullYear() - 1900; }
        res.setYear = function(v) { this.setFullYear(v + 1900); return this.utc.getTime(); }

        res.getTime = function() { return this.utc.getTime(); }
        res.setTime = function(v) { this.utc.setTime(v); return this.utc.getTime();}

        res.getTimezoneOffset = function() { return TimezoneOffset; }

        res.toDateString = function() { return utcToLocal(this.utc).toDateString(); }
        res.toLocaleDateString = function() { return utcToLocal(this.utc).toLocaleDateString(); }

        res.toISOString = function() { return this.utc.toISOString(); }
        res.toGMTString = function() { return this.utc.toGMTString(); }
        res.toUTCString = function() { return this.utc.toUTCString(); }

        res.toString = function() {
            var wkdays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
            var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
            var d = utcToLocal(this.utc);
            var res = wkdays[d.getUTCDay()] + " " + months[d.getUTCMonth()] + " " + twoDigit(d.getUTCDate()) + " " + d.getUTCFullYear() +
                " " + twoDigit(d.getUTCHours()) + ":" + twoDigit(d.getUTCMinutes()) + ":" + twoDigit(d.getUTCSeconds()) + " " + timezoneName();

            return res;
        }
        res.valueOf = function() {return this.utc.getTime();}

        res.toLocaleString = function() { return this.toString(); }
        res.toLocaleTimeString = function() { return this.toString(); }
        res.toTimeString = function() { return this.toString(); }

        res.toJSON = function() { return this.utc.toJSON(); }

       return new Proxy(res, ProxyHandler);
    }



    Date.now = window.BrowserAutomationStudio_OriginalDate.now;
    Date.parse = window.BrowserAutomationStudio_OriginalDate.parse;
    Date.UTC = window.BrowserAutomationStudio_OriginalDate.UTC;
}


function BrowserAutomationStudio_GeolocationRestore()
{
    delete window.navigator.geolocation.getCurrentPosition
}



function BrowserAutomationStudio_SetGeolocation(Latitude,Longitude)
{
    window.navigator.geolocation.BrowserAutomationStudio_Location =
    {
        accuracy: 10000,
        altitude: 0,
        altitudeAccuracy: 0,
        latitude: Latitude,
        longitude: Longitude
    }
    Object.defineProperty(window.navigator.geolocation, 'getCurrentPosition', {
            configurable: true, get: function() {
                 return function(callback){
                     callback({coords: window.navigator.geolocation.BrowserAutomationStudio_Location, timestamp: Date.now()});
                 };
             }
         });

    Object.defineProperty(window.navigator.geolocation, 'watchPosition', {
            configurable: true, get: function() {
                 return function(callback){
                     callback({coords: window.navigator.geolocation.BrowserAutomationStudio_Location, timestamp: Date.now()});
                 };
             }
         });
}
 
Последнее редактирование:
  • Спасибо
Реакции: VerBin

VerBin

Client
Регистрация
28.05.2016
Сообщения
555
Благодарностей
457
Баллы
63
это имелось ввиду?
JavaScript:
function BrowserAutomationStudio_TimezoneRestore()
{
    if(typeof(window.BrowserAutomationStudio_OriginalDate) != "undefined")
    {
        Date = window.BrowserAutomationStudio_OriginalDate
        delete window.BrowserAutomationStudio_OriginalDate
    }
}

function BrowserAutomationStudio_SetTimezone(TimezoneOffset)
{
    if(typeof(Intl.DateTimeFormatOriginal) == "undefined")
    {
        Intl.DateTimeFormatOriginal = Intl.DateTimeFormat()
        Intl.ResolvedOptionsOriginal = Intl.DateTimeFormatOriginal.resolvedOptions();
        delete Intl.ResolvedOptionsOriginal["timeZone"];

        Object.defineProperty(Intl, 'DateTimeFormat', {
            configurable: true, get: function() {
                 return function(){
                     var dtres = Intl.DateTimeFormatOriginal;
                     dtres.resolvedOptions = function()
                    {
                        return Intl.ResolvedOptionsOriginal;
                    }
                     return dtres;
                 };
             }
         });
    }else
    {
        delete Intl.ResolvedOptionsOriginal["timeZone"];    
    }

    if(typeof(window.BrowserAutomationStudio_OriginalDate) == "undefined")
        window.BrowserAutomationStudio_OriginalDate = Date;

    function realLocalToUtc(realLocal)
    {
        return new window.BrowserAutomationStudio_OriginalDate(realLocal.getTime() - realLocal.getTimezoneOffset()*60*1000 + TimezoneOffset*60*1000);
    }
    function utcToLocal(utc)
    {
        return new window.BrowserAutomationStudio_OriginalDate(utc.getTime() - TimezoneOffset*60*1000);
    }
    function localToUtc(local)
    {
        return new window.BrowserAutomationStudio_OriginalDate(local.getTime() + TimezoneOffset*60*1000);
    }
    function twoDigit(n)
    {
        if (n < 10)
        {
            return "0" + n;
        }else
        {
            return "" + n;
        }
    }
    function timezoneName()
    {
        var zone = "GMT";
        var offset = Math.abs(TimezoneOffset);
        if (TimezoneOffset < 0) {
            zone = zone + "+";
        } else if (TimezoneOffset > 0) {
            zone = zone + "-";
        } else {
            return zone;
        }
        return zone + twoDigit(Math.floor(offset/60)) + twoDigit(offset%60);
    }

    var ProxyHandler =
    {
        get: function(target, name)
        {
            if(name in target)
                return target[name]

            return Date.prototype[name]
        }
    };

    Date = function()
    {
        var res = new window.BrowserAutomationStudio_OriginalDate();

        switch(arguments.length)
        {
            case 0:
                res.utc = new window.BrowserAutomationStudio_OriginalDate();
                break;
            case 1:
                if(typeof(arguments[0]) == "string")
                {
                    res.utc = realLocalToUtc(new window.BrowserAutomationStudio_OriginalDate(arguments[0]))
                }
                else
                    res.utc = new window.BrowserAutomationStudio_OriginalDate(arguments[0]);
                break;
            case 2:
                res.utc = realLocalToUtc(new window.BrowserAutomationStudio_OriginalDate(arguments[0], arguments[1]));
                break;
            case 3:
                res.utc = realLocalToUtc(new window.BrowserAutomationStudio_OriginalDate(arguments[0], arguments[1], arguments[2]));
                break;
            case 4:
                res.utc = realLocalToUtc(new window.BrowserAutomationStudio_OriginalDate(arguments[0], arguments[1], arguments[2], arguments[3]));
                break;
            case 5:
                res.utc = realLocalToUtc(new window.BrowserAutomationStudio_OriginalDate(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]));
                break;
            case 6:
                res.utc = realLocalToUtc(new window.BrowserAutomationStudio_OriginalDate(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]));
                break;
            default:
                res.utc = realLocalToUtc(new window.BrowserAutomationStudio_OriginalDate(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6]));
                break;
        }

           res.getDate = function() { return utcToLocal(this.utc).getUTCDate(); }
           res.getDay = function() { return utcToLocal(this.utc).getUTCDay(); }
        res.getFullYear = function() { return utcToLocal(this.utc).getUTCFullYear(); }
        res.getHours = function() { return utcToLocal(this.utc).getUTCHours(); }
        res.getMilliseconds = function() { return utcToLocal(this.utc).getUTCMilliseconds(); }
        res.getMinutes = function() { return utcToLocal(this.utc).getUTCMinutes(); }
        res.getMonth = function() { return utcToLocal(this.utc).getUTCMonth(); }
        res.getSeconds = function() { return utcToLocal(this.utc).getUTCSeconds(); }

        res.getUTCDate = function() { return this.utc.getUTCDate(); }
        res.getUTCDay = function() { return this.utc.getUTCDay(); }
        res.getUTCFullYear = function() { return this.utc.getUTCFullYear(); }
        res.getUTCHours = function() { return this.utc.getUTCHours(); }
        res.getUTCMilliseconds = function() { return this.utc.getUTCMilliseconds(); }
        res.getUTCMinutes = function() { return this.utc.getUTCMinutes(); }
        res.getUTCMonth = function() { return this.utc.getUTCMonth(); }
        res.getUTCSeconds = function() { return this.utc.getUTCSeconds(); }

        res.setDate = function() { var d = utcToLocal(this.utc); d.setUTCDate.apply(d, Array.prototype.slice.call(arguments, 0)); this.utc = localToUtc(d); return this.utc.getTime();}
        res.setFullYear = function() { var d = utcToLocal(this.utc); d.setUTCFullYear.apply(d, Array.prototype.slice.call(arguments, 0)); this.utc = localToUtc(d);return this.utc.getTime(); }
        res.setHours = function() { var d = utcToLocal(this.utc); d.setUTCHours.apply(d, Array.prototype.slice.call(arguments, 0)); this.utc = localToUtc(d);return this.utc.getTime(); }
        res.setMilliseconds = function() { var d = utcToLocal(this.utc); d.setUTCMilliseconds.apply(d, Array.prototype.slice.call(arguments, 0)); this.utc = localToUtc(d);return this.utc.getTime(); }
        res.setMinutes = function() { var d = utcToLocal(this.utc); d.setUTCMinutes.apply(d, Array.prototype.slice.call(arguments, 0)); this.utc = localToUtc(d);return this.utc.getTime(); }
        res.setMonth = function() { var d = utcToLocal(this.utc); d.setUTCMonth.apply(d, Array.prototype.slice.call(arguments, 0)); this.utc = localToUtc(d);return this.utc.getTime(); }
        res.setSeconds = function() { var d = utcToLocal(this.utc); d.setUTCSeconds.apply(d, Array.prototype.slice.call(arguments, 0)); this.utc = localToUtc(d);return this.utc.getTime(); }

        res.setUTCDate = function() { this.utc.setUTCDate.apply(this.utc, Array.prototype.slice.call(arguments, 0));return this.utc.getTime(); }
        res.setUTCFullYear = function() { this.utc.setUTCFullYear.apply(this.utc, Array.prototype.slice.call(arguments, 0)); return this.utc.getTime();}
        res.setUTCHours = function() { this.utc.setUTCHours.apply(this.utc, Array.prototype.slice.call(arguments, 0));return this.utc.getTime(); }
        res.setUTCMilliseconds = function() { this.utc.setUTCMilliseconds.apply(this.utc, Array.prototype.slice.call(arguments, 0));return this.utc.getTime(); }
        res.setUTCMinutes = function() { this.utc.setUTCMinutes.apply(this.utc, Array.prototype.slice.call(arguments, 0));return this.utc.getTime(); }
        res.setUTCMonth = function() { this.utc.setUTCMonth.apply(this.utc, Array.prototype.slice.call(arguments, 0));return this.utc.getTime(); }
        res.setUTCSeconds = function() { this.utc.setUTCSeconds.apply(this.utc, Array.prototype.slice.call(arguments, 0));return this.utc.getTime(); }


        res.getYear = function() { return this.getFullYear() - 1900; }
        res.setYear = function(v) { this.setFullYear(v + 1900); return this.utc.getTime(); }

        res.getTime = function() { return this.utc.getTime(); }
        res.setTime = function(v) { this.utc.setTime(v); return this.utc.getTime();}

        res.getTimezoneOffset = function() { return TimezoneOffset; }

        res.toDateString = function() { return utcToLocal(this.utc).toDateString(); }
        res.toLocaleDateString = function() { return utcToLocal(this.utc).toLocaleDateString(); }

        res.toISOString = function() { return this.utc.toISOString(); }
        res.toGMTString = function() { return this.utc.toGMTString(); }
        res.toUTCString = function() { return this.utc.toUTCString(); }

        res.toString = function() {
            var wkdays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
            var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
            var d = utcToLocal(this.utc);
            var res = wkdays[d.getUTCDay()] + " " + months[d.getUTCMonth()] + " " + twoDigit(d.getUTCDate()) + " " + d.getUTCFullYear() +
                " " + twoDigit(d.getUTCHours()) + ":" + twoDigit(d.getUTCMinutes()) + ":" + twoDigit(d.getUTCSeconds()) + " " + timezoneName();

            return res;
        }
        res.valueOf = function() {return this.utc.getTime();}

        res.toLocaleString = function() { return this.toString(); }
        res.toLocaleTimeString = function() { return this.toString(); }
        res.toTimeString = function() { return this.toString(); }

        res.toJSON = function() { return this.utc.toJSON(); }

       return new Proxy(res, ProxyHandler);
    }



    Date.now = window.BrowserAutomationStudio_OriginalDate.now;
    Date.parse = window.BrowserAutomationStudio_OriginalDate.parse;
    Date.UTC = window.BrowserAutomationStudio_OriginalDate.UTC;
}


function BrowserAutomationStudio_GeolocationRestore()
{
    delete window.navigator.geolocation.getCurrentPosition
}



function BrowserAutomationStudio_SetGeolocation(Latitude,Longitude)
{
    window.navigator.geolocation.BrowserAutomationStudio_Location =
    {
        accuracy: 10000,
        altitude: 0,
        altitudeAccuracy: 0,
        latitude: Latitude,
        longitude: Longitude
    }
    Object.defineProperty(window.navigator.geolocation, 'getCurrentPosition', {
            configurable: true, get: function() {
                 return function(callback){
                     callback({coords: window.navigator.geolocation.BrowserAutomationStudio_Location, timestamp: Date.now()});
                 };
             }
         });

    Object.defineProperty(window.navigator.geolocation, 'watchPosition', {
            configurable: true, get: function() {
                 return function(callback){
                     callback({coords: window.navigator.geolocation.BrowserAutomationStudio_Location, timestamp: Date.now()});
                 };
             }
         });
}
Все верно.
 
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
я конечно НУБ но всегда знаю куда рыть ))))
как это можно прикрутить к зенке намекните?
Я так понимаю этот скрипт нужно выполнить при загрузке страницы в Java Virtual Machine, Node.js подойдет для этого?
 

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
время эмулировать системное нельзя. сейчас если переключать время системы то сработает защита программы. требуется валидное время системы в соотвесттвии с часовым поясом.
А в чем проблема делать проверку zenni по дням а не посекундно ? Могли бы пересмотреть политику, и тогда можно было бы корректировать часовой пояс.
 

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