Как изменить размеры окна инстанса програмно?

indus

Client
Регистрация
14.06.2014
Сообщения
207
Благодарностей
60
Баллы
28
Привет всем.

Кто может подсказать, как програмно (с# снипет или тому подобное) можно изменить размеры окна конкретного (определенного) инстанса.

Нашел пример:



но здесь для всех окон проекта, а мне нужно для одного конкретного.



И еще, возможно ли свернуть и развернуть окно инстанса таким способом? Через С# снипет?

Кто шарит в этом подскажите пожалуйста.
 
Последнее редактирование:

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 438
Благодарностей
9 135
Баллы
113
Привет всем.

Кто может подсказать, как програмно (с# снипет или тому подобное) можно изменить размеры окна конкретного (определенного) инстанса.

Нашел пример:



но здесь для всех окон проекта, а мне нужно для одного конкретного.



И еще, возможно ли свернуть и развернуть окно инстанса таким способом? Через С# снипет?

Кто шарит в этом подскажите пожалуйста.
instance.SetWindowSize(800,600);
 

indus

Client
Регистрация
14.06.2014
Сообщения
207
Благодарностей
60
Баллы
28
Спасибо, потестил, работает. Но не подошло, в zp заданы минимальные ширина и высота и меньше они не делаются данным способом, впрочем как и вручную. Но не в этом дело.


Мне необходимо запускать проект в несколько потоков и периодически показывать лишь одно окно инстанса, чтобы с ним проделывать определенные действия другой программой.
Остальные окна должны быть свернуты или смещены за пределы монитора, чтобы они не мешали.


Думал делать их маленького размера, но это не подошло.

Остается лишь 2 способа:

1) свернуть окна и развернуть нужное

либо

2) сместить позицию всех окон на экране (вывести их за пределы экрана) и выводить на середину лишь нужное

Существуют ли методы (на С# например) чтобы осуществить один из этих способов?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Нет)
 
Регистрация
08.04.2015
Сообщения
54
Благодарностей
6
Баллы
8
Не получается использовать instance.SetWindowSize(800,600); помещаю его С# перед созданием профиля и открытия браузера, пробовал в мейкере и постере, не там не здесь размер окно не меняется, использовал сайт http://whoer.net/extended.

Как правильно прописать это? Заранее большое спасибо
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
это не заголовок, а размер физического окна
работает только в zennoposter
 
Регистрация
08.04.2015
Сообщения
54
Благодарностей
6
Баллы
8
С этим понятно, а как тогда подать заголовок размера окна на сайт, которые будет его считывать, пересмотрел все заголовки по умолчанию в профиле, там такого нет, размеры экрана и размеры экрана с учетом панелей рабочего стола я нашел, а заголовок окна программы (Браузера) не могу найти.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
  • Спасибо
Реакции: Wzor
Регистрация
08.04.2015
Сообщения
54
Благодарностей
6
Баллы
8
Все прочитал и перерыл еще куча информации, но эти параметры я знал ScreenSizeHeight и ScreenSizeWidth это высота и размер экрана, AvailScreenHeight и AvailScreenWidth это высота и ширина экрана с учетом вычета панелей, с этим все понятно, но параметра который заменяет высоту и ширину самого окна браузера (не экрана) с фальшивым заголовком нету, есть instance.SetWindowsSize который меняет параметры окна браузера, но он меняет параметры физические, что приводит к следующему: Сервер нас видит как пользователя с другим разрешением окна браузера и считает нас уникальным, но при следующем цикли изменить параметр instance.SetWindowsSize мы не можем, по следующей причине:
Чтобы быть уникальными в новом цикле нам нужно поменять размер экрана это параметры ScreenSizeHeight и ScreenSizeWidth на другое разрешение, мы его меняем, а так же меняем параметр instance.SetWindowsSize, но при другом разрешение экрана параметр instance.SetWindowsSize ведет себя не корректно, так как размер окна браузера меняется не пропорционально, разрешению экрана это приводит к сдвигу кнопок на сайте, соответственно не может выполнятся имитация клика по заданным точкам и на этом шаблон стопорится.
Нужна именно подмена заголовка окна браузера, без изменения физических параметров.
Я нашел подобную тему, но она не закончена до конца

http://zennolab.com/discussion/threads/instance-setwindowsize.16030/#post-98576
Он закончил эту тему так:
С тем как изменить разрешение ясно. Интересовало как выставить определенный фейковый размер окна браузера, не меняя при этом реальный размер истанса в ЗП, видимо никак.

У меня такой вопрос не ужели с 8 октября 2014 года, в зенно так и не придумали как обойти данную проблему.
Если придумали дайте ссылку. Заранее большое спасибо.
 
  • Спасибо
Реакции: material
Регистрация
08.04.2015
Сообщения
54
Благодарностей
6
Баллы
8
Все разобрался тестами. Спасибо)
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Регистрация
08.04.2015
Сообщения
54
Благодарностей
6
Баллы
8
На данный момент, я только такое сообразил, используя ваш код:

var TestW = Convert.ToInt32(project.Variables["SetW"].Value);
var TestH = Convert.ToInt32(project.Variables["SetH"].Value);

instance.SetWindowSize (TestW, TestH);

при загрузки профиля с фейковым экраном будет подгружаться размер окна, ранее записанного при создание профиля из переменных, получается он всегда будет уникальным.
Я не селен в программирование поэтому на данный момент вижу только такой вариант, но буду очень рад если предложите более совершенный вариант.
 
Регистрация
15.05.2016
Сообщения
45
Благодарностей
5
Баллы
8
На данный момент, я только такое сообразил, используя ваш код:

var TestW = Convert.ToInt32(project.Variables["SetW"].Value);
var TestH = Convert.ToInt32(project.Variables["SetH"].Value);

instance.SetWindowSize (TestW, TestH);

при загрузки профиля с фейковым экраном будет подгружаться размер окна, ранее записанного при создание профиля из переменных, получается он всегда будет уникальным.
Я не селен в программирование поэтому на данный момент вижу только такой вариант, но буду очень рад если предложите более совершенный вариант.
Самое лучшее решение, молодец))
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113

indigo666

Client
Регистрация
10.05.2014
Сообщения
1 154
Благодарностей
374
Баллы
83

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 438
Благодарностей
9 135
Баллы
113
  • Спасибо
Реакции: indigo666

indigo666

Client
Регистрация
10.05.2014
Сообщения
1 154
Благодарностей
374
Баллы
83
Почему-то инстансы все равно открываются в стандартном размере




Не подскажете в чем проблема?


C#:
instance.SetBrowserPreference("network.proxy.socks_remote_dns", true);
Random r = new Random();
 
// Формируем набор популярных десктопных разрешений [Идея хранения позаимствована у doc'a, за что ему большая благодарность!]
int [,] resolutionSet = {
    {1280, 800},
    {1280, 768},
    {1152, 864},
    {1080, 1920},
    {1024, 768},
    {320, 240},
    {480, 320},
    {960, 640},
    {800, 480},
    {480, 320},
    {800, 480},
    {854, 480},
    {1136, 640},
    {480, 320},
    {854, 480},
    {960, 540},
    {1280, 720},
    {1280, 800},
    {960, 540},
    {960, 640},
    {1280, 768},
    {960, 540}
};
// Получаем рандомное разрешение и устанавливаем
int resolution = r.Next(resolutionSet.Length/2);
project.Profile.ScreenSizeWidth = resolutionSet[resolution, 0];
project.Profile.ScreenSizeHeight = resolutionSet[resolution, 1];
var TestW = Convert.ToInt32(resolutionSet[resolution, 0]);
var TestH = Convert.ToInt32(resolutionSet[resolution, 1]);

instance.SetWindowSize (TestW, TestH);
// Видимая область
project.Profile.AvailScreenWidth = project.Profile.ScreenSizeWidth-17;
project.Profile.AvailScreenHeight = project.Profile.ScreenSizeHeight-40;
// Глубина цвета монитора (Color Depth)
// [Чуть позже будет обновление механизма установки этого параметра]
instance.SetScreenPreference("screen_color_depth", 24);
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 438
Благодарностей
9 135
Баллы
113
Почему-то инстансы все равно открываются в стандартном размере
Проверил работу кода, у меня все ок, открываются разные по размеру инстансы.
Возможно, у вас в другом месте шаблона идет переопределение размеров на постоянные.
 
  • Спасибо
Реакции: indigo666

indigo666

Client
Регистрация
10.05.2014
Сообщения
1 154
Благодарностей
374
Баллы
83
Проверил работу кода, у меня все ок, открываются разные по размеру инстансы.
Возможно, у вас в другом месте шаблона идет переопределение размеров на постоянные.
Перепроверил вроде бы все норм, ладно спасибо ) Разберусь. Если у вас работает - то и у меня заработает.
 
  • Спасибо
Реакции: Sergodjan
Регистрация
12.07.2014
Сообщения
916
Благодарностей
373
Баллы
63
По форуму гуляет несколько вариантов данного кода.

Вот этот не устанавливает видимую часть окна
C#:
Random r = new Random();

// Формируем набор популярных десктопных разрешений [Идея хранения позаимствована у doc'a, за что ему большая благодарность!]
int [,] resolutionSet = {
    {1920, 1080},
    {1680, 1050},
    {1600, 1200},
    {1600, 900},
    {1440, 900},
    {1366, 768},
    {1360, 768},
    {1280, 1024},
    {1280, 800},
    {1280, 768},
};
// Получаем рандомное разрешение и устанавливаем
int resolution = r.Next(resolutionSet.Length/2);
project.Profile.ScreenSizeWidth = resolutionSet[resolution, 0];
project.Profile.ScreenSizeHeight = resolutionSet[resolution, 1];
// Видимая область
project.Profile.AvailScreenWidth = project.Profile.ScreenSizeWidth-17;
project.Profile.AvailScreenHeight = project.Profile.ScreenSizeHeight-40;
// Глубина цвета монитора (Color Depth)
// [Чуть позже будет обновление механизма установки этого параметра]
instance.SetScreenPreference("screen_color_depth", 24);


Код из поста работает
 
Последнее редактирование:

Iv1

Client
Регистрация
21.02.2016
Сообщения
1 947
Благодарностей
767
Баллы
113
По форуму гуляет несколько вариантов данного кода.

Вот этот не устанавливает видимую часть окна
C#:
Random r = new Random();

// Формируем набор популярных десктопных разрешений [Идея хранения позаимствована у doc'a, за что ему большая благодарность!]
int [,] resolutionSet = {
    {1920, 1080},
    {1680, 1050},
    {1600, 1200},
    {1600, 900},
    {1440, 900},
    {1366, 768},
    {1360, 768},
    {1280, 1024},
    {1280, 800},
    {1280, 768},
};
// Получаем рандомное разрешение и устанавливаем
int resolution = r.Next(resolutionSet.Length/2);
project.Profile.ScreenSizeWidth = resolutionSet[resolution, 0];
project.Profile.ScreenSizeHeight = resolutionSet[resolution, 1];
// Видимая область
project.Profile.AvailScreenWidth = project.Profile.ScreenSizeWidth-17;
project.Profile.AvailScreenHeight = project.Profile.ScreenSizeHeight-40;
// Глубина цвета монитора (Color Depth)
// [Чуть позже будет обновление механизма установки этого параметра]
instance.SetScreenPreference("screen_color_depth", 24);


Код из поста работает
Потому видимый размер (viewport) устанавливает только команда instance.SetWindowSize
Другие команды выше - это другие дополнительные поля определения параметров скрина
 

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